能夠復現的好論文,需要具備哪些特質?

  • 2020 年 5 月 22 日
  • AI

對於每一名研究者來說,復現論文是理解一篇論文的必經之路,然而也是最令人頭疼的環節。什麼樣的論文可以被複現?什麼樣的論文無法被複現?這實際上也是一個科學問題。在 NeurIPS 2019 上,元科學研究者 Edward Raff 對此進行了深入分析,揭開了論文可復現性的神秘面紗。我們下面來一探究竟:

300 多年以來,同行評審一直是科學研究的必要環節。但是,即使在引入同行評審機制之前,復現性也是科學方法的重要組成部分。

公元 800 年,Jabir Ibn 展示了第一批可復現實驗。在過去的幾十年中,許多領域都出現了引起大家關注的不可復現實驗結果。美國心理學會一直在努力解決作者無法提供實驗數據的問題(//psycnet.apa.org/doi/10.1037/0003-066X.61.7.726)。2011 年的一項研究發現,僅有 6% 的醫學研究可以被完全復現。2016 年,一項針對來自多個學科的研究人員的調查發現,大多數研究人員未能復現他們之前的論文。

現在,在人工智慧和機器學習領域,我們也聽到了一些關於「可復現性危機」的警告。

我們不禁要問:這是真的嗎?這似乎很難以置信,因為機器學習技術已經滲透到了所有智慧設備中,並對影響著我們的日常生活。從告訴我們如何通過電子郵件表現得禮貌的實用小提示,到 Elon Musk 承諾明年面世的自動駕駛汽車,這一切都似乎在向我們證明:機器學習確實是可復現的。

最新的機器學習研究的可復現性如何?我們是否可以開始量化分析影響其可復現性的因素?這個問題促使我撰寫了論文《A Step Toward Quantifying Independently Reproducible Machine Learning Research》(//arxiv.org/abs/1909.06674),論文現已在 NeurIPS 2019 上發表。

本著「刨根問底」的原則,在過去的八年中,我嘗試從頭開始實現各種機器學習演算法。最終,w完成了機器學習程式庫「JSAT」(//github.com/EdwardRaff/JSAT)。我對於可復現機器學習的研究也託管在了 Mendeley(//www.mendeley.com/)和 Github 上的個人筆記和記錄中。

有了這些數據,我情不自禁地開始量化分析並驗證可復現性!不久之後,我認識到自己未來將從事「元科學」研究,旨在研究科學本身。

一、什麼是可復現機器學習?       

圖中戴眼鏡的人並沒有直接遵循論文中的描述://abstrusegoose.com/588

在我們深入討論之前,很有必要先定義什麼是所謂的「可復現性」。

理想情況下,完全的可復現性意味著閱讀一篇科學論文就應該能直接讓你掌握完成以下 3 個步驟所需的所有資訊:(1)設置相同的實驗;(2)遵循相同的方法;(3)獲得類似的實驗結果。

 如果我們可以完全基於論文中提供的資訊從上面的步驟 (1)一直完成到步驟(3),我們就將這種性質成為「獨立可復現性」。在本例中,因為我們可以獨立得出相同的實驗結果(完全獨立於原始論文的工作),所以我們的實驗結果是可復現的。

但是,正如上面漫畫中的人物告訴我們的那樣,直接遵循論文中的內容並不總是足以復現實驗結果。如果我們不能僅僅利用論文中的資訊(或者根據論文引用的之前的工作)從步驟(1)一直完成到步驟(3),我們將認為論文不是「獨立可復現的」。

有些人可能會感到疑惑:為什麼要將「可復現性」和「獨立可復現性」區分開來?

幾乎所有人工智慧和機器學習領域的研究都是以電腦程式碼為基礎的。我們並不需要昂貴的勞動密集型的化學合成,不需要等待細菌在培養皿中長成,也不需要麻煩的人體實驗。我們僅僅只需要從作者那裡獲取程式碼,在相同的數據上運行這些程式碼, 並得到相同的實驗結果!

              

如果你以前從沒有閱讀過研究人員的程式碼,那你會少死很多腦細胞。

我們並不喜歡找論文作者要程式碼並使用它們,這不僅僅是因為害怕使用沒有描述文檔的研究級程式碼。

Chris Drummond 將使用作者的程式碼的方法描述為「可復用性」,並提出了一個非常鮮明的論點:即我們非常需要論文能夠被複現,但這對於好的科學工作來說,這仍然是不夠的。一篇論文應該是具體工作的科學升華,它代表了我們所學到的和現在所理解的東西,從而使新的實驗結果得以出現。如果我們不能在沒有作者程式碼的情況下復現論文的結果,這可能表明論文本身並沒有成功地囊括重要的科學貢獻。在這之後,我們才會考慮程式碼中可能存在的錯誤,或者程式碼和論文之間可能存在的不一致的地方。

去年 ICML 上發表的論文《Unreproducible Research is Reproducible》(//proceedings.mlr.press/v97/bouthillier19a/bouthillier19a.pdf)指出,即使我們可以復現論文的實驗結果,但如果我們稍微改變一下實驗設置也可能會得到非常不同結果。

出於這些原因,我們不想考慮作者的程式碼,因為這可能帶來偏見。我們希望專註於可復現性的問題,而不是陷入復現論文的泥潭。

二、影響機器學習論文可復現性的重要因素

有些特性與可復現性無關,但我發現這些特性卻最有趣。

我回顧了到 2017 年為止,我試圖實現的每一篇論文,並且基於兩個準則對這些論文進行了篩選:(1)這種嘗試實現論文的工作是否會因為看過發布的源程式碼而帶有偏見;(2)與作者是否有私人關係。

對於每篇論文,我儘可能多地記錄資訊,以創建一套可以量化的特徵。有一些特徵是完全客觀的(論文中有多少個作者),而另一些特徵則非常主觀(論文看起來是否令人驚訝?)這項分析的目的是獲得儘可能多的資訊,這些資訊可能會影響論文的可復現性。

為了做到這一點,我需要嘗試復現 255 篇論文,最終我成功復現了其中的 162 篇。每篇論文都被提煉成了一個由 26 個特徵組成的集合,然後我對其進行統計檢驗從而確定哪些特徵是重要的。在上面的表格中,我列出了我認為最有趣的、最重要的實驗結果,以及我最初的反應。

有些結果不足為奇。例如,作者的數量對於論文的可復現性不應該特別重要,它們之間沒有顯著的關係。

我們可以通過調整超參數來改變演算法的表現,但是演算法本身並不會學習超參數。必須由人類設置超參數的值(或者想出一個明智的辦法來選擇該值)。

我們發現,一篇論文是否詳細描述了用到的超參數是非常重要的(我們更可以憑直覺想到原因)。如果你不向讀者說明超參數的設置,讀者必須自己猜測。這需要付出大量的工作、時間,並且很容易出錯!因此,我們的一些研究成果已經證實了研究社區為了使論文更具有可復現性而在追求的理念。

而更重要的是,我們現在可以量化說明為什麼這些是值得我們追求的。其它的發現也遵循基本的邏輯,比如可讀性強的論文更容易被複現,這可能是由於它們更易於理解。

想更深入的探討這一問題的讀者可以閱讀論文原文,並且論文中還有一些我認為非常有趣的附帶的實驗結果:要麼是因為它們挑戰了我們所「了解」的關於一篇好論文的設想,要麼是它們產生了一些驚人的結論。所有這些結果都非常微妙,在本文中無法對它們進行詳細解釋。

而本文提出以下這些發現是為了激發大家對此進行更加深入的研究,並且回答存在的問題。

發現 1:論文每一頁中的公式越少,論文的可復現性就越高。

              

數學對於審稿人來說就是「貓薄荷」!讓他們不能自已! //xkcd.com/982/

這似乎是因為最具可讀性的論文使用的公式往往最少。我們經常看到論文出於各種各樣的原因,列舉出了許多的公式和導數。然而謹慎而合理地使用公式,似乎會讓觀點更易讀。這主要是因為作者可以有選擇性地使用數學進行更有效的交流。

這一結論與論文發表的激勵機制有所衝突。我曾經不止一次地遇到審稿人要求我在論文中加入更多的數學論證,這也許是數學本身就能讓論文更具有科學性或更客觀。儘管令論文更規範似乎更好,但是它並不等同於可復現性。這是研究社區需要解決的文化問題。

發現 2:實證論文可能比面向理論的論文更容易復現

關於社區中哪些地方以及需要在多大程度上實現規範化,機器學習社區記憶體在大量的爭論。現在遵循的指導思想是:作為一個社區,我們關注的重點應該是針對給定的對比基準,獲得最好的實驗結果。

然而,在對對比基準進行優化的過程中,我們會有失去對實際發生的事情以及這些方法為什麼有效的理解的風險。通過理論分析和形式證明並不能嚴格解釋術語所表達的所有內涵。

人們普遍認為詳細的數學證明可以確保對給定的方法有更好的理解,但有趣的是,實際上更好的數學描述並不一定能讓研究工作更容易被複現。需要指出的是,將理論和實證研究相結合的論文與僅僅包含實證研究的論文總體上的可復現率是相近的。從可復現性的角度來看,傾向於做實證研究是有益的,但也有可能由於產生了不正當的激勵效果或意想不到的副作用,而阻礙研究的進展(//openreview.net/pdf?id=rJWF0Fywf)。

發現 3:共享程式碼並不是靈丹妙藥

我們的討論已經涉及到了這樣一個觀點:通過作者發布的程式碼進行復現與獨立復現並不是一回事。

我們能夠區分出這種差別嗎?我的研究表明,將程式碼開源充其量只是可復現性的一個較弱的指標。隨著學術會議開始越來越鼓勵將程式碼提交和程式碼檢查作為評審過程的一部分,我相信弄清楚這一點是很關鍵的。

作為一個研究社區,我們需要了解我們這樣做的目的是什麼,我們實際上在完成什麼工作。如果我們被強制要求提交程式碼以及向審稿人提供評價這些程式碼的指南,我們應該仔細思考和考慮上述二者的區別。

從其他人的反應來看,我發現上述研究結果尤為值得注意。當我在 NeurIPS 上展示論文時,現場許多人對此進行了評論。

其中一半的人認為發布程式碼與可復現性是相關的,另一半人則認為二者之間顯然無關。這些旗幟鮮明的觀點形成了強烈的對比,這也正是我之所以進行這項研究的最佳示例。在我們真正坐下來對這些觀點進行評估時,我們其實並不知道誰對誰錯。

發現 4:論文中有沒有詳細的偽程式碼對可復現性沒有影響

       

步驟式偽程式碼,它非常簡潔,但需要論文中其它部分的上下文對其進行解釋。

標準偽程式碼:相對詳細,基本上是自包含的,通常是數學符號

類似實際程式碼的偽程式碼:幾乎都是自包含的,很容易轉換為真實程式碼。

這項發現挑戰了我之前對於構成一篇好論文的組成部分的設想,但當我對這個結論進行思考時,我發現這越來越有意義。

在論文中的某個地方,我們必須描述工作的過程。作為一名受過訓練的電腦科學家,我總是偏愛所謂「偽程式碼」的描述方式。但是偽程式碼可以採用許多不同的形式。

我把論文分為四類:沒有偽程式碼、有步驟式偽程式碼、有標準偽程式碼、有類似實際程式碼的偽程式碼。我匯總這四類中被廣泛復現的具有代表性的論文,我這項研究中也使用了其中一部分論文。

當我看到「標準偽程式碼」和「類似實際程式碼的偽程式碼」具有大致相同的可復現率時,我震驚了。我驚訝地發現,沒有一種偽程式碼有很好的效果。

然而,邏輯清晰、有說服力的寫作對於交流工作流程還是很有效的。不那麼有效的是所謂的「步驟式偽程式碼」,這種偽程式碼列舉出了一些步驟的條目,每一個步驟都與論文中的另一節有關,然而這種步驟式偽程式碼實際上會讓讀者對論文的閱讀理解更加困難,因為讀者必須在不同的章節之間來來回回地切換,而不是沿著統一的順序流閱讀。

發現 5:給出簡化的示例問題似乎對可復現性沒有幫助

這是另一個令人驚訝的發現,我仍然在研究它。

我一直很欣賞那些能夠將複雜的思想深入淺出地濃縮成更簡單易懂的形式的作者。我也很欣賞那些給出了「遊戲問題」(toy problem)的論文。「遊戲問題」通過一種很容易可視化並進行實驗的方式舉例說明了某些性質。

從主觀上說,我總是發現簡化的示例對於理解論文想要實現的是什麼,是很有幫助的。在創建一個可以用於調試的的較小測試用例時,復現這種「遊戲問題」是一種非常有用的手段。

但是從客觀的角度來看,簡化示例似乎並不能使論文更具有可復現性。事實上,它們甚至不能使論文更具可讀性!我仍然很難理解並解釋這個結果。

這就是為什麼對於研究社區來說,量化這些問題是很重要的。如果我們不做這些量化的工作,我們就永遠不會知道我們所需要做的,就是處理與手頭的研究問題最相關的問題。

發現 6:請查收你的電子郵件

最後,我想討論的發現是:回答問題對於論文的可復現性有巨大的影響。這個結果是意料之中的,因為並不是所有論文都對他們的方法進行了完美的描述。

我們給 50 個不同的作者發了電子郵件,詢問如何復現它們的實驗結果。在我沒有收到回復的 24 個案例中,我僅僅復現了其中一篇論文的實驗結果(成功率約為 4%)。

對於剩下的 26 篇論文,作者給予了回復,我得以成功復現了其中的 22 篇論文(成功率約為 85%)。我認為這樣的實驗結果是很有趣的,因為它對論文發表的過程提出了挑戰。

如果我們允許已發表的論文隨著時間的推移被不斷更新,而不是成為某種「新」的論文,將會怎樣?

通過這種方式,作者可以在原始論文中將各種普遍存在的回饋和問題考慮進去。將論文刊登在 arXiv 上的機制已經讓這種做法成為了可能,而在會議上發表的論文也應該如此。這些做法可以通過提升可復現性潛在地推動科學的發展,但前提是我們要落實它們。

三、我們獲得了哪些啟示?

       
     專家將其稱之為「超參數調優」。 //xkcd.com/1838/

這項工作受到了《人工智慧正面臨可復現性危機》一文的啟發。這種說法是炒作嗎?還是它確實指出了人工智慧領域的系統性問題?在完成這項工作之後,我傾向於該領域仍然存在改進空間的觀點。

但是,人工智慧和機器學習領域的科學家在這方面做的比其它領域的科學家要好。人工智慧領域 62% 的復現成功率要高於其它科學領域的元分析中的復現成功率,實際上我認為 62% 的成功率比實際還要低一些。其他那些對我專業領域之外的研究領域更為熟悉的人,也許能夠在我失敗的案例上取得成功。因此,我認為 62% 的估計是一個下限。

我想說清楚的一點是:前文給出的所有實驗結果都不應該被看做對於什麼是可復現的,或者什麼是不可復現的明確聲明。有大量潛在的偏見可能會影響這些結果。最顯而易見的是,這 255 次對於可復現性的嘗試都是同一個人完成的。元分析師們之間對於內部一致性並沒有社區統一的標準。

我認為容易復現的工作對於別人來說可能就很難,反之亦然。例如,我不能復現基於貝葉斯或公平性的論文,但我不相信這些領域的工作是完全不可復現的。我個人在背景、教育、資源、興趣等方面的偏見,可能都與最終獲得的實驗結果密不可分。

也就是說,我認為這項工作為我們的研究社區當前面臨的一系列挑戰提供了強有力的證據,同時驗證了社區中目前有許多關於可復現性的研究工作。最大的因素是,我們不能把所有關於所謂的可復現機器學習的假設都當真。這些假設需要被檢驗,我希望這項工作能夠激勵其它人開始量化和收集這些數據。

在元科學研究社區中,我們人工智慧研究者處於很特殊的位置,我們復現的成本要比其它任何科學領域都要低得多。我們從這項研究中獲得的啟示,其帶來的影響可能會超出人工智慧和機器學習的範疇,延伸到電腦科學的其它領域。

最重要的是,我認為這項工作強調了評估科學研究的可復現性到底有多難。孤立地考慮每個特性是實現這類分析的一種相當簡單的方法。這種分析已經給出了一系列潛在的發現、意想不到的結果以及複雜度。

然而,它並沒有開始基於作者考慮論文之間的相關性,並將數據表徵為一個圖,或者甚至只是分析一下當前特徵之間的非線性相互作用!這就是我試圖將大部分數據公開,以便其他人能夠進行更深入分析的原因。

數據公開地址://github.com/EdwardRaff/Quantifying-Independently-Reproducible-ML   

最後,有人向我指出,我這項研究本身可能就是有史以來最不可復現的機器學習研究。但實際上,它引出了一系列關於我們如何進行元科學研究的問題,研究了我們該如何實現和評估我們的研究。

因此,如果讀者想要了解更多的細節和討論,請參閱論文《A Step Toward Quantifying Independently Reproducible Machine Learning Research》,論文地址://arxiv.org/abs/1909.06674

試想一下,你自己的工作是如何融入人類知識和科學的宏偉藍圖中的呢?隨著人工智慧和機器學習研究不斷取得新的進展,我們利用這些工作並從中學習的能力,也將高度依賴於我們將越來越多的知識提煉成易於理解的形式的能力。

與此同時,我們的工作流程和系統必須產生不會誤導我們的可復現工作。期待大家加入元科學研究領域!

via //thegradient.pub/independently-reproducible-machine-learning/  雷鋒網雷鋒網雷鋒網