大年夜多半情况下,研究人员可能没有记下本身都做了些什么,所以无法生成同样的模型。即使她记下了所有步调,并再次履行这些步调,但因为框架会随时产生变更,她必须记录下这个体系的快照,才有可能做到与之前的模型保持一致。我曾经找研究人员协助,让他们从新生成模型,他们很大方,但平日须要花上几个月时光,即使他们是模型的原作者。
为什么一致性这么重要?我有几个同伙跟我说,他们在写论文时不知道该若何重现模型。如不雅他们无法获得与原作者一样的精确率,那么该若何说服别人本身的新办法是对原有办法的改进呢?如不雅你没有办法为了应对变革的需求或平台完全重建一个模型,那么重度依附临盆体系已有的模型也是很正常的。在进行研究实验时,这也是个大年夜问题,因为代码变革和练习数据很难进行回滚。在测验测验履行上述的那些步调时,可能存在更多的风险,这就比如不应用版本控制体系会增长代码变革所带来的成本。
当然,工作也不是那么消极,社区正在这方面做出尽力,以解决模型的一致性问题。个中我最爱好的是由 Toby Boyd 引导的 TensorFlow Benchmarks 系项目(https://www.tensorflow.org/performance/benchmarks)。这个团队的任务不仅是要实现如安在多平台上快速练习当前的一些主流模型,并且要让这些模型达到足够高的精确率。我曾亲眼目睹他挥汗如雨地为进步模型精确性而做出尽力,因为上述的那些步调都有可能影响结不雅,并且没有简单的调试办法,即使有模型原作者的赞助也无济于事。并且这看起来就像是一项无尽头的工作,TensorFlow 框架在变更,GPU 驱动器在变更,数据集在变更,这些都邑影响到结不雅。Toby 的团队可以赞助我们发明和修复因 TensorFlow 的变革引起的 bug,并找出由外部依附导致的问题,但要把范围扩大年夜仍然很艰苦。
我也知道有些团队对于在临盆体系中应用机械进修模型异常当心翼翼,他们为了确保练习模型的一致性花了很多时光和精力,但问题是,这一过程仍然是手动进行的。如今还不存在一种版本控制体系或被大年夜家一致承认的最佳实践,可以确保模型在将来仍然可以产出雷同的结不雅。我临时也想不到更好的办法,不过在这里抛砖引玉一下,在测验测验解决这个问题时,照样有一些原则可以遵守的:
- 新设法主意须要足够轻易被研究人员所懂得,不须要研究人员花费太多时光和精力,不然的话,他们可能压根不肯意应用这些体系。幻想情况下,这些体系应当要能赞助他们大年夜大年夜晋升效力。
- 如不雅某个研究人员不当心被车撞了(大年夜误,划掉落)出走去搞创业了,须要包管,哪怕是第二天新参加的研究察也可以或许从新练习他们之前创建好的模型,并获得雷同的结不雅。
- 应当存在某种打包方法,将练习某个模型所需的元素打成包,这个包可以被共享出来,并且不会露模型作者不欲望裸露的汗青细节。
- 为了重现结不雅,代码、练习数据和全部平台须要被精确地记录下来。
在测验测验重现机械进修研究结不雅的过程中,你踩过哪些坑?对于机械进修结不雅难以重现,你是否也想吐槽?迎接留言分享你的看法。
原文链接:https://petewarden.com/2018/03/19/the-machine-learning-reproducibility-crisis/
【编辑推荐】
- 2018年大年夜数据,机械进修和人工智能猜测!
- 为什么说机械进修是我们预防收集威逼的最佳兵器
- TensorFlow进修之神经收集的构建
- 机械进修崭露头角 九大年夜认知误区早知道
- 若何用一个Python示例入门TensorFlow?
推荐阅读
-->全平易近充电节 | 3月26日~30日 2000位IT行业拭魅战专家邀请你一路充电进修! 数据中间概念产生于20世纪50年代末,追跟着>>>详细阅读
本文标题:机器学习研究重现难,难于上青天
地址:http://www.17bianji.com/lsqh/40856.html
1/2 1