最佳实践

这是 Martin Zinkevich (Google) 在 NIPS 2016 Workshop 分享的谷歌机器学习最佳实践翻译版,PDF 全文见 Rules of Machine Learning: Best Practices for ML Engineering

机器学习产品所要面对的难题是工程问题(而不是 ML 算法),所以在做机器学习时要遵循跟其他产品类似的工程原则。

术语

  1. 实例( Instance):预测的对象,对应数据集中的特征集合
  2. 标记(Label):预测的先验答案,对应数据集中的目标
  3. 特征(Feature):实例的一个属性,比如网页可能有一个 “包含猫” 的特征
  4. 特征集 (Feature Column):关联特性的集合(feature column is referred to as a “namespace” in the VW system (at Yahoo/Microsoft))
  5. 模型(Model):模型是对预测任务的统计表示方法(statistical representation of a prediction task),基于样例训练后用来预测
  6. 度量指标(Metric)和目标(Objective):衡量算法的度量以及目标指标
  7. 流水线(Pipeline):围绕机器学习算法的基础设施,包括数据采集、预处理到训练集、模型训练以及模型导出等。

机器学习之前

机器学习第一阶段:工作流(Pipeline)

机器学习第一阶段:监控

机器学习第一阶段:优化目标

机器学习第二阶段:特征工程

机器学习第一阶段主要关注三个问题:训练数据导入、确定系统的重点关注指标和保证底层基础设施的稳定可靠。当这三个问题都确认无误,也就已经搭建了一个可靠的机器学习系统,并且系统和每个组成部分都经过了严格测试,这时就可以进入第二阶段了。第二阶段中很多显著的特征被导入系统,将更容易取得成绩,这一阶段的主要任务是导入并以直观的方式组合这些显著的特征。

机器学习第二阶段:系统的人工分析

介绍几种反模式(anti­-patterns)。

机器学习第二阶段:训练偏差

训练服务偏差是指系统训练的性能和服务的性能有偏差,通常有几个原因

最好的方法是明确监控这些偏差。

机器学习第三阶段:减慢增速、精细优化和复杂模型

参考文档