要理解深度學習,必須突破常規視角去理解優化
https://www.toutiao.com/a6706015751297303054/
選自offconvex.org
作者:Sanjeev Arora
機器之心編譯
參與:韓放、shooting
普林斯頓電腦科學教授 Sanjeev Arora 認為,常規的優化觀點只關注目標的價值和收斂的速度,而這對於日益重要的深度學習來說是遠遠不夠的。深度學習演算法有一些重要的特性並不總是反映在目標值中。所以,要加深對深度學習的理解,還得超越常規視角。
深度學習時代,機器學習通常歸結為首先為手頭的學習任務定義合適的目標/成本函式,然後使用梯度下降的某種變體(通過反向傳播實現)來優化這個函式。
難怪每年有數以百計的機器學習論文貢獻給優化的不同領域。但我認為,如果你的目標是對深度學習進行數學理解的話,那麼從常規視角去理解優化明顯是不夠的。
優化的常規視角:儘快找到目標最小可能值的解決方案。
先驗上來說,並不確定是否所有的學習都要優化一個目標。大腦中的學習是否也如此是神經科學中一個長期存在的開放性問題。大腦的組成部分似乎已經通過各種進化事件被重新利用/拼湊在一起,整個組合可能或不可以歸結為目標的優化。詳情見 Marblestone 等人的研究《Towards an integration of deep learning and neuroscience》。
我認為,深度學習演算法也有一些重要的特性並不總是反映在目標值中。目前的深度網路是非常過度引數化的,因此有多個最優值。它們被訓練到目標幾乎為零(即接近最優),如果由此發現的最優(或接近最優)模型在未見過/保留的資料上也表現良好(即泛化效果好),則認為該訓練是成功的。這裡的問題是,目標的值可能和泛化並不相關(見《Understanding deep learning requires rethinking generalization》)。
當然,專家們現在會問:「泛化理論不正是因為這個原因而被髮明為機器學習的「第二條腿」,而優化是「第一條腿」嗎?」比如說,這個理論展示瞭如何給訓練目標新增正則化器,以確保解決方案的泛化性。或者,即使在迴歸等簡單任務中,早停(即在達到最佳值之前停止)或者甚至給梯度新增噪聲(例如,通過調整批量大小和學習速率)都比完美優化更可取。
然而在實踐中,即使是在具有隨機標籤的資料上,顯式正則化器和噪聲技巧都無法阻止深度網路達到較低的訓練目標。當前的泛化理論旨在對特定模型的泛化原因進行後驗解釋。但它不知道如何獲得解決方案,因此除了建議一些正則化方法之外,不能提供什麼優化方法。(我在之前的部落格裡解釋了描述性方法和規定性方法之間的區別,且泛化理論主要是描述性的。)主要的謎團在於:
即使是普通的梯度下降也能很好地找到具有合理泛化效能的模型。此外,加快梯度下降的方法(例如加速或自適應正則化)有時會導致更差的泛化。
換句話說,梯度下降天生就擅長尋找具有良好泛化效能的解決方案。沿著梯度下降的軌跡,我們會看到「魔法」的痕跡,而這魔法在目標值中是捕捉不到的。這讓我們想起了那句古老的諺語:
過程比結果更重要。
我將通過在兩個簡單但具有啟發性的任務中進行梯度下降分析來說明這一觀點。
使用無限寬的深度網路進行計算
由於過度引數化似乎不會對深度網路造成太大的傷害,研究人員想知道引數到達無窮大這一極限會發生什麼:使用固定的訓練集(如 CIFAR10)來訓練經典的深度網路架構,如 AlexNet 或 VGG19。
這些網路的寬度(即卷積濾波器中的通道數)和全連線內部層中的節點數允許引數增加到無窮大。注意,不管網路有多大,初始化(使用足夠小的高斯權重)和訓練對於任何有限的寬度來說都是有意義的。我們假設輸出損失為 L2。
可以理解的是,這樣的問題似乎是無望和無意義的:世界上所有的計算加起來都不足以訓練一個無限的網路,而我們的理論家們已經在忙著尋找有限的網路了。
但有時在數學/物理學中,人們可以通過研究極限情況來洞察其中的問題。在這裡,我們在有限的資料集(如 CIFAR10)上訓練一個無限的網路,最優值的數目是無窮大的,而我們試圖理解梯度下降的作用。
多虧了最近關於過度引數化深度網路可證明學習的論文中的見解(其中一些關鍵論文:《Learning and Generalization in Overparameterized Neural Networks, Going Beyond Two Layers》、《A Convergence Theory for Deep Learning via Over-Parameterization》、《Gradient Descent Finds Global Minima of Deep Neural Networks》和《Stochastic Gradient Descent Optimizes Over-parameterized Deep ReLU Networks》),研究人員已經認識到出現了一個很好的限制結構:
當寬度→∞時,對於一個核迴歸問題,軌跡接近梯度下降的軌跡,其中(固定)核是所謂的神經切線核心(NTK)。(對於卷積網路,核心是卷積的 NTK 或 CNTK。)
核心由 Jacot 等人鑑定並命名,同時也隱含在一些上述關於過度引數化網路的論文中,例如《Gradient Descent Provably Optimizes Over-parameterized Neural Networks》。
這個固定核心的定義在隨機初始化時使用了無限網路。對於兩個輸入 x_i 和 x_j,核心內積 K(x_i,x_j) 是輸出相對於輸入的梯度∇x 的內積,分別在 x = x_i 和 x = x_j 處求值。隨著網路大小增加到無窮大,可以發現該核心內積收斂到極限值。
我們與 Simon Du 等人的新論文《On Exact Computation with an Infinitely Wide Neural Net》表明,通過動態規劃可以有效地計算 CNTK,這讓我們得以為任何期望輸入有效計算訓練網路的結果,即使直接訓練無限網路是不可行的。
另外:請不要將這些新結果與一些早期論文混淆,後者將無限網路視為核心或高斯過程,因為它們僅訓練網路頂層,將較低層凍結並且隨機初始化。
根據經驗,我們發現這個無限網路(相對於 NTK 的核心迴歸)在 CIFAR10 上產生的效能比任何先前已知的核心都要好,當然,不包括那些通過影象資料訓練手動調整或設計的核心。例如,我們可以計算與 10 層卷積網路(CNN)相對應的核心,並在 CIFAR10 上獲得 77.4%的成功率。
求解矩陣完備化的深度矩陣分解
由推薦系統的設計推動,矩陣完備化已經經過了十多年的充分研究:給定未知矩陣的 K 個隨機條目,我們希望恢復未知的條目。
解決方案通常不是唯一的。但是如果未知矩陣是低秩或近似低秩並且滿足一些額外的技術假設(例如不相干),那麼各種演算法可以近似甚至精確地恢復未知的條目。
基於核/跡範數最小化的著名演算法如下:找到適合所有已知觀察並具有最小核範數的矩陣(注意,核範數是秩的凸鬆弛)。也可以將此作為常規視角所要求的形式的單個目標改寫如下,其中 S 是已知條目的索引的子集,λ是乘數:
如果你不瞭解核範數,你會喜歡 Gunasekar 等人(2017)提出的有趣建議:先把核範數懲罰項丟到一邊。嘗試通過基於損失的第一項來簡單地訓練(通過簡單的梯度下降/反向傳播)具有兩層的線性網路來恢復缺失的條目。
這個線性網路只是兩個 n×n 矩陣的乘積,所以我們得到以下公式,其中 e_i 是所有為 0 的條目的向量:
「資料」現在對應於索引 (i,j)∈S,並且訓練損失捕獲端到端模型 M_2M_1 與已知條目的擬合程度。由於 S 是在所有條目中隨機選擇的,因此如果在預測剩餘條目方面做得很好就意味著「泛化」良好。
根據經驗,通過深度學習來完成矩陣完備化工作(即,通過梯度下降來解決 M_1,M_2,並完全忘記確保低秩)和經典演算法一樣效果,因此有了以下猜想,如果這是真的則意味著在這種情況下,核範數捕獲可以精確捕獲梯度下降的隱式正則化效應。
猜想:當使用深度為 2 的線性網路解決上述矩陣完備化時,所獲得的解恰好是通過核範數最小化方法獲得的解。
但正如你可能已經猜到的那樣,這太簡單了。在與 Nadav Cohen 等人的新論文中,我們報告了新的實驗,表明上述猜想是錯誤的。
更有趣的是,我們發現,如果通過進一步將層數從 2 增加到 3 甚至更高來過度引數化問題(我們將這稱之為深度矩陣分解),這種解決矩陣完備化的效果甚至比核範數最小化更好。
請注意,我們正在使用略小於核範數演算法精確恢復矩陣所需的值 S。在這種資料貧乏的設定中,歸納偏差最為重要!
我們通過分析梯度下降的軌跡以及它的偏置如何強烈偏向於尋找低秩的解決方案,提供了對深度 N 網路改進效能的部分分析,這種偏置比簡單的核範數更強。
此外,我們的分析表明,這種對低秩的偏置不能被核範數或端到端矩陣的任何明顯的 Schatten 準範數所捕獲。
注意:我們發現,著名的深度學習加速方法 Adam 在這裡也加快了優化速度,但略微損失了泛化。這與我上面所說的關於傳統觀點不足以捕捉泛化的內容有關。
結論
雖然上述設定很簡單,但這些表明,要理解深度學習,我們必須超越傳統的優化觀點,後者只關注目標的價值和收斂的速度。
- 不同的優化策略如 GD、SGD、Adam、AdaGrad 等,會導致不同的學習演算法。它們引發不同的跡,這可能導致具有不同泛化特性的解。
- 我們需要開發一個新的詞彙(和數學)來推理跡。這超出了靜止點、梯度範數、Hessian 範數、平滑度等通常的「景觀檢視」。注意:跡取決於初始化!
- 如果在大學裡學到一些關於 ODE / PDE /動力系統/拉格朗日的技巧,可能會更好地理解跡。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2648607/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深度學習入門必須理解這25個概念深度學習
- 學習 Laravel 必須理解的知識點Laravel
- 深入理解深度學習深度學習
- 讓 PM 全面理解深度學習深度學習
- 理解Transformer [資料探勘深度學習]ORM深度學習
- 學習web前端,必須要掌握的CSS原理Web前端CSS
- 簡要理解CommonJS規範JS
- 深度學習 Caffe 初始化流程理解(資料流建立)深度學習
- 深度學習 Caffe 初始化流程理解(資料流建立)深度學習
- 學習flutter必備之原理理解Flutter
- 如何優雅地從四個方面加深對深度學習的理解深度學習
- jvm優化理解JVM優化
- CVPR 2020 Oral | 曠視研究院提出Circle Loss,統一最佳化視角,革新深度特徵學習正規化特徵
- 深度學習 SSD的理解和細節分析深度學習
- Flutter必須理解Widget、Element、RenderObject的關係(二)FlutterObject
- 理解索引:索引優化索引優化
- 學習Python之前,必須要搞定這三件事情!Python
- 用三張圖理解深度學習的工作原理深度學習
- 深度學習 Caffe 記憶體管理機制理解深度學習記憶體
- LeCun:深度學習在訊號理解中的強大和侷限(視訊+PPT)LeCun深度學習
- 理解去中心化 穩定幣 DAI中心化AI
- 前端學習,除了掌握學習路線之外,必須要注意的知識要點!前端
- 你必須懂的前端效能優化前端優化
- SEO優化華文章實質要何如去優化?優化
- 要點提煉| 理解JVM之執行緒安全&鎖優化JVM執行緒優化
- 要點提煉| 理解JVM之程式編譯&程式碼優化JVM編譯優化
- 深度學習課程--assign3--RNN簡單理解深度學習RNN
- 華熙集團“此時此刻”給你突破常規的時空視角體驗
- 理解大型分散式網站你必須知道這些概念分散式網站
- 深度學習 - 常用優化演算法深度學習優化演算法
- 深度學習運算元優化-FFT深度學習優化FFT
- 深度學習中的優化方法(二)深度學習優化
- 深度學習中的優化方法(一)深度學習優化
- 理解 React Hooks 心智模型:必須按順序、不能在條件語句中呼叫的規則ReactHook模型
- 從檔案下載視角來理解Web APIWebAPI
- 學習Linux必須掌握的命令!Linux
- 深度學習(視覺化卷積核)深度學習視覺化卷積
- 如何理解深度學習領域中的端到端 (end to end)深度學習