本文主要围绕的是谷歌公司(Google)在机器学习方面的经验,旨在为那些具备一定机器学习基础的读者提供最佳的经验法则。文章向读者展现机器学习经验法则的方式,与谷歌 C++ 风格指南以及其它流行的编程实践指南相类似。如果你曾上过机器学习的相关课程,或者曾构建或研究过机器学习的模型,那么你就已经具备了足够多的阅读本文的知识了。AI100 编译了《Rules of Machine Learning: Best Practices for ML Engineering》全文内容
本文共分为四部分:
在机器学习之前
机器学习阶段1:第一条工作流
认真对待第一条工作流的基础架构建设。虽然发挥想象力构思模型很有意思,但首先得确保你的工作流是可靠的,这样出了问题才容易发现。
监 控
一般来说,所有系统都要设置良好的警示程序,警报系统需要顺利执行,或者设置一个仪表板页面(dashboardpage)。
你的第一个目标
你会关注许多系统评测指标,但机器学习算法的目标通常只有一个——这个目标是一个数字,算法需要不断地努力优化这个数字。在这里,我对目标和度量作一下区分:度量是系统报告给出的数字,不一定很重要。
机器学习阶段2:特征工程
在机器学习系统研发周期的第一阶段,重点是把训练数据导入学习系统,确定度量和兴趣的评价指标(仪表化),并创建基础架构。当你有了一个端对端的系统,并且该系统的单元和测试都仪表化之后,第二阶段便开始了。
在第二阶段可以轻松实现许多成果。很多明显的特征都能被纳入系统。因此,该阶段需要纳入尽可能多的特征,并依据直观的感觉组合起来。在这个阶段,所有的度量仍会上升,会有很多成果发布,这时候最适合招募大量工程师,他们可以整合你需要的数据,来创造一个真正了不起的学习系统。
系统的人工分析
在进入机器学习的第三阶段之前,有必要先关注一下机器学习课程上没有教过的东西:如何看待和改进现有的模型。这更像是艺术而非科学,但却能帮助我们避免某些反模式(anti-pattern)。
训练偏差(Training-Serving Skew)
训练偏差是指训练时的表现和实际运行时的表现的差别。这种偏差可能由以下因素引起:
我们观察到 Google 的机器学习产品也出现了训练偏差,这个训练偏差为实际的运行状况带来了负面的影响。最好的解决方案就是对其进行监督,以便观察到系统和数据的不易察觉的变化。
机器学习阶段3:放慢速度、优化细化和复杂的模型
相关的信号肯定在提示,第二阶段已经接近尾声了。首先,你每月的收益开始减少。你开始权衡比较各种度量:在某些试验中,有些度量获得了提高,而另一些度量却在下降。而且,事情变得越来越引人注目。随着收益越来越难得,机器学习也变得更为复杂。
警告:相比之前两个章节,这个章节的法则大有纸上谈兵之嫌。很多团队十分顺利地走过了第一阶段和第二阶段,但是到了第三阶段,却不得不开创新的道路。
本文由 AI100 编译,转载需得到本公众号同意。
编译:AI100
原文链接:http://martin.zinkevich.org/rules_of_ml/rules_of_ml.pdf