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