CMU 博士《Nature》发文:你需要这样解决机器学习的三大“陷阱”

阅读数:3948 2019 年 8 月 14 日 11:48

CMU博士《Nature》发文:你需要这样解决机器学习的三大“陷阱”

当来自无数领域的科学家们热火朝天地投身于算法分析时,机器学习相关论文也出现了实验不充分、审查标准不一、实验结果不准确等一系列问题,来自谷歌的研究员、CMU 博士 Patrick Riley 在 2019 年 8 月的《Nature》杂志上呼吁:在机器学习的相关研究和报告中需要有明确的标准。Patrick Riley 还结合了自身经历,指出了在机器学习中需要避免的三个“陷阱”,以及这些问题的解决方法。

机器学习正在推动科学领域的探索进程。机器学习强大的模式发现和预测工具正在帮助各个科学领域的研究人员,比如发现制造分子的新方法、在样本检测中发现细微的信号、改进医学诊断方案以及揭示基本粒子性质等。

CMU博士《Nature》发文:你需要这样解决机器学习的三大“陷阱”

加州 TAE 科技公司和谷歌公司的研究人员正在使用机器学习来优化产生高能量等离子体的设备。图片来源:Liz Kuball

然而,机器学习工具也可能是“愚人的金子”(西方常把很像黄金的黄铁矿称为“愚人金”),也可能产生假阳性、死胡同甚至错误。许多算法过于复杂,以至于不可能对所有的参数逐一进行检测,也不可能精确地推断如何操纵输入的。随着这些算法开始得到越来越广泛的应用,误解、错误结论和浪费科研资源的风险将不断上升。

而这些问题并不新鲜。数十年来,机器学习领域一直在用“坦克问题”磨练自己。最初的研究大概始于 20 世纪 60 年代(参考文献【1】),并因为年代久远,很多细节都已经变得模糊不清,但故事大概是这样的,研究人员编写了一种算法,可以在军方提供的照片中识别出坦克。算法模型确实能在测试图像中成功地识别出坦克。但后来却难以识别出实地拍摄的真实照片。这是为什么呢?虽然这个故事复述的多个版本细节有所不同,但总的来说,都是因为训练它的图片包含了其他因素,例如,坦克出现时在晨光之中,或者处于云层之下。所以,驱动算法训练的是其他非重点因素,而不是坦克本身的存在。

今天,类似的困惑也引起了人们的反思(参考文献【2】)。许多机器学习的相关论文并未执行足够的实验。且审查标准前后并不一致。而激烈的竞争也使得一些研究人员选择“抄近路”,一旦他们认为自己得到了想要的答案,就会跳过必要的审查。

虽然我们不能预测到分析中遇到的所有问题。但是,那些应用机器学习的研究人员们,至少应该熟悉机器学习常见的陷阱,以及他们可以用来检测和避免这些陷阱的方法和实践。

为了说明这一点,我在本文中着重描述了我们在谷歌加速科学团队中应用机器学习时,所遇到并克服的三个主要问题。

分割数据不当

在构建模型时,机器学习实践者通常会将数据划分为训练集和测试集。训练集的作用是对模型进行训练,而该算法模型的性能评估则需要通过它描述测试集的契合程度来衡量。研究人员的典型做法是随机分割数据集合。但现实生活中的随机数据并不多。这些数据还可能包含时间元素,例如,数据收集方式可能随着时间会有变化,或者收集信息的种类会随着时间变化等。

举个例子,在利用机器学习算法筛选数据以寻找新型药物时,一些时间因素往往被隐藏在分子的数据集中。这项研究的挑战在于,当预测某一分子是否会被人体吸收或是减少炎症时,筛选会从分子的数据开始区分是否有效,但收集这些数据时的环境与机器学习模型的使用环境又不完全相同。

再例如,一个模型可能建立在一组公开可用的分子数据集上,却被应用在另一组专有的分子数据集上。当有希望的线索被检验并被抛弃时,化学家们的目光常常就会从某些分子集转向其他分子集。因此,研究人员往往高估了该算法模型在实际应用中的效果(参考文献【3】)。这可能导致预期过高,浪费时间和金钱在不恰当的分子集选择上。许多模型构建者,包括我自己,都曾经掉进过这个陷阱。

换句话说,你科研中想要解决的问题应该对分割数据的方式有所影响。为了使模型能够预测向一个分子中添加几个原子的效果,测试集中的每个分子在训练集中都应该有一个对应的伙伴,且这对伙伴的原子组成是不同的。如果你想对不同的化学分子做出准确的预测,那么测试集中所有分子都应该与训练集中的所有分子都完全不同。“正确”的数据分割方式可能并不明显,但仔细考虑并尝试几种方法会让你有更深刻的见解。

忽略隐藏变量

在理想的实验中,研究人员只会改变那些重点关注的变量,并固定所有其他变量。然而在现实世界中,这种程度的控制通常是无法达到的。设备的准确性会随着时间的推移而变化,试剂的批次也会不同,一种实验条件的执行可能先于另一种实验条件,实验结果甚至会受到天气的影响而产生偏斜。这种不受控制的变量在机器学习模型中往往会造成有害的影响。

例如,我在谷歌的团队一直与加利福尼亚州 Foothill Ranch 的核聚变创业公司 TAE Technologies 合作,进行优化生产高能等离子体的实验(参考文献【4】)。我们建立模型,试图了解等离子体机的最优设备设置。然而,系统中有数百个控制参数,诸多变量包括从什么时候给电极通电到在磁铁上设置多大电压,等等。我们逐一记录了这一系列测量结果,包括温度和频谱。

在几个月的时间里,我们从数千次运行的等离子体机器中获取数据。但随着组件的磨损和不同的想法被尝试,这些设置往往会随着设备的调整和修改而变化。当终于得出一个模型后,我们很高兴,这个模型很好地预测了给定环境下,等离子体的能量是否会很高。但是,很快我们就发现,该预测明显并不是基于我们的想法。

当我们再次训练模型时,将实验时间作为唯一输入参数,而不是用机器所有设置作为输入参数,结果我们得到了类似的预测能力。这是为什么?我们认为,我们的第一个模型实际上锁定在时间趋势上,而不是物理现象。随着实验的进行,有一段时间机器运转良好,也有一段时间运转不良。因此,实验进行的时间对等离子体是否处于高能量的信息产生了一定影响。此外,可以通过控制参数的设置来粗略地预测实验何时完成,这些参数的变化也具有时间趋势。

隐藏变量也可能来源于实验的物理布局。例如,我们正在进行的一项工作是解释显微镜图像,在这个项目上我们与许多合作机构共同工作,合作方包括位于纽约市的纽约干细胞基金会研究所。这些图像包括细胞培养板上的生物实验阵列,通常是一个包含细胞和液体的多孔网格。实验目标是发现具有某些特征的孔格,比如经过化学处理后细胞外观会发生变化。但是生物学上的变化意味着每个细胞培养板看起来总是略有不同。即使在同一个培养板里也可能会有差异。边缘位置的孔格常常和中央位置的孔格有所不同,原因有可能是,边缘位置的孔格中蒸发了更多的液体培养液,或者整个培养板被倾斜放置了。

机器学习算法可能很容易就会捕捉到这些无意的变化而产生错误。例如,该模型可能只识别出那些位于细胞培养板块边缘位置的特征孔格。检验这种情况是否发生的一个简单方法是,让模型预测一下其他目标,比如孔格在培养板的位置,孔格属于哪一培养板,以及显微镜图像来自于哪一批次。如果这个算法模型成功进行了预测,那么你或许就需要对原来的实验结果持一份怀疑态度了。

得出的教训是,需要使用多个机器学习模型来检测那些意外出现的和隐藏的变量。用一个算法模型解决问题本身,比如,等离子体能量是高还是低,这些细胞是健康的还是不健康的?再用其他算法模型帮助你排除那些混杂因素。如果后面用于排除的算法模型得出的结果显示,确实存在其他因素的明显干扰,则需要将数据进行标准化,进行更多的实验,或回炉重新锤炼你的结论。

弄错实验目标

机器学习算法要求研究人员指定一个“损失函数”(Loss Function),用这个函数去确定各种错误的严重程度。比如,是犯两个各为 1% 的错误更好,还是只犯一个 2% 的错误更好。很多机器学习的实践者往往倾向于只使用一小组功能来实现损失函数,而这些功能可能无法捕捉到他们真正关心的内容。

例如,我们一直使用机器学习来帮助解决偏微分方程(参考文献【5】)。这些公式在流体力学、电磁学、材料科学、天体物理学和经济建模等科学领域都很常见。通常,它们必须有数学意义上的解,这使得我们训练的算法模型在有限的解析度下能够提供更好的准确性。

我们从一个方程开始描述水波在一维空间内的传播方式。该算法的任务是重复预测当前步骤的下一个时间步长。我们使用了两个稍微不同的公式和训练模型。根据损失函数的结果来看,这两个模型具有一样好的效果。然而,一套模型实质上只会产生荒谬的结果,而另一套可以产生接近预期的结果。

这是为什么呢?因为这里用作控制学习的损失函数只考虑下一步的误差,而没有考虑多步求解的有效性,而这种整体有效性才是我们真正需要的。

CMU博士《Nature》发文:你需要这样解决机器学习的三大“陷阱”

印度马杜赖城市 Aravind 医院的一项眼科检查,那里的工作人员和谷歌的研究人员正试图将糖尿病导致失明的诊断自动化。图片来源:Atul Loke/The New York Times/Red/eyevine

我们在糖尿病视网膜病变机器筛查(参考文献【6】)方面的工作也曾经突然出现过类似的目标分歧。视网膜病变是糖尿病的一种并发症,也是世界上可预防类失明的主要病因之一。如果能及早从眼底图像中发现这种情况,就能有效地进行治疗。当我们收集数据并让眼科医生根据图像提供诊断时,我们要求我们的机器学习工具能够预测眼科医生的诊断结果。这时却出现了两个问题。

首先,多个眼科医生在同一病症诊断上常常意见不一。因此,我们意识到我们的模型不能只建立在单一预测的基础上。而且我们也不能在算法中简单地使用多数投票制度,因为在医疗诊断的准确性方面,有时少数派的意见才是正确的。其次,单一疾病的诊断也并不是我们真正的目标。我们首先要询问的是:“这个病人应该去看医生吗?” 因此,我们将目标从单一疾病扩展到多种疾病。

机器学习的实践者很容易过于专注于一个“显而易见”的目标,其中的数据和标签都是清楚明晰的。但他们可能正在设置算法来解决错误的问题。我们必须牢记总体的目标,否则我们创造出再精确系统也只是在解决错误问题。

未来的期望

首先,机器学习的专家们需要用更高的标准要求自己和同事。当一种新的实验设备出现时,我们希望我们实验室的工作伙伴充分了解它的功能,包括如何校准,如何检测错误,并知道设备的能局限。而对于机器学习也是同样如此。机器学习不是无所不能的魔法,它也只是一种实验工具,而我们则负责对其充分理解并加以熟练使用。

其次,在各自的领域内应用机器学习,不同的学科需要为执行和报告制定明确的标准。适当的控制、可靠性测试和误差测量将因科研领域而异,这些需要清楚地阐明,以便于研究人员、审阅人和论文编辑能够去鼓励科研中的良性行为。

第三,机器学习方面的科学家所受的教育需要包括这些更广泛的问题。尽管已经有一些教育资源,但我们还需要在这方面做更多的工作。我们经常教别人算法和工具,但学生需要学习更多关于如何应用这些算法的知识,并适当地提出质疑。

我们正处在一个令人惊叹的历史时刻,在机器学习的辅助下,计算能力、数据和算法正结合在一起,为科学发现创造无数的机会。我们有责任充分地利用这一历史机遇,共同打造一个健康的科研生态环境。

本文发表于《自然》第 572 期 (2019),27-29 页
doi: 10.1038 / d41586 - 019 - 02307 - y

参考文献
【1】 Kanal, L. N. & Randall, N. C. In Proc. 1964 19th ACM National Conf. 42.501–42.5020 (ACM, 1964).

【2】 Lipton, Z. C. & Steinhardt, J. Preprint at arXiv. (2018).

【3】 Sheridan, R. P.  J. Chem. Inform. Model.   53 , 783–790 (2013).

【4】 Baltz, E. A.  et al.   Sci. Rep.   7 , 6425 (2017).

【5】 Bar-Sinai, Y., Hoyer, S., Hickey, J. & Brenner, M. P.  Proc. Natl Acad. Sci. USA   (2019).

【6】 Gulshan, V.  et al.   J. Am. Med. Assoc.   316 , 2402–2410 (2016).

作者介绍:
Patrick Riley,美国加利福尼亚州山景城谷歌公司加速科学团队的首席工程师和高级研究员。

英文原文:
https://www.nature.com/articles/d41586-019-02307-y

评论

发布