機(jī)器學(xué)習(xí)預(yù)測(cè)工具正在幫助各個(gè)領(lǐng)域的研究人員,比如發(fā)現(xiàn)分子的新方法、在分析中發(fā)現(xiàn)細(xì)微信號(hào),提高醫(yī)學(xué)診斷質(zhì)量、揭示基本粒子的性質(zhì)等。
然而,機(jī)器學(xué)習(xí)工具也可能成為問(wèn)題的根源,產(chǎn)生誤報(bào),導(dǎo)致盲目試驗(yàn)和錯(cuò)誤。現(xiàn)在的許多算法都非常復(fù)雜,復(fù)雜到可能已經(jīng)無(wú)法一一檢查所有參數(shù),無(wú)法確切了解輸入的運(yùn)行方式。隨著這些算法的應(yīng)用越來(lái)越廣泛,出現(xiàn)誤解、錯(cuò)誤結(jié)論和“做無(wú)用功”的風(fēng)險(xiǎn)變得越來(lái)越大。這些問(wèn)題其實(shí)并不新鮮?,F(xiàn)在不少機(jī)器學(xué)習(xí)論文未能完成足夠的實(shí)驗(yàn),審查標(biāo)準(zhǔn)也多有不一致。由于競(jìng)爭(zhēng)激烈,一些研究人員會(huì)為了得到想要的結(jié)果而偷工減料,跳過(guò)必要的檢查環(huán)節(jié)。雖然我們無(wú)法預(yù)測(cè)所有問(wèn)題的出現(xiàn),但至少,研究人員在自己的領(lǐng)域應(yīng)用機(jī)器學(xué)習(xí)時(shí),應(yīng)該熟悉并掌握發(fā)現(xiàn)和避免這些常見(jiàn)問(wèn)題的方法和實(shí)踐。下面以筆者的親身經(jīng)歷為例,提出在Google Accelerated Science團(tuán)隊(duì)中運(yùn)用機(jī)器學(xué)習(xí)分析時(shí)遇到的三個(gè)主要問(wèn)題。
如何拆分?jǐn)?shù)據(jù)是門學(xué)問(wèn)
不恰當(dāng)?shù)夭鸱謹(jǐn)?shù)據(jù)。在構(gòu)建模型時(shí),研究人員通常會(huì)將數(shù)據(jù)分為訓(xùn)練集和測(cè)試集。訓(xùn)練集負(fù)責(zé)“教授”模型,并通過(guò)模型對(duì)測(cè)試集的描述準(zhǔn)確程度來(lái)評(píng)估模型性能。研究人員一般會(huì)隨機(jī)分割數(shù)據(jù)。但現(xiàn)實(shí)生活中的數(shù)據(jù)很少是隨機(jī)的。數(shù)據(jù)可能存在隨時(shí)間變化的趨勢(shì)——比如收集數(shù)據(jù)的方式不同導(dǎo)致的變化,或者對(duì)收集哪些信息的不同選擇而導(dǎo)致的變化等。
比如,在利用機(jī)器學(xué)習(xí)算法篩選新藥的過(guò)程中,這些模式就隱藏在分子的數(shù)據(jù)集中,于是挑戰(zhàn)就在于,預(yù)測(cè)某一分子是否能有效吸收到體內(nèi),減輕炎癥。這個(gè)預(yù)測(cè)由篩選分子數(shù)據(jù)開(kāi)始,但是收集數(shù)據(jù)的背景可能與機(jī)器學(xué)習(xí)模型的使用方式不同。比如,可以先在公開(kāi)可用的一組分子上建模,然后將模型用于不同的專有分子集上?;瘜W(xué)家的注意力經(jīng)常從某些分子群轉(zhuǎn)向其他分子,經(jīng)常高估模型的實(shí)際表現(xiàn)。這可能導(dǎo)致過(guò)高的預(yù)期,并且在錯(cuò)誤的分子上浪費(fèi)時(shí)間和金錢。許多人(包括我自己)都陷入了這個(gè)陷阱。換句話說(shuō),你想要解決的問(wèn)題會(huì)影響對(duì)數(shù)據(jù)的拆分方式。為了考察模型預(yù)測(cè)添加幾個(gè)原子對(duì)分子的影響,測(cè)試集中的每個(gè)分子應(yīng)該在訓(xùn)練集中加入一個(gè)不同的原子。如果你想對(duì)不同分子做出很好的預(yù)測(cè),那么測(cè)試集中的每個(gè)分子應(yīng)該與訓(xùn)練集中的所有分子全部不同。分割數(shù)據(jù)的“正確”方式可能并不明顯,但仔細(xì)考慮并嘗試多種方法可以提供更高的可靠性。
隱藏變量。在理想的實(shí)驗(yàn)中,研究人員可以只更改自己感興趣的變量,固定所有其他變量。在現(xiàn)實(shí)世界中,這種控制通常是不可能實(shí)現(xiàn)的。隨著時(shí)間的推移,設(shè)備的精度會(huì)發(fā)生變化,不同批次的試劑,不同的實(shí)驗(yàn)順序,甚至是不同的天氣,都會(huì)對(duì)結(jié)果造成改變。這種“不受控制”的變量在機(jī)器學(xué)習(xí)模型中可能是有害的。
例如,我在Google的團(tuán)隊(duì)一直在加州一家核聚變初創(chuàng)公司TAE Technologies工作,優(yōu)化生產(chǎn)高能等離子體的實(shí)驗(yàn)流程。我們建立了模型,試圖了解等離子機(jī)的最佳設(shè)置。我們?cè)趲讉€(gè)月的時(shí)間里獲得了等離子機(jī)數(shù)千次的運(yùn)行數(shù)據(jù)。建模完畢時(shí),我們很高興,根據(jù)給定的設(shè)置預(yù)測(cè),等離子體的能量是否會(huì)很高。但很快,我們發(fā)現(xiàn)的預(yù)測(cè)結(jié)果和我們的設(shè)想不符。

在印度馬杜賴的Aravind醫(yī)院進(jìn)行眼科檢查,醫(yī)生和谷歌的研究人員正嘗試自動(dòng)診斷由糖尿病引起的失明
當(dāng)我們?cè)俅斡?xùn)練模型時(shí),將實(shí)驗(yàn)時(shí)間作為唯一輸入,也獲得了類似的預(yù)測(cè)能力。為什么?我們認(rèn)為我們的第一個(gè)模型鎖定了時(shí)間趨勢(shì),而不是物理現(xiàn)象。隨著實(shí)驗(yàn)的進(jìn)行,有一段時(shí)間機(jī)械運(yùn)行良好,有些時(shí)間則沒(méi)有。因此,實(shí)驗(yàn)的時(shí)間可以為您提供有關(guān)產(chǎn)生的等離子體是否為高能量的信息。這里的實(shí)驗(yàn)時(shí)間就是“隱藏變量”。隱藏變量也可以由于實(shí)驗(yàn)的設(shè)計(jì)而產(chǎn)生。比如我們的團(tuán)隊(duì)正在進(jìn)行的一個(gè)合作項(xiàng)目是對(duì)顯微鏡圖像進(jìn)行“解釋”。這些圖像包括在實(shí)驗(yàn)板上的生物實(shí)驗(yàn)陣列,通常是包含細(xì)胞和液體的孔的網(wǎng)格。我們的目標(biāo)是找到具有某些特定特征的孔,比如經(jīng)化學(xué)處理后細(xì)胞外觀的一些變化。但生物的多樣性本身就讓每個(gè)實(shí)驗(yàn)板都略有區(qū)別。在一塊板上也可能存在差異。位于板邊緣的液滴與中心部分的不同,比如邊緣部分的液體蒸發(fā)更強(qiáng)烈,或者板本身可能出現(xiàn)傾斜,這些都會(huì)導(dǎo)致結(jié)果的差異。機(jī)器學(xué)習(xí)算法可以輕松掌握這些人們未意識(shí)到的變化。比如模型可能只是負(fù)責(zé)確定哪些液滴位于板的邊緣。檢查是否出現(xiàn)這種“隱藏變量”的一種簡(jiǎn)單方法是讓模型預(yù)測(cè)其他目標(biāo),比如液滴在板上的位置,位于哪塊板上,顯微鏡圖像來(lái)自哪個(gè)批次。如果模型成功預(yù)測(cè)到了,可能就需要對(duì)原來(lái)的實(shí)驗(yàn)結(jié)果持一份懷疑。要解決這個(gè)問(wèn)題,可以使用多個(gè)機(jī)器學(xué)習(xí)模型來(lái)檢測(cè)意外變量和隱藏變量。其中一個(gè)模型預(yù)測(cè)主問(wèn)題——比如等離子是高能還是低能狀態(tài)、細(xì)胞是健康還是生病,而用其他模型排除混雜因素。如果后者的預(yù)測(cè)結(jié)果很強(qiáng),可能就需要對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理、進(jìn)行進(jìn)一步實(shí)驗(yàn),或準(zhǔn)備修正之前的實(shí)驗(yàn)結(jié)論。
認(rèn)不清真正的目標(biāo):“損失函數(shù)”不是萬(wàn)靈藥
認(rèn)不清目標(biāo)。機(jī)器學(xué)習(xí)算法要求研究人員指定一個(gè)“損失函數(shù)”,由它決定各種錯(cuò)誤的嚴(yán)重程度。目前人們傾向于使用更小的函數(shù)集,這些函數(shù)往往無(wú)法捕捉研究人員真正關(guān)心的內(nèi)容。
比如我們一直在使用機(jī)器學(xué)習(xí)來(lái)輔助求解偏微分方程。這些方程在流體力學(xué)、電磁學(xué)、材料科學(xué)、天體物理學(xué)和經(jīng)濟(jì)建模中都很常見(jiàn)。我們從一個(gè)方程開(kāi)始描述水波如何在一個(gè)維度上傳播。該算法的任務(wù)是重復(fù)預(yù)測(cè)當(dāng)前步驟的下一個(gè)時(shí)間步長(zhǎng)。我們使用兩種稍微不同的訓(xùn)練模型。從損失函數(shù)來(lái)看,這兩個(gè)模型同樣好。然而實(shí)際上,一個(gè)完全不能用,而另一個(gè)產(chǎn)生了接近期望的結(jié)果。為什么?因?yàn)榭刂茖W(xué)習(xí)的損失函數(shù)只考慮下一步的錯(cuò)誤,而不能量度多步的解決方案的有效性,而我們真正想要的恰恰是后者。在利用機(jī)器學(xué)習(xí)對(duì)糖尿病視網(wǎng)膜病變的機(jī)器篩查任務(wù)中,也出現(xiàn)了不同的目標(biāo)。對(duì)于這種病,如果從眼睛后部的圖像中提早檢測(cè)到,就可以有效治療。當(dāng)我們收集數(shù)據(jù),并讓眼科醫(yī)生根據(jù)圖像提供診斷時(shí),會(huì)讓機(jī)器學(xué)習(xí)工具預(yù)測(cè)眼科醫(yī)生會(huì)說(shuō)些什么。結(jié)果出現(xiàn)了兩個(gè)問(wèn)題。首先,眼科醫(yī)生們經(jīng)常在診斷意見(jiàn)上無(wú)法達(dá)成一致。因此我們意識(shí)到,不能將模型建立在單一預(yù)測(cè)上。同樣也不能使用“少數(shù)服從多數(shù)”那一套,因?yàn)樵卺t(yī)療準(zhǔn)確性方面,有時(shí)少數(shù)意見(jiàn)是正確的。第二,其實(shí)對(duì)這種單一疾病的診斷并不是我們真正的目標(biāo)。我們本來(lái)應(yīng)該問(wèn)的是:“這位患者應(yīng)該去看醫(yī)生嗎?”因此,需要將預(yù)測(cè)目標(biāo)從單一疾病的診斷擴(kuò)展到多種疾病。機(jī)器學(xué)習(xí)從業(yè)者很容易掌握數(shù)據(jù)和標(biāo)簽清晰的“明顯”目標(biāo)。但可能在算法的設(shè)置上沒(méi)能解決正確的問(wèn)題。必須牢記總體目標(biāo),否則再精確的系統(tǒng)解決的也是錯(cuò)誤的問(wèn)題。
首先,機(jī)器學(xué)習(xí)研究人員要讓自己和同事保持更高的標(biāo)準(zhǔn)。對(duì)于一臺(tái)新的實(shí)驗(yàn)設(shè)備,必須充分了解其功能,如何校準(zhǔn),如何檢測(cè)錯(cuò)誤,設(shè)備的局限性有哪些等。對(duì)于機(jī)器學(xué)習(xí)模型和算法也要如此。所謂“神奇的魔法”其實(shí)是不存在的,使用工具的人必須要理解這些工具。其次,對(duì)于不同的學(xué)科,需要制定明確的標(biāo)準(zhǔn)。適當(dāng)?shù)目刂疲∪詸z查和錯(cuò)誤測(cè)量將因不同領(lǐng)域而異,這些都需要清楚地說(shuō)明,以便研究人員、審稿人和期刊編輯能夠鼓勵(lì)良性的科學(xué)行為。第三,關(guān)于機(jī)器學(xué)習(xí)科學(xué)教育需要囊括這些更廣泛的問(wèn)題。雖然目前已經(jīng)有一些資源,但我們還需要做更多工作。筆者所在的團(tuán)隊(duì)經(jīng)常教授算法和工具,但學(xué)生需要更多地了解如何應(yīng)用他們的算法,并對(duì)算法本身保持適當(dāng)?shù)馁|(zhì)疑。目前,算力、數(shù)據(jù)和算法的匯集正迸發(fā)出巨大的合力,在機(jī)器學(xué)習(xí)的加持下,為更多的新發(fā)現(xiàn)創(chuàng)造了巨大的機(jī)會(huì)。作為科學(xué)共同體的一員,我們有責(zé)任確保能夠最充分、高效地將這個(gè)機(jī)會(huì)利用好。
https://www.nature.com/articles/d41586-019-02307-y