優化|要理解深度學習,必須突破常規視角去理解優化

2021-02-21 運籌OR帷幄
普林斯頓計算機科學教授 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 /動力系統/拉格朗日的技巧,可能會更好地理解跡。

相關焦點

  • 要理解深度學習,必須突破常規視角去理解優化
    選自offconvex.org作者:Sanjeev Arora機器之心編譯參與:韓放、shooting普林斯頓計算機科學教授 Sanjeev Arora 認為,常規的優化觀點只關注目標的價值和收斂的速度,而這對於日益重要的深度學習來說是遠遠不夠的
  • 優化 | 從Mirror Descent的視角統一強化學習中的策略優化
    介紹一種求解強化學習問題的散度增廣策略優化算(Divergence-augmented Policy Optimization (DAPO))。DAPO主要是為了解決強化學習中policy optimization採樣效率低的問題,具體是解決在使用異策略數據和非線性函數(DNN)近似時優化過程十分不穩定的問題。
  • 深度 | 從修正Adam到理解泛化:概覽2017年深度學習優化算法的最新研究進展
    ,他主要從Adam算法的局限性與提升方法、學習率衰減方案、超參數搜索、怎樣學習優化和理解泛化性能等角度向我們展示近來研究者對最優化方法的思考與探索。近年來人們提出了多種優化算法,使用不同的方程更新模型的參數。Adam(Kingma and Ba, 2015)[18] 在 2015 年被提出,可以認為其在今天仍然是最常用的算法。因此從機器學習從業者的角度看來,深度學習最好的優化算法開發近年來基本沒有太大的突破。然而,今年我們開發了好幾種新的方法被,它們有望優於當前最佳的方法,並用於未來複雜模型的優化中。
  • 直播 | Circle Loss:從對相似性優化的統一視角進行深度特徵學習
    本期 PW Live,我們邀請到曠視科技上海研究院算法研究員程昌茂,為大家帶來Circle Loss:從對相似性優化的統一視角進行深度特徵學習的主題分享。深度特徵學習一直受到學術界的廣泛關注,眾多的損失函數被提出用於學習好的特徵表示。例如,用於分類學習的 softmax cross entropy loss 及其變種 AM-Softmax(CosFace)、ArcFace 等,用於樣本對距離優化的 contrastive loss 和 triplet loss 等。
  • 從算子角度理解優化方法
    來自 | 知乎   作者 | 鄧康康地址 | https://zhuanlan.zhihu.com/p/150605754編輯 | 深度學習這件小事公眾號本文僅作學術交流,如有侵權,請聯繫後臺刪除在求解一個優化問題時,我們可以採用不同的優化方法,而這些方法又可以從不同角度去理解。
  • 新手必須要懂的PHP學習路線以及10個PHP優化技巧
    看開源的框架源碼(這步請注意找一些比較小巧的開源框架如 CI,Slim ),增強對 MVC 的理解    更加深入的系統的學習(MySQL Linux C 語言 javascript html css redis 等)最緊要實戰:(2周)3個站(至少20個美工頁面)psd to html 切制練習。
  • 深度 | BatchNorm是如何在深度學習優化過程中發揮作用的?
    但目前人們對於它是如何在優化過程中起作用的還沒有達成共識。MIT的研究人員從優化過程中對應空間的平滑性這一角度為我們帶來的全新的視角。BatchNorm可以實現深度神經網絡更快更穩定的訓練,到目前為止,無論是在學術研究中(超過4,000次引用)還是實際應用配置中,它在大多數深度學習模型中都默認使用。儘管BatchNorm目前被廣泛採用,但究竟是什麼原因導致了它這麼有效,尚不明確。實際上,現在也有一些工作提供了BatchNorm的替代方法,但它們似乎沒有讓我們更好地深入理解該問題。
  • 如何優化深度學習模型
    我是否應該使用它:如果瑣碎的並行化和簡單性是最重要的,那就去吧。但是,如果你願意花費時間和精力,那麼通過使用貝葉斯優化,你的模型效果將大大提升。貝葉斯優化與我們迄今為止看到的其他方法不同,貝葉斯優化使用了算法的先前迭代的知識。使用網格搜索和隨機搜索,每個超參數猜測都是獨立的。
  • 【通俗理解】凸優化
    今天介紹一點凸優化方面的知識~內容可能有點無聊,看懂了這篇文章,會對求極值和收斂有進一步理解,比如:了解為什麼向量機(SVM)等的推導中,求極值時可以把約束條件加在目標函數後面來變成一個無約束的優化問題。理解EM算法(聚類,GMM等)為什麼收斂。之前文章有介紹過,一個算法有效至少要滿足兩個條件:1)極值存在,2)收斂。
  • 優化 | 優化理論能給深度學習帶來怎樣的革命?
    [2]:Lifted Proximal Operator Machines把DNN的訓練(多凸深層嵌套函數的優化)轉換為帶約束的優化問題(解嵌套了更好分析,可以用更高效的方式優化),把約束條件加入到loss作為懲罰項,去逼近原來的解。這裡希望各路大神發表下觀點~~~,優化理論究竟會怎樣幫助到深度學習呢?
  • 觀點| 如何優雅地從四個方面加深對深度學習的理解
    會議第一天,Sanjeev Arora 就展開了關於深度學習理論理解的教程,並從四個方面分析了關於該領域的研究:非凸優化、超參數和泛化、深度的意義以及生成模型。會議第一天,最大的房間裡就擠滿了機器學習相關人員,他們準備聆聽 Sanjeev Arora 關於深度學習理論理解的教程。
  • 如何從系統層面優化深度學習計算?
    然而,深度學習對於計算能力有著很大的依賴,除了改變模型和算法,是否可以從系統的層面來優化深度學習計算,進而改善計算資源的使用效率?本文中,來自微軟亞洲研究院異構計算組資深研究員伍鳴與大家分享他對深度學習計算優化的一些看法。深度學習在近幾年裡取得了巨大的進步,它已經或者是有望成功地被應用在我們許多生活場景中,比如自動駕駛、安防、翻譯、醫療等等。
  • 為什麼說強化學習是針對優化數據的監督學習?
    其中,諸如REINFORCE等通過計算不可微目標期望函數的梯度進行優化的算法被歸類為優化視角,而時序差分學習(TD-Learning)或Q-Learning等則是動態規劃類算法。雖然這些方法在近年來取得了很大的成功,但依然不能很好地遷移到新任務上。相較於這些強化學習方法,深度監督學習能夠很好的在不同任務之間進行遷移學習,因此我們不禁問:是否能將監督學習方法用在強化學習任務上?
  • 深度學習筆記 | 第3講:深度學習優化算法之從SGD到Adam
    又到了每周一狗熊會的深度學習時間了。在上一期中,小編和大家介紹了機器學習和深度學習中的核心任務以及神經網絡的正則化方法和dropout方法來防止過擬合。本期將借著第一期推送小編關於模型與算法的討論的引子,和大家深入探討機器學習和深度學習的數學本質,並在此基礎上重點介紹深度學習中常用的優化算法。
  • 凸優化(C)——FW方法的分析與應用,鏡面下降方法,深度學習與運籌中的優化簡介
    要說明這一點需要用一些泛函的知識,但我儘量用通俗的語言去說,不涉及泛函內的專屬名詞。深度學習中的優化器是什麼?介紹完這些內容之後,很多人自然會對優化的最為廣泛的應用——深度學習(deep learning)感興趣。
  • 優化實施策略 開啟深度學習
    作者:江蘇大學教師教育學院 史楠、陳權  開啟深度學習之旅,無疑是為區域遊戲中幼兒的全面發展注入了「強心劑」。一次區域遊戲就是一次深度學習,而深度學習是一種動態的、過程性的學習,追求的不單是停留在表層的學習結果,更多的是激發幼兒更進一步的學習動機。
  • 優化一日活動 支持幼兒學習
    為了優化幼兒一日生活、進一步轉變教師兒童觀、深化課程改革的生命力,2021年1月8日,我園特邀浙江省特級教師、正高級教師楊蓉老師進行《優化一日活動、支持幼兒學習》專題講座。楊老師從教師角色的轉變、教師對幼兒的學習支持、課程中再審視和重構兒童觀三方面,結合她所在的幼兒園課程變革經驗,為我們梳理課程改革中老師可以改進的方向。
  • 乾貨 | 支付寶如何優化移動端深度學習引擎?(含代碼)
    考慮到移動端資源的限制,深度學習引擎的落地面臨著性能、機型覆蓋、SDK尺寸、內存使用、模型尺寸等多個方面的嚴峻挑戰。本文介紹如何從模型壓縮和引擎實現兩個方面的聯合優化,應對上述挑戰,最終實現技術落地,希望對大家有所啟發。
  • 什麼是深度學習? - 45分鐘理解深度神經網絡和深度學習
    由於筆者的主要研究領域為計算機圖形學,而非人工智慧領域,因此本文僅僅為筆者從外行的角度對基於DNN的深度學習的粗淺理解,而非人工智慧領域對DNN和深度學習的權威解釋。因而,筆者對其中的有些內容的理解是有限的,甚至是有誤的。如有不當之處,還請讀者指正!
  • 深度學習最常用的學習算法:Adam優化算法
    聽說你了解深度學習最常用的學習算法:Adam優化算法?-深度學習世界。深度學習常常需要大量的時間和機算資源進行訓練,這也是困擾深度學習算法開發的重大原因。雖然我們可以採用分布式並行訓練加速模型的學習,但所需的計算資源並沒有絲毫減少。而唯有需要資源更少、令模型收斂更快的最優化算法,才能從根本上加速機器的學習速度和效果,Adam 算法正為此而生!