如何在深度學習中運用科學的方法論

碼頭工人 8年前發布 | 16K 次閱讀 深度學習

原文   http://www.almosthuman.cn/2015/12/24/rwgfg/

盡管深度學習能完成很多事情,但它到底是如何工作的,我們并不清楚。劍橋大學機器學習博士Yarin Gal提出,將研究自然科學的方法論用到深度學習中,或許可以解決這個問題。來看看他的心得吧!

我工作的領域是應用機器學習(尤其是深度學習),是一個獨一無二的領域。它融合了工程、數學、神經科學、甚至是社會學。我們研發工具,試圖解釋這個世界,推測它并改變。自然與社會科學常會利用這些工具去嘗試解釋觀察到的現象,但是許多我們研發的工具(特別是在深度學習)究竟是如何工作的,我們的理解非常有限……這一點困擾了我許久。在最近的NIPS會議上,我與任何愿意傾聽的人討論。我想到了一個非常美好的方法。我們可以抽取自然科學中的方法論,再返回到機器學習領域去再一次理解它。這樣的科學觀有完全改變它的潛力。

如何在深度學習中運用科學的方法論
鉆木取火:用經驗和實驗來制造火

讓我們以一個例子開始。在現代深度學習中,大多數結論來自于不同工具的實踐實驗。它們常會帶來新的發現與更好的工具,但需要付出代價——盡管我們研發了這些工具,但我們經常不理解它們。你可以聯想一下鉆木取火用到的兩根棍子。火可以用來烘烤食物,并用來追逐獵物。我們得到火的工具是通過一系列的試錯獲得的。我們可以不同的木頭,不同形狀的工具去獲得「更熱」的火(例如在MNIST手寫數字數據庫中得到更高的精確度)。但是最終,我們的實驗還是因世界的復雜性而受到局限,我們仍然不知道為什么兩根木棍摩擦會產生火,為什么火是燙的。我們需要限定方向,并追隨某些實驗方法論。

如何在深度學習中運用科學的方法論
發展理論之后,制造出來的火焰

當我們用機器學習作為工具時,我們經常會遵循科學的方法論(例如,用深度學習來尋找希格斯波色子)。但是我們并不在領域內使用它。將科學的方法論應用到機器學習中,我們可以開始理解它們為什么起作用——并且以此來超越該領域內太過常見的隱喻式解釋。用這種知識,我們可以設計出更好的工具,打破現有的局限。跟隨有原則的方法,我們可以改進現有工具,提升結果。總而言之,可以從用火追逐獵物到用火將我們送上太空。

深度學習的科學方法

我們要怎樣將科學的方法論運用到深度學習中呢?我們可以先找出那些運轉良好、但原因不明的經驗工具。后面我們會講到一些具體的例子。我們提出假說,試圖用它來解釋這些工具運行良好的原因。接著我們提出可檢驗的預測,盡力證實或證偽不同的想法。這些都需要實驗,并且常帶來新工具。在新的結果上再次使用之前提出的假說,繼續循環,就能讓我們對世界的理解越來越好。

自然科學使用的科學方法論的例子。在深度學習的案例中,我們應該去尋找那些像自然現象一樣運轉良好但無法解釋的工具

然而,我們領域的獨特之處在于,一個人在一天之內就能進行整個循環!在大部分科學中,實驗階段通常需要專業技能和設備。例如,物理學分為理論物理學與應用物理學兩個分支,每一個都需要數年的訓練。然而在我們的研究中,我們的重點是數據,理論和實驗都是虛擬的。只需一個人就能想出對觀測現象的理論論證,進行預測,設計出實驗并進行驗證。這是該領域的賜福,也是一個詛咒。一方面,理解理論和實驗這兩個方面都非常重要。但另一方面,完善實驗需要優秀的工程專家,研發好的理論則需要全面了解數學工具。而在這兩個領域都成為專家可不太容易。

真實的例子

丟棄法(Dropout)是一種用于訓練深度神經網絡的正規化方法。我們觀察到,丟棄法在避免過擬合與提升模型表現上非常出色。它為何如此有效?我們提出了一個理論解釋(基于貝葉斯概率論),我們也用這它來獲得深度學習的不確定估測。因此,我們跟隨理論做出了基本預測:我們希望某個程序的輸出能夠與模型的不確定性相一致。接著,我們用幾個實驗測試了預測。更近期關于卷積神經網絡(CNN)的成果允許我們更進一步去測試理論。例如,該理論提出,新的貝葉斯CNN構建的模型能提升最先進的圖像分類結構。這正證明了,對工具的理論理解能夠帶來更新與更好的工具。最近還有很多其他的例子也佐證了這一點。

如何在深度學習中運用科學的方法論
科學

證偽

在應用機器學習領域,我們有許多試圖解釋不同現象的假說。然而,科學方法中一個主要的部分(也是上面那個循環圖中的關鍵成分)迄今都被忽視了,那就是證偽。從基本上說,就是從一個不成立的理論中去尋找預測,迫使我們重新思考并改進理論。證偽并不必然等同于尋找負面的結果。負面的結果也能通過試錯的方法獲得。例如,最近觀察到批歸一化(batch normalisation)在某些網絡結構中的失敗。但是,這個觀察結果之后,我們沒有假說可以修改或拒絕。證偽的過程以找出理論的預測開始,接著,設計一個可能得到相反結果的實驗,嘗試以此來駁斥這個預測。

互動實驗

讓我們舉個例子吧!這個例子中,丟棄法的經驗方法是失敗的。遞歸神經網絡(RNN)是可以捕捉次序的模型。這些強大的模型組成了語言處理任務的關鍵部分,但也能迅速過擬合。但是我們不知道如何在RNN中應用丟棄法。許多經驗方法的成功次數十分有限(我數了,至少有5個)。

運用上面所說的理論,正確的方法相對直接一些:在所有的時間步驟里使用相同的掩碼。初步的測試也證明了這一點。我決定以最近的一些論文進行試驗:《 A Theoretically Grounded Application of Dropout in Recurrent Neural Networks》。論文給出了在RNN中運用丟棄法進行數學應用的理論基礎,但實驗評估十分有限。

下面,互動開始了。你的任務就是去頭腦風暴一下那些你覺得會證實或證偽上面這些說法的實驗。

如果你有任何結果,歡迎去右邊網址留言討論:http://mlg.eng.cam.ac.uk/yarin/blog_5058.html

來自 cam ,作者Yarin Gal(劍橋大學機器學習博士),機器之心編譯出品。參與:Chen Xiaoqing,汪汪。

 本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!