和其他科学学科一样,机器学习也会借助实验获取关于目标的信息。宏观来看,实验的设计与分析正在逐渐脱离具体问题的限定,有成为一门独立学科的趋势。不管是物理学还是经济学,对实验的处理都存在着一些共性的准则。在本篇文章中,我就和你简单谈谈机器学习中有关实验设计与分析的一些原则性问题。

在讨论实验设计之前,先得知道实验设计到底是怎么回事。实验设计(experimental design),或者叫设计实验(designed experiment),指的是在实验之前制定详细的实验计划,确定实验目标并选择待研究的过程因子(process factor)。精心挑选的实验设计可以在给定资源的条件下使实验获得的信息量最大化,让实验结果最大程度地接近真实结果。实验设计需要人为改变一个或多个过程因子,以观察这种变化对一个或多个因变量的影响,其目的是分析获得的数据以产生有效和客观的结论。

在现有的关于机器学习的文献中,对设计实验部分的讨论似乎并不多见,其原因在于这部分工作已经由他人代劳,而不需要放在机器学习的应用层面来解决。在各种各样的图像识别竞赛中,无论是训练集还是测试集都是预先给定的,其中的每张图片都有精确的标注。看起来,设计实验似乎是一项蓝领工作,它被处理高大上算法的白领工作给人为地屏蔽了。可真实情况是什么呢?通过人工数据训练出来的算法,在真实世界中的行为可能完全不同,从“人工智能”变成“人工智障”只是捅破一层窗户纸这么简单。

设计实验绝非简单的蓝领工作,它甚至比机器学习本身更加注重策略的作用。机器学习的目标是模拟数据的内在生成机制,取得较低的泛化误差和较强的预测精度。对数据生成机制的学习是建立在足量数据的基础上的,因此机器学习需要的数据多多益善,不会对数据提出这样那样的要求。即使是类别不平衡或者属性有缺失值,机器学习对这些非完美的数据也会来者不拒。这就像一个给啥吃啥的傻小子,只要能填饱肚子就无欲无求了。

相比之下,在设计实验中,数据都是经过精挑细选的,最重要的特性就是平衡(balance)。一般来说,“平衡”意味着对于数据来说,每个特征可能的取值个数都是相同的,而对于特征来说,每个取值上的数据比例也是要近似相同的。这种平衡保证了每个特征对结果都会产生同等程度的影响,从而回避了特征和因子之间的偏好关系。这就像个讲究生活品质的人,不仅要填饱肚子,还要通过口味和营养的搭配吃得美味、吃得健康。这在实验中就表现为精确衡量不同因子对实验结果的影响。

设计实验要完成的任务是对整个机器学习过程的优化。影响作为一个过程,而不单单是一个模型的机器学习的因子是多种多样的,其中最基本的因子就是选用的模型形式。当解决一个分类问题时,主成分分析(通常作为预处理方法出现)、KK