天天看點

觀點 | 如何優雅地從四個方面加深對深度學習的了解

在今年的 ICML 上,深度學習理論成為最大的主題之一。會議第一天,Sanjeev Arora 就展開了關于深度學習理論了解的教程,并從四個方面分析了關于該領域的研究:非凸優化、超參數和泛化、深度的意義以及生成模型。

觀點 | 如何優雅地從四個方面加深對深度學習的了解

2017 年 12 月 NIPS 的 Test-of-Time Award 頒獎典禮上,Ali Rahimi 這樣呼籲人們加深對深度學習的了解:

我希望生活在這樣的一個世界,它的系統是建立在嚴謹可靠而且可證明的知識之上,而非煉金術。[……] 簡單的實驗和定理是幫助了解複雜大現象的基石。

Ali 的目标不是解散各個領域,而是「展開對話」。這個目标已經實作了,但對于目前的深度學習應被視為煉金術還是工程或科學,人們仍存在分歧。

7 個月後,在斯德哥爾摩舉行的國際機器學習會議 (ICML) 上,機器學習社群又聚焦了這個問題。此次大會與會者有 5000 多名,并累計發表論文 629 篇,這是基礎機器學習研究的「年度大戲」。而深度學習理論已成為此次會議的最大主題之一。

觀點 | 如何優雅地從四個方面加深對深度學習的了解

會議第一天,最大的房間裡就擠滿了機器學習相關人員,他們準備聆聽 Sanjeev Arora 關于深度學習理論了解的教程。這位普林斯頓大學計算機科學教授在演講中總結了目前的深度學習理論研究領域,并将其分成四類:

 ●  非凸優化:如何了解與深度神經網絡相關的高度非凸損失函數?為什麼随機梯度下降法會收斂?

 ●  超參數和泛化:在經典統計理論中,為什麼泛化依賴于參數的數量而非深度學習?存在其它較好的泛化方法嗎?

 ●  深度的意義:深度如何幫助神經網絡收斂?深度和泛化之間的聯系是什麼?

 ●  生成模型:為什麼生成對抗網絡(GAN)效果非常好?有什麼理論特性能使模型穩定或者避免模式崩潰?

在這一系列的文章中,我們将根據最新的論文(尤其是 ICML2018 的論文),幫助大家直覺了解這四個方面。

第一篇文章将重點讨論深度網絡的非凸優化問題。

非凸優化

觀點 | 如何優雅地從四個方面加深對深度學習的了解

我敢打賭,你們很多人都曾嘗試過訓練自己的「深度網絡」,結果卻因為無法讓它發揮作用而陷入自我懷疑。這不是你的錯。我認為都是梯度下降的錯。

Ali Rahimi 在 NIPS 演講中曾說,随機梯度下降 (SGD) 的确是深度學習的基石,它應該解決高度非凸優化問題。了解它何時起作用,以及為什麼起作用,是我們在深度學習的基本理論中一定會提出的最基本問題之一。具體來說,對于深度神經網絡的非凸優化研究可以分為兩個問題:

 ●  損失函數是什麼樣的?

 ●  SGD 為什麼收斂?

損失函數是什麼樣的?

如果讓你想象一個全局最小值,很可能你腦海中出現的第一幅圖是這樣的:

觀點 | 如何優雅地從四個方面加深對深度學習的了解

二維世界中的全局最小值附近,函數是嚴格凸的(這意味着 hessian 矩陣的兩個特征值都是正數)。但在一個有着數十億參數的世界裡,就像在深度學習中,全局最小值附近的方向都不平坦的可能性有多大?或者 hessian 中一個為零(或近似為零)的特征值都沒有的機率有多大?

Sanjeev Arora 在教程中寫的第一個評論是:損失函數的可能方向數量會随着次元的增長呈指數增長。

觀點 | 如何優雅地從四個方面加深對深度學習的了解

直覺上看,全局最小值似乎不是一個點而是一個連接配接管(connected manifold)。這意味着如果找到了全局最小值,你就能夠穿過一條平坦的路徑,在這條道路上,所有的點都是最小值。海德堡大學的一個研究團隊在論文《Essentially No Barriers in Neural Network Energy Landscape》中證明了這一點。他們提出了一個更正常的說法,即任何兩個全局最小值都可以通過一條平坦的路徑連接配接。

觀點 | 如何優雅地從四個方面加深對深度學習的了解

在 MNIST 上的 CNN 或在 PTB 上的 RNN 已經是這樣的情況,但是該項研究将這種認知擴充到了在更進階的資料集(CIFAR10 和 CIFAR100)上訓練的更大網絡(一些 DenseNet 和 ResNet)上。為了找到這條路徑,他們使用了一種來自分子統計力學的啟發式方法,叫做 AutoNEB。其思想是在兩個極小值之間建立一個初始路徑(例如線性),并在該路徑上設定中心點。然後疊代地調整中心點的位置,以最小化每個中心點的損失,并確定中心點之間的距離保持不變(通過用彈簧模組化中心點之間的空間)。

雖然他們沒有從理論上證明這個結果,但他們對為什麼存在這樣的路徑給出了一些直覺的解釋:

如果我們擾亂單個參數,比如添加一個小常數,然後讓其它部分去自适應這種變化,仍然可以使損失最小化。是以可以認為,通過微調,無數其它參數可以「彌補」強加在一個參數上的改變。

是以,本文的結果可以幫助我們通過超參數化和高維空間,以不同的方式看待極小值。

通俗來說,當考慮神經網絡的損失函數時,你應該牢記一個給定的點周圍可能有非常多的方向。由此得出另一個結論,鞍點肯定比局部最小值多得多:在給定的關鍵點上,在數十億個可能的方向中,很可能會找到一個向下的方向(如果不是在全局最小值上)。這種認知在 NIPS 2014 年發表的論文《Identifying and attacking the saddle point problem in high-dimensional non-convex optimization》中被嚴格規範化,并得到了實證證明。

為什麼 SGD 收斂(或不收斂)?

深度神經網絡優化的第二個重要問題與 SGD 的收斂性有關。雖然這種算法長期以來被看做是一種快速的近似版梯度下降,但我們現在可以證明 SGD 實際上收斂于更好、更一般的最小值。但我們能否将其規範化并定量地解釋 SGD 脫離局部極小值或鞍點的能力?

SGD 修改了損失函數

論文《An Alternative View: When Does SGD Escape Local Minima?》表明,實施 SGD 相當于在卷積(是以平滑)的損失函數上進行正常梯度下降。根據這一觀點并在某些假設下,他們證明了 SGD 将設法脫離局部最小值,并收斂到全局最小值附近的一個小區域。

SGD 由随機微分方程控制

連續 SGD 徹底改變了我對這個算法的看法。在 ICML 2018 關于非凸優化的研讨會上,Yoshua Bengio 在他關于随機梯度下降、平滑和泛化的演講中提出了這個想法。SGD 不是在損失函數上移動一個點,而是一片點雲或者說一個分布。

觀點 | 如何優雅地從四個方面加深對深度學習的了解

幻燈片摘自 Y. Bengio 在 ICML 2018 發表的演講。他提出用分布(或點雲)代替點來看待 SGD。

這個點雲的大小(即相關分布的方差)與 learning_rate / batch_size 因子成正比。Pratik Chaudhari 和 Stefano Soatto 在論文《Stochastic gradient descent performs variational inference, converges to limit cycles for deep networks》中證明了這一點。這個公式非常直覺:較低的 batch size 意味着梯度非常混亂(因為要在資料集一個非常小的子集上計算),高學習率意味着步驟混亂。

将 SGD 視為随時間變化的分布可以得出:控制下降的方程現在是随機偏微分方程。更準确地說,在某些假設下,論文表明控制方程實際上是一個 Fokker-Planck 方程。

觀點 | 如何優雅地從四個方面加深對深度學習的了解

幻燈片摘自 P. Chaudhari 和 S. Soatto 在 ICML 2018 發表的演講——《High-dimensional Geometry and Dynamics of Stochastic Gradient Descent for Deep Networks》。他們展示了如何從離散系統過渡到 Fokker-Plank 方程所描述的連續系統。

在統計實體學中,這種類型的方程描述了暴露在曳力 (使分布推移,即改變平均值) 和随機力 (使分布擴散,即增加方差) 下的粒子的演化。在 SGD 中,曳力由真實梯度模組化,而随機力則對應算法的内在噪聲。正如上面的幻燈片所示,擴散項與溫度項 T = 1 /β= learning_rate /(2 * batch_size) 成正比,這再次顯示了該比值的重要性!

觀點 | 如何優雅地從四個方面加深對深度學習的了解

Fokker-Planck 方程下分布的演化。它向左漂移,随時間擴散。圖源:維基百科

通過這個架構,Chaudhari 和 Soatto 證明了我們的分布将單調地收斂于某個穩定的分布(從 KL 散度的意義來說):

觀點 | 如何優雅地從四個方面加深對深度學習的了解

Pratik Chaudhari 和 Stefano Soatto 論文的一個主要定理,證明了分布的單調會收斂到穩定狀态(在 KL 散度意義中)。第二個方程表明,使 F 最小化相當于最小化某個潛在的ϕ以及擴大熵的分布(溫度 1 /β控制的權衡)。

在上面的定理中有幾個有趣的觀點:

 ●  SGD 最小化的函數可以寫成兩項之和(Eq. 11):潛在Φ和熵的分布。溫度 1 /β控制這兩項的權衡。

 ●  潛在Φ隻取決于資料和網絡的架構(而非優化過程)。如果它等于損失函數,SGD 将收斂到全局最小值。然而, 本文表明這種情況比較少見。而如果知道Φ與損失函數的距離,你将可以知道 SGD 收斂的機率。

 ●  最終分布的熵取決于 learning_rate/batch_size(溫度)的比例。直覺上看,熵與分布的大小有關,而高溫會導緻分布具有更大的方差,這意味着一個平坦的極小值。平坦極小值的泛化能力更好,這與高學習率和低 batch size 能得到更優最小值的經驗是一緻的。

是以,将 SGD 看作是一個随時間變化的分布表明,在收斂性和泛化方面,learning_rate/batch_size 比每個獨立的超參數更有意義。此外,它還引入了與收斂相關的網絡潛力,為架構搜尋提供了一個很好的度量。

結論

探索深度學習理論的過程可以分為兩部分:首先,通過簡單的模型和實驗,建立起關于深度學習理論如何及其為什麼起作用的認知,然後将這些理念以數學形式呈現,以幫助我們解釋目前的結論并得到新的結果。

在第一篇文章中,我們試圖傳達更多關于神經網絡高維損失函數和 SGD 解說的直覺認知,同時表明新的形式主義正在建立,目的是建立一個關于深層神經網絡優化的真正數學理論。

然而,雖然非凸優化是深度學習的基石并且擁有大量的層數和參數,但它取得的成功大部分源于其優秀的泛化能力。這将是下一篇文章将分享的内容。

觀點 | 如何優雅地從四個方面加深對深度學習的了解

Sanjeev Arora:印度裔美國理論計算機科學家,他以研究機率可檢驗證明,尤其是PCP定理而聞名。研究興趣包括計算複雜度理論、計算随機性、機率可檢驗證明等。他于2018年2月被推選為美國國家科學院院士,目前是普林斯頓大學計算機科學系教授。

原文釋出時間為:2018-09-20

本文來自雲栖社群合作夥伴“

CDA資料分析師

”,了解相關資訊可以關注“

”。

繼續閱讀