算法分析已经成为科学研究的重要方法,生物学家、高能物理学家、病理学家等众多领域的研究人员广泛使用它机器学习算法被用来发现新公式和新方法,但谷歌加速科学团队的高级研究员帕特里克莱利最近在自然杂志上发表了一篇文章,研究人员普遍对机器学习抱有过高的期望,这可能会导致研究人员在错误的研究方向上浪费资源。在文章中,他列举了研究人员在使用机器学习时可能遇到的一些陷阱和应对思路。机器学习正在推进各个科学领域的研究,其强大的模式发现和预测工具正在帮助各个领域的科学家——从寻找合成分子到改进医学诊断,再到揭示基本粒子。然而,机器学习工具也可能做出一些毫无结果的探索——得到错误的肯定结果、不可行的方法和错误的结果。许多算法是如此复杂,以至于不可能检查它们的所有参数或准确推断它们如何处理输入。随着这些算法得到更广泛的应用,误解、得出错误结论和浪费科学资源的风险将急剧上升。这些不是新问题。几十年来,机器学习领域一直饱受“坦克问题”的困扰。最初的研究似乎出现在1960年代(参考文献1被认为是这方面研究中最早的文献;这是软件工程师JeffKaufman的功劳),但已被及时掩埋。总有这样的故事。当时,研究人员编写了一种算法来识别军方提供的照片中的坦克。生成的模型成功地在测试图像中找到了坦克,但随后未能识别出真实照片中的坦克。为什么?这个故事被重述了很多次,以至于细节无法再得到证实——但其训练中使用的图像包括其他模式——晨光中的坦克或云层下的坦克。所以是像这样的其他因素驱动算法,而不是坦克本身的存在。类似的神话导致了今天的反省。许多机器学习论文未能完成足够的实验集。用于判断的标准也不一致。现在竞争非常激烈,一些研究人员一旦得到他们想要的答案就会偷工减料并跳过检查。我们无法预测每个分析中的每个挑战,但至少将机器学习引入其领域的研究人员应该熟悉常见的陷阱以及检测和避免它们的实用方法。本文介绍了GoogleAcceleratedScience团队在使用机器学习分析来说明这种方法时面临和解决的三个问题。三个问题1.数据拆分不当在构建模型时,机器学习从业者经常将数据分为训练集和测试集。训练集用于模型学习,测试集用于评估模型在未知数据上的性能。研究人员经常以随机方式拆分数据,但现实生活中的数据很少是随机的。它们可能包含随时间变化的趋势——例如数据收集方式的趋势或要收集的信息的变化。例如,在通过机器学习算法进行虚拟筛选后,分子数据集中隐藏的历史模式可用于发现候选药物。这个问题的棘手部分是预测一个假设的分子被身体吸收或减缓炎症的效果。筛选从具有和不具有预期效果的分子数据开始,但收集数据的背景可能与机器学习模型的使用方式不同。例如,模型可能建立在公开可用的分子数据集上,但用于不同的专有数据集。当化学家检查或丢弃可能有希望的线索时,他们的研究重点通常会从特定的分子组转移到其他组。因此,研究人员往往会高估模型在实践中的表现。这可能会导致期望过高,在选择不当的分子上浪费时间和金钱。许多模型构建者(包括我自己)都陷入了这个陷阱。也就是说,您要回答的问题应该会影响您对数据进行分区的方式。为了让模型预测在分子中添加几个原子到分子中的效果,测试集中的每个分子应该在训练集中有一个对应的分子,仅相差几个原子。如果你想很好地预测化学上不同的分子,那么测试集中的每个分子都应该是训练集中的任何分子。对数据进行切片的“正确”方法可能并不明显,但深思熟虑并尝试各种方法可以让您获得更多洞察力。2.隐藏变量在一个理想的实验中,研究者只需要改变感兴趣的变量,而其他一切保持不变。这种级别的变量控制在实践中通常是不可能的。设备的准确性会随着时间的推移而变化,试剂的批次也会发生变化,一种实验条件先于另一种实验条件进行,实验结果甚至会受到天气的影响。这些不可控的变量在机器学习模型中可能是有害的。例如,我在谷歌的团队一直在与加利福尼亚州的聚变初创公司TAETechnologies合作,优化实验以产生高能等离子体。我们建立模型以尝试了解等离子机的最佳设备设置。机器中有数百个控制参数,从何时给电极通电到在磁铁上设置什么电压。我们记录了一系列测量值,包括温度和光谱。加利福尼亚州TAETechnologies和谷歌的研究人员正在使用机器学习来优化产生高能等离子体的设备。在几个月的时间里,我们从运行数千次的等离子机中获取数据。随着设备的调整和修改、组件的磨损以及多种想法的出现,设置也会发生变化。我们最终得到了一个令人放心的模型,该模型可以很好地预测等离子体在给定环境中是否会非常活跃。但是很快我们发现我们的预测和想法不符。在重新训练模型时,我们使用实验时间作为唯一输入,没有选择所有机器设置,我们获得了类似的预测能力。为什么?我们认为第一代模型锁定的是时间趋势,而不是物理现象。随着实验的进行,机器在一段时间内运行良好,而在另一段时间内运行不佳。所以,实验完成的时间会给你一些信息来判断产生的等离子体是否是高能量的。此外,通过控制参数的设置也可以大致预测实验的完成时间——这些参数的变化也存在时间趋势。隐藏变量也源于实验布局。例如,我们正在与许多合作者合作来解读显微图像,其中包括纽约干细胞基金会研究所。这些图像包括滴定板上的生物实验阵列——通常是包含细胞和液体的网格。目标是发现具有某些特征的孔,例如化疗后细胞外观的变化。然而,生物变异性意味着每个板块通常看起来非常不同。此外,个别滴度板可能会有所不同。例如,如果更多液体从边缘孔蒸发或板倾斜,边缘通常看起来与中心不同。机器学习算法可以很容易地捕捉到这些无意的变化。例如,该模型可能只识别哪些孔位于滴定板的边缘。检查是否发生这种情况的一种简单方法是让模型预测其他事情,例如盘子在哪里、它是哪个盘子以及图像来自哪个批次。如果模型可以做到这一点,那么结果应该受到质疑。经验教训:使用多个机器学习模型来检测意外和隐藏的变量。一种模型侧重于您关心的是等离子能量密集型还是低能量型;细胞是健康的还是生病的?其他模型排除了这些混杂因素。如果后者效果很好,将数据归一化,做进一步的实验或调整结论。3.设置错误的训练目标机器学习算法需要研究人员指定一个“损失函数”来判断各种错误的严重程度。从业者倾向于使用一小组功能,这些功能可能无法捕捉到他们真正关心的内容。例如,我们利用深度学习来帮助解决偏微分方程。这些公式在流体力学、电磁学、材料科学等各个领域都很常见。通常,问题必须用数值??来解决,我们训练模型以在有限的解决方案中提供更高的精度。我们首先描述水波在一维中的传播。该算法的任务是迭代地预测当前步的下一个时间步。我们在两种略有不同的公式上训练模型。根据我们的损失函数,两个模型的性能具有可比性。然而,虽然其中一个模型的结果接近预期,但另一个模型却产生了荒谬的结果。为什么会这样?原因是控制学习的损失函数只考虑了下一步的误差,并没有考虑到多步解的有效性,这才是我们真正想要的。在构建糖尿病视网膜病变筛查机器时,我们也遇到了目标不一致的情况。如果可以在眼底图像中及早发现此类病变,则可以有效地治疗患者。当我们收集数据并让眼科医生根据图像做出诊断时,我们有机器学习工具来预测医生接下来会说什么。这个时候会出现两个问题。首先,眼科医生经常不同意诊断。因此,我们意识到我们的模型不能只有一个预测或多数策略,因为有时在医疗准确性方面少数是正确的。其次,单一疾病的诊断实际上并不是真正的目标。医学领域真正的问题是:“这个病人需要看医生吗?”所以我们把我们的目标从单病种诊断扩展到多病种诊断。筛查糖尿病视网膜病变。机器学习从业者很容易被限制在一个“明显”的目标上,要求的数据和标签都很明确。但是,他们设计的算法不一定能解决实际问题。我们必须牢记总体目标,否则我们会开发出不切实际的精确系统。如何解决这些问题?首先,机器学习专家本身和他们的同事需要保持更高的标准。当收到新的实验室设备时,我们希望实验室合作伙伴了解它的作用、如何校准、如何检测错误以及设备的功能限制。机器学习也是如此,使用工具的人必须充分了解自己的能力。其次,不同学科需要针对如何在各自领域执行和衡量机器学习制定明确的标准。适当的控制、稳定性检查和错误测量因领域而异,需要明确说明,以便研究人员、审稿人和编辑能够鼓励良好的行为。第三,机器学习领域科学家的教育内容需要涵盖这些更广泛的问题。虽然我们可以参考一些现有的资源(比如谷歌AI),但还需要做更多的工作。我们通常教学生算法和工具,但他们需要更多地学习如何应用这些算法并适当地提出问题。我们生活在一个神奇的时代——在机器学习的帮助下,计算能力、数据和算法紧密结合,从而有更多机会发现新事物。作为学术界,我们有责任确保抓住并利用这些机会。原文地址:https://www.nature.com/articles/d41586-019-02307-y【本文为《机器之心》专栏原文翻译,微信公众号《机器之心》(id:almosthuman2014)》】点此查看作者更多好文
