
本文是陶默雷 Molei Tao 和王雨晴 Yuqing Wang 的一篇博客的中文版。
©PaperWeekly 原創 ·作者 |孔令凱、陶默雷
1.1 梯度下降法
在機器學習中,人們經常使用一階優化器(1st-order optimizer)來訓練模型。一階優化器是指只利用一階導數的迭代優化算法,其中最著名的是梯度下降法(Gradient descent, GD)。儘管從 GD 衍生出來了一系列強大的算法,這篇文章我們着重討論 GD(雖然它的很多結論都可以推廣到其他的算法里去)。GD 算法的迭代是:

其中 是學習率(learning rate, LR. 數值計算的領域也稱之為步長 stepsize)1.2 傳統的學習率選擇
很多時候,在機器學習和優化的領域,人們會分析具有光滑性(smoothness)的目標函數。在機器學習和優化方向的術語裡,一個函數 被稱為 -smooth是說 是全局 -利普希茨(Lipschitz)連續的。這是一個很強的假設(例如,在這種定義下, 是 2-smooth 的,但 就不是 smooth 的)。雖然有些時候是這個條件可以放寬的(例如,我們可以做局部 smooth 的假設,或者利用定義域有界的性質),但是首先,讓我們來看看在 -smooth 假設下,能得到什麼結論。定理:給定一個 -smooth 的函數 ,並且已知 的極小值 存在,那麼當學習率滿足 時,GD 收斂到一個駐點(stationary point)。

這個定理告訴我們,學習率 是一個有很好性質的區間。有意思的是,這個學習率的範圍還可以劃分成兩個部分。就像下面的動畫在目標函數 上面展示的,當 時,x 的軌跡是近似於單調且連續變化的,但是更大的學習率會導致一個不連續的,震盪的軌跡(僅僅 是震盪的, 仍然是單調下降的)。



1.3 這個簡單學習率區間的最簡單部分,以及此時GD和梯度流的關係
熟悉數值分析的朋友們或許可以很快的意識到, GD 可以看作由梯度流(gradient flow)的常微分方程(ODE)。
用顯示歐拉法離散得到的。顯然,在連續時間極限(h 無限小)的時候,x 是連續變化的。有興趣的朋友可以試試,如何用經典數值分析的方法來得到上一節提到的 這個條件。這種學習率使 GD 很接近梯度流,因此我們稱之為小學習率(small LR)。然而,隨着 增大,GD 偏離梯度流越來越多。顯然,GD 在 的時候和梯度流的表現相去甚遠。
2.2 後向誤差分析(修正方程)
梯度流只反映了 GD 在 足夠小的時候的表現,但是常微分方程也可以幫助我們理解更大 的效應。考慮到梯度流是 GD 的無窮小學習率的極限,如何理解不是無窮小的 的情況呢?答案是,我們可以在原來的 上面添加 的項來修正 不為 0 的帶來的影響,就像泰勒展開一樣。數值分析中這種技術被稱為「後向誤差分析」,被修正過的 ODE 被稱為修正方程(modified equation)。這個美妙的想法至少可以追溯到 [Wilkinson (1960)],經典的教科書 [Hairer, Lubich and Wanner (2006)] 則提供了非常棒的綜述。
現在我們用修正方程來分析一下 GD。對梯度流做 的一階修正會給出:
這是 GD 在 意義下的近似(0 階修正方程就是 )。可以看到,一階修正方程依然是一個梯度流, 也因此被稱為(一階)修正勢能。2.3 討論
一階修正方程 是很有用的。例如它可以用修正過的的目標函數來刻畫由 GD 的離散化帶來的隱式偏差(implicit bias,有時也被稱為隱式正則化 implicit regularization)。今年已經是 2022 年了,機器學習社區也還在不斷發現其在機器學習方面的應用。然而,方法本身並不是新的。事實上,獲得 的表達式並不困難,僅僅通過匹配 GD 的迭代表達式和 的泰勒展開就可以得到。然而這種「推導」僅僅是形式上的,甚至讓人錯誤地認為修正方程對於任意大的 都好使。然而,(關於 的)冪級數存在收斂半徑,同樣,拓展到 ODE 後的冪級數也會有收斂性的問題。一篇漂亮的論文 [Li, Tai and E (2019)] 超越了形式上匹配級數的非嚴格方法,嚴格刻畫了在 足夠小的時候一階修正方程的誤差。它所需的條件也更弱(SGD),而 GD 則是此文中的一個特例。其他一些較早的文獻也已經給出了 GD 情況的表達式。例如(儘管這不是他們論文的重點),[Kong and Tao (2020)] 提供了 的表達式,並定量討論了什麼情況下,(或者是任意高階的修正勢能 )是不夠的。儘管 可以在 更大的時候比 更好地逼近 GD。但它並沒有解決所有的問題。這種方法在太大時也會失效。既然在 大時,一階修正方程不夠好,那麼高階的修正方程會更好嗎?在大多數情況下,答案是否定的,甚至如果太大了,修正方程的階數越高,逼近效果反而越差。這可以通過下圖來說明,其中 LR 分別為 1)接近於 0 的小學習率,此時梯度流很好地近似 GD;2)中等但仍然 ,此時儘管梯度流不是 GD 很好的近似,但修正方程可以很好地近似 GD;3)更大,處於 區間,此時修正方程也不再有效;4)真正的大學習率,,此時 GD 在簡單的目標函數 上發散。



需要注意的是,儘管一些文獻使用修正方程來研究 「大」 學習率,但在這篇博客中,我們仍將這種 LR 稱為中等大小的學習率。原因是,當 LR 進一步增大時,修正方程會完全失效,但 GD 可能仍能找到有效的極小值,並且此時會有很多非平凡且有趣的效應:這些效應經常是對深度學習有益的!下面是一些例子。
不收斂
人們的直覺或許是,LR 太大會導致 GD「爆炸」(即迭代得到發散的序列)。這種現象的確存在。如下圖在 上的例子說明, 對於二次函數,當 時 GD 就會「爆炸」。


但是,對於更複雜的目標函數 , GD 不一定會在大學習率下爆炸。更奇妙的是, 即使是在 GD 收斂的情況下, GD 也不總是收斂到一個點! 我們可以將 GD 迭代視為離散時間的動力系統。而動力系統可以有各種類型的吸引子(attractor),一些最常見的吸引子是不動點、周期軌道和奇異吸引子(沒錯,正是混沌,或者嚴格的說,很多情況下是混沌)。而他們都可以由 GD 產生!下圖是一個 GD 收斂到周期性軌道的例子,它來自於一個簡化版的矩陣分解問題。其中 (註:儘管看起來簡單,這個函數既不 -smooth,也不是凸的)。並且,它的 GD 迭代存在不同的周期,而圖片中的 GD 迭代都不收斂到極小點。
時 GD 至少可以收斂到周期分別為 2, 3 and 4 的軌道,不同的軌道取決於不同的初始條件。圖片中藍線是周期性軌道,紅線是所有滿足 的極小點。這些圖片來自 [Wang et al (2022)](儘管這不是那篇文章的重點)。更多內容將在下下節中討論。現在讓我們看一個 GD 收斂到混沌吸引子的例子(著名的洛倫茲蝴蝶是另一個混沌吸引子的例子)。

這些圖片來自 [Kong and Tao (2020)]。下面是更詳細的解釋:上面的勢能有很多個 spurious 局部極小點。令人驚訝的是,就像動畫表現的那樣,GD 可以跳出這些局部極小點。
這背後的原因是大學習率!事實上,如果應用了小學習率,就像梯度流一樣,GD 只會收斂到一個接近於初值的局部極小點。
人們最近開始賞識大學習率的這種效應,有趣的實驗結果不斷出現。一個主要的原因是,深度學習社區對於跳出局部極小點很感興趣,因為這能提高訓練的精度。跳出局部極小點,最流行的的方法是利用隨機梯度帶來的噪音。而大學習率提供一個截然不同的方式,即使梯度的完全確定性的,也依然有效。[Kong and Tao (2020)] 已經提供了嚴格的定量分析,主要想法如下:
給定目標函數 ,假設可以將其分解為 ,其中 是宏觀趨勢, 而 表示微觀細節,例如下圖展示的一維函數:


直觀來說,如果車開得很快,就感覺不到路上的小坑坑窪窪了。同樣,當 LR 變得足夠大時,GD 就不再能夠解析 中的微觀細節。那麼,多大是「足夠大」呢?用 表示微觀尺度(與宏觀尺度相對)並假設 是 -smooth 的,那麼 (由二階導數得出),這意味着傳統的小 LR 是 。因此,如果 獨立於 ,那麼我們有 , 此時學習率就是足夠大的。在這種模型下,[Kong and Tao (2020)] 嚴格證明了在確定性的GD 算法中, 微觀部分的梯度()導致的效果很像是額外加上了噪音。事實上,使用來自動力系統、概率論和泛函分析的工具,此文在合理的假設下證明了 GD 迭代實際上收斂到一個混沌吸引子,因此 GD 給出的結果收斂到一個非常接近於 的概率分布。熟悉統計力學的讀者知道這就是著名的吉布斯分布(Gibbs distribution)。值得注意的是,這種 GD 的極限分布僅取決於目標函數的宏觀部分(),而微觀細節 由於大 LR()的使用而消失了!這一定量結果還表明,得到較小的 值(這也意味着較小的 值)的概率(顯著)的更高。通俗來說,這意味着 GD 將更頻繁地訪問它們。通常情況下這是人們想要的(因為較小的訓練損失很可能意味着更小的測試誤差),因此,這是大學習率的一大好處。在這種意義上,儘管 GD 沒有隨機性或小批量梯度(minibatch),但是大學習率的 GD 的行為 SGD 與 SGD 非常相似。它提供了另一種跳出極小值的方法!
更多細節可以在 [Kong and Tao (2020)] 中找到,但讓我們再最後摘錄一個文中的討論:現實問題中的目標函數,是否也存在這種多尺度結構?此文中同時包含了理論和實驗的討論。例如,如果訓練數據是多尺度的,那麼對於一個(非線性的)回歸任務,理論上來說,神經網絡的損失函數有可能繼承這個多尺度結構!下面是小型前饋網絡用 GD 訓練時一個權重的變化:
可以看到它不收斂到一個點,而是「一堆點」,這實際上是混沌吸引子,也可以用概率分布來定量化的描述。
總結 [Kong & Tao (2020)] 表明,在大學習率的幫助下,GD 可以避開局部極小值並指數地傾向更小的局部極小值。這是因為,由於大 LR 產生的混沌動力學, GD不再是僅僅優化目標函數, 而是對概率分布進行採樣。3.3 大學習率導致的隱式偏差(implicit bias):偏好更平坦的極小值現在讓我們回到 GD 收斂到一個點的簡單情況。這種簡單的情況比看上去有趣得多。這裡我們只討論一件事:嚴格證明大學習率偏好更平坦的局部極小值。但首先, 這件事有什麼意義呢?
流行猜想1: 更平坦的極小點可以更好地泛化。有許多工作支持這種猜測,但有趣的是,也有許多工作支持截然相反的結果。在這裡我們不準備提出任何新的觀點,而只是希望大家同意找到更平坦的局部極小值這件事有意義。
流行猜想2: 大學習率有助於找到更平坦的極小點。儘管這個猜想最近才出現,但正迅速受到關注。目前已經有相關的實驗結果,還出現了半理論的分析,例如一些基於一階修正勢能 中的 修正項的工作(關於修正勢能,請見上文「後向誤差分析, 又稱修正方程」部分)。[Wang et al (2022)] 則研究了真正的大的學習率,而不是修正方程能夠研究的中等學習率。在這種情況下,GD 對於平坦極小值的偏好更加明顯。對於一類目標函數,此文為流行猜想2提供了嚴格的證明。更具體地說, 考慮一類矩陣分解問題。它可以看作優化問題:
即試圖為 的矩陣 找一個秩 的近似。這個問題本身就是一個重要的數據科學問題,但對於那些對深度學習感興趣的人來說,它與 2 層線性神經網絡的訓練也幾乎是一樣的。這裡的目標函數 很有趣。例如,1)極小點是不孤立且不可數的。事實上,如果 是一個極小點,那麼對於任何常數標量 , 也是極小點。作者將此屬性稱為同質性(homogenity),即使加了某些非線性激活函數(例如 ,其中 是 ReLU 或 leaky-ReLU),這種現象也會存在。2)每個局部極小點都是一個全局極小點。然而,這些極小點中有些是平的,有些是尖的。事實上,這可以通過在 的極小點處計算 Hessian 矩陣的特徵值來判斷。一旦大家完成這個計算,不難證明 意味着極小點周圍局部是平的,否則就是尖的。所以 和 是否相近非常的重要,作者稱此為均衡性(balancing)。事實上,除了對深度學習潛在的影響(平的極小點意味着更好的泛化(?))之外, 擁有更平坦幾何形狀的極小點也有利於 GD 的分析和數值表現(否則需要更小的 LR)。所以,已有的文獻經常顯式地添加正則項(regularizers),從而促進和的均衡性。[Wang et al (2022)] 表明,如果 LR 足夠大,GD 將開始傾向於選擇具有均衡性的極小點。並且,LR 越大, 這種偏好就越強。這種對均衡的極小點的偏好並不需要通過額外的正則項得到。如下圖所示, 即使初始條件已經接近不具有均衡性的極小點,並且小 LR 的 GD 確實會收斂到一個很近的極小點,大學習率的 GD 仍然會有截然不同的表現:它能"捨近求遠"地收斂到一個更均衡的極小點。
註:[Wang et al (2022)] 也可以被認為與近期實驗發現的一種被稱為「穩定性邊緣」(Edge of Stability)的現象有關 [Cohen et al (2021)], 這種現象正在迅速引起人們的關注。
更具體地說,[Wang et al (2022)] 證明了:1)如果 GD 收斂到一個點, 這個極限點 滿足一個不等式,即 有一個上界,然後這個上界隨着學習率的增大而減小;2)GD 的確收斂到一個點,即使學習率是真正大的那種。這兩個結論,第一個聽起來很拗口(但很重要),第二個聽起來則很容易;然而事實是,結論 1)可以使用動力系統現有的工具比較容易的得到,而結論 2)更不平凡。這是完全是因為大學習率造成的分析的困難。儘管此處我們不予討論,但專業的讀者也許會在此文的證明及其對 GD 動力學的深入研究中找到樂趣。但我們希望再次回到一個與此博客相關的重點上去——多大的學習率才叫大呢?簡單來說,平衡的現象發生在區間 ,這與本文開頭提到的傳統工具能分析的區間是完全互補的。另外的一個小貼士是, 更大 可以使 GD 不收斂。專家讀者可能會問,等等,上述描述里的 是什麼?事實上,這個問題中目標函數是四次的(即四階多項式),因此其梯度不是全局利普希茨的。此文理論分析部分的優點不僅在於 ,而且在於它只需要目標函數是局部利普希茨的。 中的 是指初始化時 Hess 的譜半徑(spectral radius)。總結:[Wang et al (2022)] 表明,當 LR 真正很大的時候,GD 具有收斂到更平坦局部極小值的隱式正則化效果。更大的 LR 可以使這種隱式的偏好更強。
以上就是本文的全部內容。由於篇幅限制和讀者的多樣性,我們僅僅觸及了冰山一角,另外很多嚴格的細節和相關的工作都未能覆蓋。非常歡迎您的提問,評論和引用。希望您喜歡![1]. J.H.Wilkinson. Error analysis of floating-point computation. Numer. Math. 1960
[2]. Ernst Hairer, Christian Lubich, and Gerhard Wanner. Geometric Numerical Integration. Springer 2006
[3].Qianxiao Li, Cheng Tai, and Weinan E. Stochastic modified equations and dynamics of stochastic gradient algorithms i: Mathematical foundations. JMLR 2019
[4].Lingkai Kao and Molei Tao. Stochasticity of deterministic gradient descent: Large learning rate for multiscale objective function. NeurIPS 2020
[5].Yuqing Wang, Minshuo Chen, Tuo Zhao, and Molei Tao. Large Learning Rate Tames Homogeneity: Convergence and Balancing Effect. ICLR 2022
[6].Jeremy Cohen, Simran Kaur, Yuanzhi Li, J. Zico Kolter, and Ameet Talwalkar. Gradient descent on neural networks typically occurs at the edge of stability. ICLR 2021


如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋樑,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。
PaperWeekly 鼓勵高校實驗室或個人,在我們的平台上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝稿件基本要求:
• 文章確係個人原創作品,未曾在公開渠道發表,如為其他平台已發表或待發表的文章,請明確標註
• 稿件建議以markdown格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
• PaperWeekly 尊重原作者署名權,並將為每篇被採納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬投稿通道:
• 投稿郵箱:hr@paperweekly.site
• 來稿請備註即時聯繫方式(微信),以便我們在稿件選用的第一時間聯繫作者
• 您也可以直接添加小編微信(pwbot02)快速投稿,備註:姓名-投稿

△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
