隐藏变量
在一个理想的实验当中,研究者只改变他们感兴趣的变量,并让其他变量保持不变,而这种控制在现实当中几乎是不可能的。仪器的精确度会随着时间而改变,试剂的批次会有所不同,一个实验条件会先于另一个进行表现出来,甚至天气都有可能影响结果。在
机器学习模型中,这些不受控制的变量都将是有害无益的。
举个例子,谷歌的一个团队一直在加利福尼亚州的福特·希尔兰赫 (Foothill Ranch, California) 的核聚变初创公司TAE Technologies工作,进行优化生产高能等离子体的实验。他们在这里建了模型来试图理解等离子机的最佳设备装置。这里存在着上百个从“何时接通电极”到“设置在磁体上的电压为多少”等控制参数,然后记录了一系列包括温度和光谱在内的测量值。
他们历经数月,从数千次运行的等离子机中提取了数据,其中的设定会随着我们的设备调整、部件磨损和多种尝试有所变化。当我们得到了一个在给定的设置下,无论等离子能量是否会变高,预测结果都很不错的模型时,大家都很高兴,不过很快就打脸了。
当他们以实验时间为唯一输入而不是机器的所有设置来训练模型,也得到了相似的预测效果。为什么?因为模型锁定的就是时间趋势,而不是物理现象。也就是说,机器运转良好的时间段和不良的时间段分别出现,所以,从实验完成的时间可以看出等离子体是否是高能量的。此外,通过控制参数的设置可以粗略预测实验何时进行ーー这些参数的变化也存在时间趋势。也就是说,除了时间规律,模型什么物理规律都没管。
隐藏变量也会来源于实验布局。像我们在解读显微镜图像方面与许多机构合作,其中包括纽约市的纽约干细胞基金会研究所。这些图像包括了在培养皿上进行的生物实验,通常是一些包含细胞和液体的网格孔。我们的目标是发现拥有某些特征的孔,比如化学处理后细胞外观的变化。但是生物变异意味着每个培养皿本身总是会看起来有稍许不同,并且单个培养皿也可能存有差异。如果外围孔有更多液体蒸发,或者培养皿有被倾斜,那边缘看起来通常会与中心不一样。
机器学习算法能轻而易举地注意到这些变化。比如说模型可能刚辨认出了哪些孔处在培养皿的边缘 ,一种检查模型的简易方法就是让模型去预测其他方面,如培养皿的位置、哪一块培养皿,或者图片来源的批次。如果算法能做到这一点,那你最好对结果持怀疑态度。
最重要的一点是,要使用多个模型来检测那些意外变量与隐藏变量。可以用一个模型侧重你关心的问题,比如离子是高能还是低能,细胞是否健康,其他模型则用来清除干扰因子。如果后者结果很强,那么请将数据标准化,做些进一步的实验,或者调整一下结论。