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

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