摘要:
- 拆分数据时要注意时间趋势
- 要注意隐藏变量,可以使用多个机器学习模型来检测
- 要选择合适的目标,否则我们将产生回答错误问题的精确系统
机器学习正在推动跨学科的发现。其强大的模式发现
和预测工具
正在帮助各个领域的研究人员——从寻找制造分子的新方法和在分析中发现细微信号,到
改进医学诊断和揭示基本粒子`。
然而,机器学习工具也可以变成傻瓜的金子——误报、死胡同和错误
。许多算法非常复杂,以至于无法检查所有参数或推断出输入是如何被操纵的。随着这些算法开始得到越来越广泛的应用,误解、错误结论和浪费科学努力的风险将呈螺旋式上升。
这些问题并不新鲜。几十年来,机器学习领域一直在解决“坦克问题”
。最初的研究似乎出现在 1960 年代(参考文献 1 是本研究已知的最早的似是而非的参考文献;感谢软件工程师杰夫考夫曼)并且被时间的迷雾所掩盖,但故事是这样的。研究人员编写了一种算法,可以在军方提供的照片中发现坦克。该模型在测试图像中成功找到了坦克。但后来在该领域的真实照片中失败了。为什么?复述的细节各不相同,但训练它的图片包含其他模式——坦克出现在晨光中,或在云层下。因此,驱动算法的是诸如此类的其他因素,而不是坦克的存在。
类似的困惑正在引起今天的反省2。许多机器学习论文未能进行足够的实验
。审查标准不一致
。竞争正在鼓励一些研究人员在认为自己得到想要的答案后走捷径并跳过检查。
我们无法预测每次分析会出现的所有困难。但是,至少,将机器学习引入他们领域的研究人员应该熟悉常见的陷阱
以及他们可以用来检测和避免它们的做法
。
为了说明这一点,我强调了我们在Google Accelerated Science 团队中面临和克服的机器学习分析中的三个问题。
1. 不恰当地拆分数据
在构建模型时,机器学习从业者通常将数据分解为训练集和测试集。训练集教授模型,模型的性能通过它对测试集的描述程度来评估。研究人员通常随机拆分数据
。但现实生活中的数据很少是随机的。它们可能包含时间趋势
——例如来自收集数据方式的变化,或者来自对收集哪些信息的不同选择。
例如,这些历史模式隐藏在分子数据集中,机器学习算法对这些数据进行了虚拟筛选,以寻找候选药物。挑战在于预测假设的分子将如何有效地被吸收到体内或减少炎症。筛选从具有或不具有预期效果的分子数据开始。但是收集数据的上下文可能与机器学习模型的使用方式不同。
例如,模型可能建立在一组公开可用的分子上,但随后用于不同的专有组。当有希望的线索被检查和丢弃时,化学家的目光经常从某些分子组转移到其他分子组。因此,研究人员经常高估模型在实践中的表现3。这可能会导致预期过高,并且会在选择不当的分子上浪费时间和金钱
。许多模型构建者(包括我自己)都掉进了这个陷阱。
换句话说,您要回答的问题应该会影响您拆分数据的方式。对于预测将几个原子添加到分子中的效果的模型,测试集中的每个分子都应该在训练集中有一个有几个原子差异的partner。如果你想对化学上不同的分子进行良好的预测,测试集中的每个分子都应该与训练集中的所有分子都不同
。拆分数据的“正确”方法可能并不明显,但仔细考虑并尝试多种方法将提供更多见解。
2. 隐藏的变量
在理想的实验中,研究人员只更改感兴趣的变量并修复所有其他变量。这种级别的控制在现实世界中通常是不可能的。设备的准确性随时间漂移,试剂批次不同,一种实验条件先于另一种条件进行,结果甚至会因天气而产生偏差。这种不受控制的变量在机器学习模型中可能是有害的。
例如,我在 Google 的团队一直在与位于加利福尼亚州山麓牧场的核聚变初创公司 TAE Technologies 合作,以优化生产高能等离子体的实验。我们建立模型以尝试了解等离子机的最佳设备设置。有数百个控制参数,从何时给电极通电到在磁铁上设置的电压。记录了一系列测量值,包括温度和光谱。
我们在几个月内从等离子机器的数千次运行中获取数据。随着设备的调整和修改以及组件磨损和尝试不同的想法,设置会有所不同。当我们得到一个模型时,我们很高兴,在给定的设置下,可以很好地预测等离子体的能量是否会很高。很快,很明显我们的预测不准了。
当我们再次训练模型时,以实验时间作为唯一输入
,而不是机器的所有设置,我们得到了类似的预测能力。为什么?我们认为我们的第一个模型锁定了时间趋势
,而不是物理现象。随着实验的进行,机器有一段时间运行良好,也有一段时间没有运行。因此,完成实验的时间为您提供了有关产生的等离子体是否为高能的一些信息。此外,可以根据控制参数的设置粗略预测实验何时完成——这些参数的变化也存在时间趋势。
隐藏变量也可能源于实验的布局
。例如,我们正在与许多合作者合作解释显微镜图像,包括纽约市的纽约干细胞基金会研究所。这些图像包括平板上的生物实验阵列——通常是包含细胞和液体的井网格。目标是发现具有某些特征的孔,例如化学处理后细胞外观的变化。但生物变异意味着每个板块看起来总是略有不同。并且在一个盘子上可能会有变化。边缘通常看起来与中心不同,例如,如果更多的液体在外围孔中蒸发或板倾斜的状况。
机器学习算法可以轻松识别这些无意的变化。例如,模型可能只识别哪些孔位于板的边缘。检查是否发生这种情况的一种简单方法是让模型预测其他事情,例如盘子上的位置、它是哪个盘子以及图像来自哪个批次。如果它可以做到这一点,请怀疑您的结果。
带回家的教训是:使用多个机器学习模型来检测意外和隐藏的变量
。一种模型关注您关心的问题——等离子体是高能还是低能;细胞是健康的还是生病的?其他模型清除了混杂因素。如果后一个结果很强
,请标准化您的数据,进行进一步的实验或调整您的结论。
3. 错误的目标
机器学习算法要求研究人员指定一个“损失函数”
,它决定了各种错误的严重程度——例如是两个错误各 1% 更好,还是单个错误 2% 更好。从业者倾向于使用一小组函数,这些函数可能无法捕捉到他们真正关心的东西。
例如,我们一直在使用机器学习来协助求解偏微分方程。这些公式在各个学科中都很常见,包括流体动力学、电磁学、材料科学、天体物理学和经济建模。通常,它们必须以数值方式求解,我们训练模型以在有限的分辨率下提供更好的精度。
我们从一个方程开始描述水波如何在一维中传播
。该算法的任务是重复预测当前时间步长的下一个时间步长。我们有两种略有不同的公式,并在两者上训练了模型。根据我们的损失函数,这两个模型同样出色。然而,一个产生了废话,而另一个则接近预期的结果。
为什么?控制学习的损失函数只考虑下一步的误差,而不考虑解决方案在许多步骤中的有效性
,这才是我们真正想要的。
我们在机器筛查糖尿病视网膜病变的工作中也出现了不同的目标,糖尿病视网膜病变是糖尿病的并发症,也是世界上可预防失明的主要原因。如果从眼睛后部的图像中及早发现,这种情况可以得到有效治疗。当我们收集数据并让眼科医生根据图像提供诊断时,我们要求机器学习工具预测眼科医生会说什么。出现了两个问题。
首先,眼科医生经常对诊断意见不一。因此,我们意识到我们的模型不能基于单一预测。我们也不能使用多数票
,因为在医疗准确性方面,有时少数意见是正确的。其次,单一疾病的诊断实际上并不是真正的目标。我们应该问:“这个病人应该去看医生吗?” 因此,我们将目标从单一疾病的诊断扩展到多种疾病。
机器学习从业者很容易专注于数据和标签清晰的“明显”目标。但他们可能正在设置算法来解决错误的问题
。必须牢记总体目标,否则我们将产生回答错误问题的精确系统。
4. 接下来
首先,机器学习专家需要让自己和他们的同事达到更高的标准。当新的实验室设备到货时,我们希望我们的实验室伙伴了解其功能
、如何校准
、如何检测错误
并了解其能力的极限。机器学习也是如此。不涉及魔法,使用工具的人必须理解这些工具。
其次,不同学科需要为如何在其领域执行和报告机器学习制定明确的标准
。适当的控制、健全性检查和错误测量会因领域而异,这些需要清楚地说明,以便研究人员、审稿人和编辑能够鼓励良好的行为。
第三,机器学习科学家的教育需要包括这些更广泛的问题。尽管存在一些资源(例如http://ai.google/education),但我们还需要做更多的工作。我们经常教授算法和工具,但学生需要更多地了解如何应用他们的算法并适当地提出问题。
我们正处于一个惊人的时刻——计算能力、数据和算法正在结合在一起,在机器学习的帮助下为发现创造巨大的机会。作为一个科学界,我们有责任确保我们好好利用这个机会。