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