谷歌机器学习规则要点简析:43条黄金法则

在进行机器学习之前

机器学习第一阶段:您的第一个管道

关于机器学习工程的最佳实践

马丁·辛克维奇

本文档旨在帮助已掌握机器学习基础知识的人员从 Google 机器学习的最佳实践中受益。它介绍了一种机器学习样式,类似于Google C++ 样式指南和其他常用的实用编程指南。如果您学习过机器学习方面的课程,或者拥有机器学习模型的构建或开发经验,则具备阅读本文档所必需的背景知识。

术语

在我们讨论有效的机器学习的过程中,会反复提到下列术语:

实例:要对其进行预测的事物。例如,实例可以是一个网页,您希望将其分类为“与猫相关”或“与猫无关”。

标签:预测任务的答案,它可以是由机器学习系统生成的答案,也可以是训练数据中提供的正确答案。例如,某个网页的标签可能是“与猫相关”。

特征:预测任务中使用的实例的属性。例如,某个网页可能具有“包含字词‘猫’”这一特征。

特征列:一组相关特征,例如用户可能居住的所有国家/地区的集合。样本的特征列中可能包含一个或多个特征。“特征列”是Google 专用的术语。特征列在 Yahoo/Microsoft 使用的 VM 系统中被称为“命名空间”或场。

样本:一个实例(及其特征)和一个标签。

模型:预测任务的统计表示法。您使用样本训练一个模型,然后使用该模型进行预测。

指标:您关心的一个数值。也许(但不一定)可以直接得到优化。

目标:算法尝试优化的一种指标。

管道:机器学习算法的基础架构。管道包括从前端收集数据、将数据放入训练数据文件、训练一个或多个模型以及将模型运用到生产环境。

点击率:点击广告中的链接的网页访问者所占的百分比。

概览

要打造优质的产品:

请把自己看成是一位出色的工程师,而不是一位机器学习专家。

实际上,您将面临的大部分问题都是工程问题。即使在使用出色的机器学习专家掌握的所有资源的情况下,大多数收获也是由合适的特征(而非精确的机器学习算法)带来的。所以,进行机器学习的基本方法是:

确保管道从头到尾都稳固可靠。

从制定合理的目标开始。

以简单的方式添加常识性特征。

确保管道始终稳固可靠。

上述方法将在长时间内取得很好的效果。只要您仍然可以通过某种简单的技巧取得进展,就不应该偏离上述方法。增加复杂性会减缓未来版本的发布。

当您充分利用了所有的简单技巧,或许就到了探索机器学习最前沿技术的时候了。请参阅第三阶段的“机器学习项目”部分。

本文档结构如下:

第一部分可帮助您了解构建机器学习系统的时机是否已经成熟。

第二部分介绍了如何部署第一个管道。

第三部分介绍了在向管道添加新特征时如何进行发布和迭代、如何评估模型,以及如何应对训练-应用偏差。

最后一部分介绍了当您达到稳定阶段时该怎么做。

之后是相关资源列表和附录,附录针对多次作为示例在本文档中提及的系统,提供了一些背景信息。

 

在进行机器学习之前

 1 条规则:不要害怕发布未采用机器学习技术的产品。

机器学习技术很酷,但它需要数据。从理论上讲,您可以采用来自其他问题的数据,然后针对新产品调整模型,但其效果很可能不如基本的启发式算法。如果您认为机器学习技术能为您带来 100% 的提升,那么启发式算法可为您带来 50% 的提升。

例如,如果您要对应用市场中的应用进行排名,则可以将安装率或安装次数作为启发式算法指标。如果您要检测垃圾邮件,则可以滤除以前发送过垃圾邮件的发布商。此外,也不要害怕手动修改。如果您需要对联系人进行排名,可以按使用联系人的时间顺序由近及远对其排序(或按字母顺序排序)。如果您的产品并非必须使用机器学习技术,则在获得足够的数据之前,请勿使用该技术。

 2 条规则:首先设计并实现指标。

在正式确定机器学习系统的功能之前,尽可能在当前系统中跟踪指标的值。这样做的原因如下:

提前行动有助于更轻松地从系统的用户获得授权。

如果您认为将来可能需要考虑某个方面,最好立即开始收集相关历史数据。

如果您在设计系统时考虑到指标测量,将来会省下很多力气。具体而言,您不希望自己以后在日志中苦苦查找字符串以测量指标!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfxsz.html