孕前保健
防病优生
女性早孕
怀孕常识
孕前营养
孕中保健
孕期疾病
孕期饮食
孕期保健
分娩保健
临盆待产
分娩时刻
产前诊断
产后保健
靓丽重现
产后心理
产后保健
月子饮食
宝宝保健
育儿心理
婴儿期
哺乳知识
母婴交流
靓丽重现

机器学习正面临着可重现性危机!

作者:小编 来源: 日期:2018-9-8 12:12:33 人气:

  最近和一位朋友聊天时,他提到自己的创业公司创建的机器学习模型非常混乱,以至于团队在彼此的基础上进一步工作或与客户分享时引发了很严重的问题。即使模型的作者有时都无法训练同一个模型,并得到类似的结果!他希望我可以提供一些参考的解决方法,但我不得不承认,在自己的工作中也了同样的问题。可能没有使用机器学习的人很难理解,但是对于机器学习领域内变更以及重建模型,我们仍然处于摸索期。有时候感觉我们的编程工作回到了没有源代码版本控制的年代,让人十分糟心。

  我从90年代中期开始以编程为生,当时源代码与协调的标准工具是微软的VSS(Visual SourceSafe)。当时这个软件没有原子check-in,所以同一个文件无法支持多人编辑,网络副本需要每晚进行扫描,以避免莫名其妙的马谡败给损伤,但即使如此也不能到了第二天早上数据库完好无损。尽管如此我还是感到很幸运,因为我曾经面试过的一家公司还在使用往墙上贴便条的方法管理代码版本,还有一家公司将所有文件都挂在树上,编程人员在修改文件时将它们取下来,修改完了再放回去!

  我想说的是,在版本控制方面,我不是一个畏首畏尾的人。我经历过一些很糟糕的系统,如果有必要的话,我可以用rsync和一些安全措施自己一个版本控制系统出来。抛开所有的这些不说,我可以摸着说,机器学习是迄今为止我接触过的在协作和变化方面最糟糕的。

  对于一个尽职尽责的研究人员来说,这算是乐观的情况了,但是我相信你已经见识了如果其他人参与进来,试图重复所有的步骤,并得到相同的结果有多难了。上述每一点都有可能混入造成最后结果不一致的因素。另外,更麻烦的是,ML框架为了性能而了确切数字的确定性,所以即便有人很神奇地重复了上述步骤,那么最终的结果也会有微小的差异!

  在许多现实情况中,研究人员不会准确地记录或记住她所做的事情,所以甚至连作者本人(她)都很难重现这个模型。即便她本人做到了,但是模型代码所依赖的框架也会随着时间的推移而改变,有时甚至会出现根本性的改变,所以她可能还需要对整个系统做快照,才能确保其正常工作。在与ML研究人员的接触中,我发现他们非常愿意付出时间帮忙重现模型的结果,但是即便在作者的协助下,通常也需要花费几个月的时间。

  为什么这一切很重要?我的很多朋友在试图重现已发表的模型作为自己的论文的基准时,都遇到了问题而找我帮忙。如果他们无法得到与原作者相同的准确度,又如何判断他们的新方法是否有所改进呢?如果面对需求或平台的变更,而没有办法重建模型的话,那么在生产系统中依赖于模型的顾虑也是显而易见的。如果真是这样,那么意味着模型的技术债务就不再是高息信用卡了,而是变得更像高利贷交易了。这个问题还会研究实验,因为如果代码和训练数据的变更很难还原,那么尝试不同的参数就会带来更大的风险,就像没有源代码控制的编程会增加试验变化的成本。

  然而,这方面的发展也并非全无希望,有一些社区已经在重现性上做出了很大的努力。我最喜欢的其中一个是由Toby Boyd领导的TensorFlow Benchmarks项目。他要求团队的为:不仅要准确地展示如何在各种不同的平台上快速地从零训练模型,还要模型训练能够达到预期的精确度。我亲眼目睹他为了让模型达到精确度累得满头大汗,因为我列举的任何步骤的变化都有可能影响最终的结果,并且即使在作者的帮助下,也没有简便的方法可以调试查出其根本原因。由于任何发生在TensorFlow、GPU等驱动程序中的变化,或者甚至数据集中的变化,都有可能以微妙的方式影响精确度,因此这似乎是个永无止境的工作。在工作的过程中,Toby的团队帮助我们找到并修改了模型中TensorFlow变化引起的bug,并了引起该问题的外部因素,但这很难适用于相对较大的平台与模型。

  我还知道一些其他的团队也在很认真地思考在产品中使用模型的问题,他们也花费了大量的时间和精力来确保训练好的模型可以重现,但问题在于这一切工作全部依赖于手工作业。对于如何记录训练的过程,以便日后可以再次成功地运行,我们并没有类似的源代码控制,甚至没有最佳的实践方案。我个人也没有很好的解决办法,但是我想在这里讨论一些原则,我认为任何想要取得成功的方法都需要遵从这些原则:

  我已经看到开源和一些创业公司围绕这些挑战的解决方案,展开了一些有趣的反响,我个人迫不及待想要将自己所有的时间都花在处理这些相关的问题上,但是我并不敢奢望短期内可以完全地解决这个问题。无论我们提出怎样的创意,都必然需要改变我们所有人使用模型的方式,就像源代码控制改变了我们个人编码的流程一样。我们需要在最佳实践与社区教育上达成共识,这与我们创建这些工具同等重要。我迫不及待希望看到这一天的到来!

  文章由325棋牌提供发布

推荐文章