机器学习正在为各个学科带来新的发现。各行各业的研讨——从立异分子制备工艺,到扩大化验时的痕迹,到改善医学确诊,再到发现基本粒子,都获益于它强壮的形式辨认和猜测东西。
美国加州TAE技能公司和谷歌的研讨人员正在运用机器学习优化高能等离子体设备 |Liz Kuball
可是,机器学习东西能挖出真金,也或许会挖出愚人金——造出假阳性成果,让咱们进入死胡同,发生误判。许多算法由于过分杂乱,底子不或许查看一切参数,也不或许推断出从输入到输出之间究竟经过了什么样的处理。跟着这些算法的运用日渐广泛,这些解读过错、核算过错、无功而返的现象势必会进一步添加。
要知道,这些并不是新呈现的问题。机器学习范畴面临“坦克问题”已经有几十年了。原始研讨能够追溯到1960年代(参考文献1是关于这类研讨的最早可信论文,这儿要感谢软件工程师Jeff Kaufman),仅仅跟着时刻的推移被遗忘了。故事是这样的:开端研讨者们写了一个算法,能够在军方供给的照片中辨认坦克。模型在测验图画中成功找到了坦克,可是之后在实在战场照片中却屡次失利。为什么呢?详细细节或许无从考证,但开端练习图片中包含了一些其他图画——有的坦克迎着晨光,有的坦克背对云彩。而事实上,恰是这些要素在驱动算法,而不是坦克本身。
现在,类似的紊乱仍值得咱们反思【2】。许多机器学习的论文在恰当的试验集上就体现欠好了。审阅论文的规范也良莠不齐。剧烈的竞赛让有的研讨人员挑选抄近道,一旦取得了想要的答案就“省下”一些查看。
咱们无法猜测各种研讨中或许存在的一切问题。但至少,将机器学习引进自己范畴的研讨者们应当熟知一些常见的圈套,以及能够用来查看并躲避它们的办法。
为了解说我的观念,以下我将罗列谷歌加快科学团队(Google Accelerated Science)在机器学习中遇到并处理的三个问题。
三个问题
拆分数据的办法有误。当树立模型的时分,机器学习的研讨者一般会把数据分红练习集和测验集。练习集用来让模型学习,而测验集用来检测模型对练习集的描绘作用。研讨者们一般会随机拆分数据。可是实际生活中的数据很少是随机的。它们或许会有一些时刻上的规则,例如数据收集办法或是收集内容的改动。
例如,在分子数据会集,这种时刻形式就被掩盖起来了。咱们用机器学习算法挑选这些数据,寻觅候选药物。这儿的难点在于要猜测一个不知道分子是否能有用被人体吸收,或是减轻炎症。挑选的数据来自有或没有期望效果的分子,可是收集数据时的布景或许和机器学习模型所运用的场景不一致。
例如,一个模型或许会运用可揭露获取的分子进行练习,然后用在了一组有专利的分子集上。而化学家常常会在某一类分子里最或许的几种分子被验证无效时转而研讨其他类型的分子。成果,研讨者们一般会高估模型的有用性【3】。这会导致期望过高,使得时刻和金钱被糟蹋在选得欠好的分子上。许多研讨者(包含我自己)都掉进过这个圈套。
换言之,应当依据想要答复的问题决议拆分数据的办法。假如想让模型猜测出添加几个原子会怎么改动分子的效果,那么测验会集的每个分子都应当和另一个差几个原子的分子构成一组。假如想要让模型在化学性质悬殊的分子间做出猜测,那么测验会集的分子就应该和练习会集的分子彻底不同。拆分数据的“正确”办法不必定显着,可是审慎思量并多测验几种办法就能取得更多思路。
躲藏变量。在抱负的试验中,研讨者只改动想研讨的变量,而坚持其他一切变量不变。实际中,这种程度的操控一般是做不到的。设备的精确度会随时刻改动,每批样品都会有所不同,试验时条件也有先后,甚至连气候也或许会影响成果。这种不可控变量会在机器学习模型中引发损害。
例如,我地点的谷歌团队一直在与加州一个核聚变草创公司TAE技能(TAE Technologies)协作,优化一个制作高能等离子体的试验【4】。咱们先构建了模型,企图了解等离子体机的最优设置。总共稀有百个操控参数,从何时给电极充能到磁铁的电压应当设到多少。咱们记录了一系列数据,包含温度和光谱。
后来,咱们花了几个月,从等离子体的数千次运转中收集数据。设备不断调整,部件逐个老化,他们不断有新的思路,因而设置也就有了各种改动。最终,咱们得出了一个能够依据设置猜测等离子体能量凹凸的模型,而且猜测得很精确。其时咱们很快乐,但很快就发现猜测中所运用的数据并不是咱们所想。
印度Aravind眼科医院与谷歌研讨者协作,测验让糖尿病致盲的确诊自动化 |Atul Loke/The New York Times/Red/eyevine
后来咱们从头练习了模型,这一次,咱们不再输入机器的一切设置,而只输入试验时刻,成果竟然得到了类似的猜测精度。为什么呢?咱们以为第一个模型收敛到了时刻趋势而非物理现象上。进行试验的时分,机器有一段时刻是正常作业的,其他时刻则不是。因而,试验进行的时刻就和等离子体的能量高不高发生了相关性。事实上,依据操控参数能够大致猜测出试验进行的时刻——这些参数的改动也遵从必定的时刻趋势。
躲藏变量还或许来历于试验的布局。例如,咱们和许多团队协作剖析显微图画,包含纽约干细胞基金会研讨所。这些图画包含培育板上的一系列生物试验——一般是包含了细胞和液体的格栅。咱们的方针是辨认出哪个格子里呈现了某种特征,例如在化学处理后细胞的外观发生了改动。但由于生物学差异,不同的培育板看起来稍有不同,同一块培育板上也会有改动。假如周边格子的液体蒸发得更快,或是培育板有些歪斜,边际的格子就会和中心的格子不相同。
机器学习算法很简略捉住这些意料之外的改动,导致模型或许仅仅在辨认哪些格子处在培育板边际。对此,一个简略的测验法是,让模型试着猜测一些其他数据,例如猜测格子在培育板上什么方位,是几号板子,是第几批样品。假如模型能猜测出这些,那成果就值得置疑了。
这儿的一个经验是:运用多个机器学习模型来检测意料之外和躲藏的变量。你需求用一个模型专门答复你关怀的问题——等离子体的能量是高是低?细胞是健康的仍是生病了?再用其他模型来扫除烟雾弹。假如后者的猜测性很好,就要对数据进行归一化、跑更多试验或是批改定论。
搞错方针。机器学习算法要求研讨者写出“丢失函数”,其间规则了各种过错的严峻程度——例如,是发生两个1%的失误更好,仍是一个2%的失误更好。许多人会运用很少的一组函数,成果无法捕捉到真实关怀的问题。
例如,咱们运用机器学习协助解偏微分方程【5】。这类公式在科学的各个范畴都通用,包含流体动力学、电磁学、材料科学、天体物理和经济模型。它们一般有必要数值求解,咱们则练习出了模型来在分辨率受限的情况下到达更高的精确度。
咱们从水波在一维怎么分散的方程开端。这个算法被要求不断从当时点开端猜测下一个时刻步后的状况。咱们有两个略有不同的公式,在两个公式上各自练习出了模型。依据咱们的丢失函数,这两个模型相同好。可是,其间一个发生的数据毫无意义,另一个则挨近期望的成果。
为什么呢?由于丢失函数只考虑了下一步的差错,而没有查看多个时刻步后的整体差错,而后者才是咱们真实想要的。
咱们在用机器剖析糖尿病视网膜病变时也呈现了不同的方针【6】。这是糖尿病的一种并发症,也是一种能够防备的失明。这种症状假如前期经过眼底成像检测到的话就能够有用医治。咱们收集了数据,并让眼科医师依据图画进行确诊,一起咱们让机器学习东西猜测眼科医师会怎么说。成果呈现了两个问题。
第一个问题是眼科医师在确诊上就有不同定见。因而,咱们意识到咱们的模型不能只根据一种猜测。咱们也不能简略地让少量服从多数,究竟医学上有时少量定见才是对的。第二个问题是,确诊这一种疾病并不是咱们的真实方针。咱们应当问的问题是:“这名患者是不是需求找医师看看?”因而,咱们把方针从检测一种疾病扩展到了检测多种疾病。
机器学习研讨者们很简略把目光聚集在数据和标签都很清晰的“清楚明了”方针上。但实际上,算法所核算的或许是过错的问题。有必要记住大方针是什么,不然就会制作出精准答复无用问题的机器。
下一步?
首要,机器学习专家有必要让本身和团队对标更高的规范。当试验室来了新设备时,咱们必定期望试验室的一切人都知道它的原理,怎么校准,怎么检测过错,并了解其适用范围。对机器学习也是相同,这儿没有什么魔法——工欲善其事,必先“知”其器。
其次,不同范畴有必要为怎么运用机器学习并评价定论建立清晰的规范。适宜的对照组、可靠性查看和差错剖析在不同范畴中都有所不同,这些都有必要清晰标出,这样研讨者、审稿人和修改才干鼓舞正确的研讨办法。
其三,在教授机器学习时,不该忽视这类比较泛的问题。尽管已经有了一些相关资源(例如http://ai.google/education),但咱们需求做得更好。咱们常常会教授算法和东西,但学生需求进一步学习怎么运用算法,并反思运用是否妥当。
咱们处在最好的年代——在机器学习的助攻下,核算力、数据和算法正在完成三剑合璧,巨大的发现指日可下。但作为科学共同体,咱们有职责保证这一时机得到合理运用。
参考文献:
1. Kanal, L. N. & Randall, N. C. InProc. 1964 19th ACM National Conf.42.501–42.5020 (ACM, 1964).
2. Lipton, Z. C. & Steinhardt, J. Preprint at arXiv. http://arxiv.org/abs/1807.03341 (2018).
3. Sheridan, R. P.J. Chem. Inform. Model.53, 783–790 (2013).
4. Baltz, E. A.et al. Sci. Rep.7, 6425 (2017).
6. Gulshan, V.et al. J. Am. Med. Assoc.316, 2402–2410 (2016).
题图来历:pixabay
欢迎个人转发到朋友圈
喜爱记得点“在看”