ICLR 2017會議於法國土倫召開,我們收到了截止日期內提交的論文,與預期的關於深度學習新研究的涓涓細流不同,我們迎來了一場凶猛的洪水。這是一個研究領域的寶庫,每時每刻都有新的文章發表。許多論文都對如今最前沿的技術做出了進一步的完善。我本希望能夠找到一些更基本的關於深度學習本質的理論和實驗成果,但是很遺憾的是,這樣的論文寥寥無幾。儘管如此,仍有兩個研究令人眼前一亮,此外,還有一篇論文值得關注,我曾一度懷疑這篇論文,但最終還是接受了它那難以置信的結果。這確實是一個好訊息,但也是一個不好的開始。
首先,讓我們來討論下好訊息。這個難以置信的發現是,你可以訓練一個神經網路,讓它學會如何學習(即元學習)。具體來說,已經有一些研究團隊訓練出了能夠執行隨機梯度下降(SGD)的神經網路。不僅這些研究團隊可以證明他們的神經網路能夠學習SGD,而且這種網路的效果比任何人工除錯的方法都要好。這兩篇發表的文章分別是《Deep Reinforcement Learning for Accelerating the Convergence Rate》和《Optimization as a Model for Few-Shot Learning》。可惜的是,在這之前,這兩個研究團隊被Deep Mind搶先一步,其論文《Learning to Learn by gradient descent by gradient descent》介紹了這種做法。後兩篇論文均訓練了一個長短期記憶網路(LSTM),而第一篇論文則通過強化學習的方式進行訓練。我本以為實現元學習需要更久的一段時間,但它的發展之快超出了我的預期。
另外兩個團隊也不甘示弱,實現了能夠設計新型深度學習網路的機器,而且通過這種方式,我們可以改進現有的技術。這是在學習如何設計神經網路。兩篇發表的論文分別是《Designing Neural Network Architectures using Reinforcement Learning》和《Neural Architecture Search with Reinforcement Learning》。前一篇論文使用了強化Q學習演算法來發現卷積神經網路架構。你可以在Caffe中找到一些他們生成的卷積神經網路。而後一篇論文才是真正令人震驚的(沒有Google的計算資源,你根本做不到這一點)。他們不僅展示了最新的卷積神經網路,而且這種機器實際上學習了一些LSTM節點的變種。由機器建立的LSTM節點如下所示(左圖和下圖):
所以,不僅手工優化梯度下降方法的研究人員失業了,那些依靠設計神經網路來謀生的人們也難逃一劫!實際上這僅僅是能夠自學習的深度學習系統的開始。所以,在這裡我要分享一幅施米德胡貝的漫畫,它恰當地描述了正在發生的事情。
這絕對是令人震驚的,而且我們對深度學習演算法能發展得多快一無所知。這種元特性允許你將其應用至自身,遞迴地建立出越來越優秀的系統。
現在,請允許我告訴你那個壞訊息。這裡有一篇論文傳達了這個訊息:《Understanding Deep Learning required Rethinking Generalization》。我對泛化思考了很多,也在Quora上提了一些關於泛化和隨機性的問題,希望有人可以分享一下他們對此的見解。然而,直到上述論文的作者進行了一系列有趣的實驗之前,沒有人給出一份令我滿意的答案或理解這個問題的重要性。以下是他們論文中的一部分發現:
1.神經網路的有效容量是足夠大的,甚至足夠使用暴力記憶的方式記錄整個資料集。
2.即便使用隨機標籤,進行優化仍然是很容易的。實際上,與使用真實標籤進行訓練相比,隨機標籤的訓練時間僅僅增長了一個小的常數因子。
3.標籤隨機化僅僅是一種資料轉換,學習問題的其他性質仍保持不變。
那個令人震驚的真相顯現出來了。深度學習網路僅僅是大規模的關聯記憶儲存。深度學習網路即使在擬合隨機資料時,仍能保持良好的泛化能力。這確實很奇怪,許多支撐神經網路有效性的依據都建立在這樣一個猜想之上:“自然”資料往往存在於多維空間中一個非常窄的流形中。然而,隨機資料並不具備這樣的趨勢。
在今年早些時候,John Hopcroft寫了一篇論文,檢驗神經網路與關聯記憶間的二元性。下面是他論文中的一幅插圖:
《Understanding Deep Learning required Rethinking Generalization》這篇論文甚至進一步檢驗了我們行之有效且久經考驗的泛化工具(即正則化),並發現:
顯式正則化或許能提高泛化效能,但這既不必要也不足以控制泛化誤差。
換句話說,我們所有的正則化工具可能並沒有我們想象中那麼有效!而且,更難以置信的是,SGD那不可思議的效果,實際上只是另一種碰巧有效的正則化方法!
參照線性模型,我們分析了SGD如何進行隱式的正則化。
事實上,另一個團隊在提交至ICLR2017的名為《An Empirical Analysis of Deep Network Loss Surfaces》的論文中,確認了這些網路的區域性極小值是不同的:
我們的實驗表明,不同的最優化方法會找到不同的極小值,即使在訓練過程中非常靠後的階段,從一種方法切換至另一種方法,也同樣如此。此外,我們發現,不同最優化方法找到的極小值具有不同的形狀,但這些極小值在最重要的度量——泛化精度上是相似的。
這表明,你對學習演算法的選擇“操縱”著演算法如何得出最終結果。隨機性是無所不在的,無論你如何規範自己的網路或者使用何種SGD變種演算法,網路都會趨近於收斂(如果你設定了正確的隨機條件)!SGD的什麼性質使機器具備了學習的能力?是同分化關聯的屬性還是其他更一般的屬性?如果我們可以讓一個網路學會執行SGD,那麼我們能夠教會它執行這種未知的廣義學習方法嗎?
實際上,在今年早些時候論文《A Powerful Generative Model Using Random Weights for the Deep Image Representation》證明了這種隨機性的有效性。這篇論文也是由John Hopcroft合著,表明你可以使用隨機初始化的未經任何訓練的網路生成逼真的影像。這怎麼可能呢?
因此,要理解深度學習,我們必須擁抱隨機性。隨機性起源於最大熵,而最大熵最有趣的是它的自身結構!神經網路的儲存容量似乎最接近於隨機權重。這裡很奇怪的是,宇宙中隨機性無處不在。熵值更大的方向反映了時間流向。那麼,如果這個性質也是學習機器的基礎,那又會發生什麼呢?
文章原標題《Deep Learning: The Unreasonable Effectiveness of Randomness》,作者:Carlos E. Perez
本文由阿里云云棲社群組織翻譯。