谷歌高級(jí)研究員Nature發(fā)文:避開機(jī)器學(xué)習(xí)三大「坑」
算法分析已經(jīng)成為科學(xué)研究的重要方法,生物學(xué)家、高能物理學(xué)家、病理學(xué)家等許多領(lǐng)域的研究者都正在廣泛采用機(jī)器學(xué)習(xí)算法來發(fā)現(xiàn)新配方和新方法,但是谷歌 Accelerated Science 團(tuán)隊(duì)高級(jí)研究員 Patrick Riley 近日在 Nature 上發(fā)表的文章認(rèn)為,科研工作者對(duì)機(jī)器學(xué)習(xí)的預(yù)期普遍過高,這可能會(huì)導(dǎo)致研究者將資源浪費(fèi)在錯(cuò)誤的研究方向上。他在文中列出了科研工作者在使用機(jī)器學(xué)習(xí)時(shí)可能遇到的一些陷阱和應(yīng)對(duì)思路。
機(jī)器學(xué)習(xí)正在推動(dòng)各個(gè)科學(xué)領(lǐng)域的研究進(jìn)展,其強(qiáng)大的模式發(fā)現(xiàn)和預(yù)測(cè)工具正在助力所有領(lǐng)域的科學(xué)家——從尋找合成分子到提升醫(yī)學(xué)診斷效果再到揭示基本粒子,可謂應(yīng)有盡有。
但是,機(jī)器學(xué)習(xí)工具也可能做出一些徒勞無功的探索——得到假陽性結(jié)果、不可行的方法和錯(cuò)誤結(jié)果。而且很多算法還過于復(fù)雜,以至于我們不可能檢查其所有參數(shù)或推斷其處理輸入的確切方式。隨著這些算法的應(yīng)用日益廣泛,理解錯(cuò)誤、得出錯(cuò)誤結(jié)論以及浪費(fèi)科研工作資源的風(fēng)險(xiǎn)將會(huì)急劇上升。
這些都不是新問題。機(jī)器學(xué)習(xí)領(lǐng)域幾十年來一直備受「坦克問題(tank problem)」之苦。最初的研究似乎出現(xiàn)在 1960 年代(據(jù)信參考文獻(xiàn) 1 是這一研究方向上最早的文獻(xiàn);這是軟件工程師 Jeff Kaufman 的功績(jī)),但被埋沒在了時(shí)間長(zhǎng)河里。這樣的故事總是層出不窮。
那時(shí)候,研究者編寫了一個(gè)用于識(shí)別軍方提供的照片中的坦克的算法。得到的模型成功地找到了測(cè)試圖像中的坦克,但卻無法成功識(shí)別之后的真實(shí)照片的坦克。原因?yàn)楹?這個(gè)故事已被復(fù)述太多次了,細(xì)節(jié)已經(jīng)無法考證——但其訓(xùn)練所用的圖片包含其它模式——出現(xiàn)在晨光之中或云朵之下的坦克。因此,驅(qū)動(dòng)這一算法的是類似這樣的其它因素,而不是坦克的存在本身。
類似的迷思帶來了今天的反省。很多機(jī)器學(xué)習(xí)論文都沒能完成足夠的實(shí)驗(yàn)集。用于評(píng)議的標(biāo)準(zhǔn)也不一致。而且現(xiàn)在競(jìng)爭(zhēng)很激烈,某些研究者在得到想要的答案后就抄近道、跳過檢查步驟。
我們無法預(yù)測(cè)每次分析中的所有難題,但至少,正將機(jī)器學(xué)習(xí)引入自己領(lǐng)域的研究者應(yīng)當(dāng)熟悉常見的陷阱以及用于檢測(cè)和避開這些陷阱的實(shí)踐方法。
本文將介紹谷歌 Accelerated Science 團(tuán)隊(duì)在使用機(jī)器學(xué)習(xí)分析時(shí)所面臨并解決了的三個(gè)問題,以說明展示這種做法。
三個(gè)問題
1. 不恰當(dāng)?shù)胤指顢?shù)據(jù)
在構(gòu)建模型時(shí),機(jī)器學(xué)習(xí)實(shí)踐者通常會(huì)將數(shù)據(jù)劃分為訓(xùn)練集和測(cè)試集。訓(xùn)練集用于模型學(xué)習(xí),測(cè)試集則用于評(píng)估模型在未知數(shù)據(jù)上的表現(xiàn)。研究者通常以隨機(jī)方式分割數(shù)據(jù),但現(xiàn)實(shí)生活中的數(shù)據(jù)很少是隨機(jī)的。它們可能包含隨時(shí)間變化的趨勢(shì)——比如數(shù)據(jù)收集方式的變化趨勢(shì)或所要收集信息的變化。
舉個(gè)例子,分子數(shù)據(jù)集中就埋藏著這樣的歷史模式,它在經(jīng)過機(jī)器學(xué)習(xí)算法的虛擬篩選后可用于發(fā)現(xiàn)候選藥物。這個(gè)問題的難點(diǎn)在于預(yù)測(cè)假想分子被人體吸收或減緩炎癥的效果。篩選是從有/無所需效果的分子的數(shù)據(jù)開始的,但數(shù)據(jù)的收集場(chǎng)景卻可能不同于機(jī)器學(xué)習(xí)模型的使用方式。
舉個(gè)例子,一個(gè)模型可能是基于一組公開可用的分子數(shù)據(jù)集構(gòu)建的,但卻被用在了一個(gè)不同的專有數(shù)據(jù)集上。并且當(dāng)化學(xué)家檢查到或丟棄了有潛在希望的線索時(shí),他們的研究重心往往會(huì)從特定的分子分組轉(zhuǎn)向其它分組。因此,研究者在實(shí)踐中往往高估模型的表現(xiàn)。這可能導(dǎo)致預(yù)期過高,從而在選擇不佳的分子上浪費(fèi)時(shí)間和資金。很多模型構(gòu)建者(包括我本人)都曾掉入過這個(gè)陷阱。
也就是說,你想要解答的問題應(yīng)當(dāng)會(huì)影響你分割數(shù)據(jù)的方式。為了使模型預(yù)測(cè)向一個(gè)在分子中分子中添加幾個(gè)原子的效果,測(cè)試集中的每個(gè)分子都應(yīng)在訓(xùn)練集中有僅有幾個(gè)原子不同的對(duì)應(yīng)分子。如果你希望很好地預(yù)測(cè)化學(xué)上不同的分子,那么測(cè)試集中的每個(gè)分子應(yīng)該任訓(xùn)練集中的任何分子。分割數(shù)據(jù)的「正確」做法可能并不顯而易見,但審慎考慮和嘗試多種方法能為你提供更多見解。
2. 隱變量
在一個(gè)理想的實(shí)驗(yàn)中,研究者只需要改變感興趣的變量,其他都是固定不變的。這種水平的變量控制在現(xiàn)實(shí)中往往是不可能實(shí)現(xiàn)的。設(shè)備的準(zhǔn)確性會(huì)隨著時(shí)間的推移而發(fā)生變化,試劑的批次也會(huì)發(fā)生變化,一種實(shí)驗(yàn)條件先于另一種執(zhí)行,實(shí)驗(yàn)結(jié)果甚至可能被天氣影響。這些不可控變量在機(jī)器學(xué)習(xí)模型中可能是有害的。
例如,我在谷歌的團(tuán)隊(duì)一直在與加州的一家核聚變創(chuàng)業(yè)公司 TAE Technologies 合作,致力于優(yōu)化生產(chǎn)高能等離子體的實(shí)驗(yàn)。我們建立模型,試圖了解等離子體機(jī)的最佳設(shè)備設(shè)置。機(jī)器中有數(shù)百個(gè)控制參數(shù),從什么時(shí)候給電極通電到在磁鐵上設(shè)置什么電壓。我們記錄了一系列測(cè)量結(jié)果,包括溫度和光譜。
加州的 TAE Technologies 和谷歌的研究者正使用機(jī)器學(xué)習(xí)優(yōu)化產(chǎn)生高能等離子體的設(shè)備。
在幾個(gè)月的時(shí)間里,我們從運(yùn)行數(shù)千次的等離子體機(jī)中獲取數(shù)據(jù)。設(shè)置會(huì)隨著設(shè)備的調(diào)整和修改、組件的磨損以及多個(gè)想法的付諸實(shí)踐而發(fā)生變化。我們最終得到了一個(gè)令人欣慰的模型,它能很好地預(yù)測(cè)在給定環(huán)境下,等離子體的能量是否會(huì)很高。但很快我們發(fā)現(xiàn),我們的預(yù)測(cè)和想法不一致。
當(dāng)再次訓(xùn)練模型的時(shí)候,我們將實(shí)驗(yàn)時(shí)間作為唯一的輸入,而沒有選擇所有的機(jī)器設(shè)置,我們獲得了類似的預(yù)測(cè)能力。為什么呢?我們認(rèn)為第一代模型鎖定在了時(shí)間趨勢(shì),而不是物理現(xiàn)象。隨著實(shí)驗(yàn)的推進(jìn),機(jī)器在一段時(shí)間內(nèi)運(yùn)行良好,而在另一段時(shí)間內(nèi)運(yùn)行不佳。所以,實(shí)驗(yàn)完成的時(shí)間會(huì)為你提供一些信息,以判斷生成的等離子體是否具有高能量。此外,實(shí)驗(yàn)的完成時(shí)間也可以通過控制參數(shù)的設(shè)置來進(jìn)行粗略地預(yù)測(cè)——這些參數(shù)的變化也存在時(shí)間趨勢(shì)。
隱變量也源于實(shí)驗(yàn)布局。例如,我們正與很多合作者共同解讀顯微圖像,包括紐約干細(xì)胞基金會(huì)研究所(New York Stem Cell Foundation Research Institute)。這些圖像包括滴定板上的生物實(shí)驗(yàn)陣列——通常是包含細(xì)胞和液體的網(wǎng)格。目的是發(fā)現(xiàn)具有某些特征的阱,如化療后細(xì)胞外觀的變化。但是,生物變異意味著每個(gè)滴定板常常看起來截然不同。同時(shí),單個(gè)滴定板也可能出現(xiàn)變化。例如,如果邊緣井中蒸發(fā)掉了更多液體或者滴定板出現(xiàn)了傾斜,則邊緣常常看起來與中心不同。
機(jī)器學(xué)習(xí)算法可以輕松地捕捉到這些無意的變化。例如,模型或許只是識(shí)別出了哪些阱位于滴定板的邊緣。檢查這種情況是否已經(jīng)發(fā)生的一種簡(jiǎn)單方式是令模型預(yù)測(cè)其他情況,如滴定板的位置、這是哪個(gè)滴定板以及圖像來自哪一批次。如果模型可以做到這一點(diǎn),則應(yīng)該對(duì)結(jié)果提出疑問。
經(jīng)驗(yàn)教訓(xùn):使用多個(gè)機(jī)器學(xué)習(xí)模型來檢測(cè)意料之外和隱藏的變量。一個(gè)模型集中于你關(guān)心的問題——等離子體高能耗還是低能耗;細(xì)胞健康還是處于病態(tài)?其他模型則排除這些混雜因子。如果后者的效果非常好,則對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,做進(jìn)一步的實(shí)驗(yàn)或調(diào)整結(jié)論。
3. 定錯(cuò)訓(xùn)練目標(biāo)
機(jī)器學(xué)習(xí)算法要求研究者指定一個(gè)「損失函數(shù)」,以確定各種誤差的嚴(yán)重程度。從業(yè)者傾向于使用一小組函數(shù),這組函數(shù)可能無法捕獲到他們真正關(guān)心的東西。
例如,我們利用深度學(xué)習(xí)來幫助求解偏微分方程。這些公式在各個(gè)領(lǐng)域都很常見,如流體力學(xué)、電磁學(xué)、材料科學(xué)等。通常,必須利用數(shù)值解法來求解問題,我們訓(xùn)練模型在有限的解中提供更高的準(zhǔn)確率。
我們從描述水波在一維中的傳播開始。算法的任務(wù)是反復(fù)預(yù)測(cè)當(dāng)前步驟的下一個(gè)時(shí)間步長(zhǎng)。我們?cè)趦蓚€(gè)存在細(xì)微差別的公式上訓(xùn)練模型。根據(jù)我們的損失函數(shù),兩個(gè)模型的表現(xiàn)旗鼓相當(dāng)。然而,雖然其中一個(gè)模型的結(jié)果接近預(yù)期,另一個(gè)模型卻產(chǎn)生了無意義的結(jié)果。
為什么會(huì)出現(xiàn)這種情況呢?原因在于,控制學(xué)習(xí)的損失函數(shù)只考慮了下一步的誤差,而沒有考慮多步求解的有效性,后者才是我們真正想要的。
我們?cè)跇?gòu)建糖尿病性視網(wǎng)膜病變篩查機(jī)器時(shí)也遇到了目標(biāo)不一致的情況。如果能及早地從眼底圖像中檢測(cè)出這種病變,患者就能得到有效的治療。在我們收集數(shù)據(jù)并讓眼科醫(yī)生基于圖像進(jìn)行診斷時(shí),我們令機(jī)器學(xué)習(xí)工具預(yù)測(cè)醫(yī)生接下來會(huì)說什么。這個(gè)時(shí)候就出現(xiàn)了兩個(gè)問題。
首先,眼科醫(yī)生們經(jīng)常在診斷時(shí)存在分歧。因此,我們意識(shí)到,我們的模型不能只有單一的預(yù)測(cè),也不能采用少數(shù)服從多數(shù)的策略,因?yàn)樵卺t(yī)療準(zhǔn)確度方面,有時(shí)候少數(shù)派的意見才是對(duì)的。
其次,單一疾病的診斷實(shí)際上并不是真正的目標(biāo)。醫(yī)療領(lǐng)域真正面臨的問題是:「這個(gè)病人是否需要看醫(yī)生?」因此,我們將目標(biāo)從單病種診斷擴(kuò)展到多病種。
糖尿病性視網(wǎng)膜病變篩查。
機(jī)器學(xué)習(xí)從業(yè)者很容易受限于一個(gè)「顯而易見」的目標(biāo),該目標(biāo)所需的數(shù)據(jù)和標(biāo)簽都很清楚。但是,他們?cè)O(shè)計(jì)的算法可能無法解決真正的問題。我們必須牢記整體目標(biāo),否則就會(huì)開發(fā)出不實(shí)用的精確系統(tǒng)。
如何解決這些問題?
第一點(diǎn),機(jī)器學(xué)習(xí)專家自身及其同事需要保持更高的標(biāo)準(zhǔn)。當(dāng)收到新的實(shí)驗(yàn)室設(shè)備時(shí),我們希望實(shí)驗(yàn)室伙伴可以了解它的功能、如何校正、如何檢測(cè)誤差以及設(shè)備的功能限制。機(jī)器學(xué)習(xí)也是如此,使用相關(guān)工具的人必須充分了解它們的功能。
第二點(diǎn),不同的學(xué)科需要在各自領(lǐng)域就如何執(zhí)行和衡量機(jī)器學(xué)習(xí)制定明確的標(biāo)準(zhǔn)。適當(dāng)?shù)目刂啤⒎€(wěn)定性檢查和誤差測(cè)量將因領(lǐng)域而異,并且需要清楚地闡明,這樣研究人員、評(píng)審者和編輯才可以鼓勵(lì)良好的行為。
第三點(diǎn),科學(xué)家在機(jī)器學(xué)習(xí)領(lǐng)域的教育內(nèi)容需要涵蓋這些更廣泛的問題。我們雖然可以參考現(xiàn)有的一些資源(如 Google AI),但依然需要做更多的事情。我們通常會(huì)教給學(xué)生算法和工具,但他們需要更多地學(xué)習(xí)如何應(yīng)用這些算法,并適當(dāng)?shù)靥岢鰡栴}。
我們正處在一個(gè)神奇的時(shí)代——在機(jī)器學(xué)習(xí)的幫助下,計(jì)算能力、數(shù)據(jù)和算法緊密結(jié)合,從而有更多的機(jī)會(huì)發(fā)現(xiàn)一些新事物。作為學(xué)術(shù)界的一份子,我們有責(zé)任確保自身能夠好好抓住并利用這些機(jī)會(huì)。
原文地址:https://www.nature.com/articles/d41586-019-02307-y
【本文是51CTO專欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)譯文,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】