日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从动力学角度看优化算法:自适应学习率算法

發布時間:2024/10/8 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从动力学角度看优化算法:自适应学习率算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


作者丨蘇劍林

單位丨廣州火焰信息科技有限公司

研究方向丨NLP,神經網絡

個人主頁丨kexue.fm


在從動力學角度看優化算法SGD:一些小啟示一文中,我們提出 SGD 優化算法跟常微分方程(ODE)的數值解法其實是對應的,由此還可以很自然地分析 SGD 算法的收斂性質、動量加速的原理等等內容。


在這篇文章中,我們繼續沿著這個思路,去理解優化算法中的自適應學習率算法。


RMSprop


首先,我們看一個非常經典的自適應學習率優化算法:RMSprop。RMSprop 雖然不是最早提出的自適應學習率的優化算法,但是它卻是相當實用的一種,它是諸如 Adam 這樣更綜合的算法的基石,通過它我們可以觀察自適應學習率的優化算法是怎么做的。


算法概覽


一般的梯度下降是這樣的:



很明顯,這里的 γ 是一個超參數,便是學習率,它可能需要在不同階段做不同的調整。而 RMSprop 則是:



算法分析


對比樸素的 SGD,可以發現 RMSprop 在對 θ 的更新中,將原來是標量的學習率 γ,換成了一個向量。



如果把這個向量也看成是學習率,那么 RMSprop 就是找到了一個方案,能夠給參數的每個分量分配不同的學習率。


這個學習率的調節,是通過因子來實現的,而則是梯度平方的滑動平均。本質上來說,“滑動平均”平均只是讓訓練過程更加平穩一些,它不是起到調節作用的原因,起作用的主要部分是“梯度”,也就是說,可以用梯度大小來調節學習率。


自適應學習率


為什么用梯度大小可以來調節學習率呢?其實這個思想非常樸素。


極小值點和ODE


話不多說,簡單起見,我們先從一個一維例子出發:假設我們要求 L(θ) 的一個極小值點,那么我們引入一個虛擬的時間參數 t,轉化為 ODE:



不難判斷,L(θ) 的一個極小值點就是這個方程的穩定的不動點,我們從任意的 θ0 出發,數值求解這個 ODE,可以期望它最終會收斂于這個不動點,從而也就得到了一個極小值點。


最簡單的歐拉解法,就是用去近似,從而得到:



也就是:



這就是梯度下降法了,θt+γ 相當于 θn+1,而 θt 相當于 θn,也就是每步前進 γ 那么多。


變學習率思想


問題是,γ 選多少為好呢?當然,從“去近似”這個角度來看,當然是 γ 越小越精確,但是 γ 越小,需要的迭代次數就越多,也就是說計算量就越大,所以越小越好是很理想,但是不現實。


所以,最恰當的方案是:每一步夠用就好可是我們怎么知道夠用了沒有?


因為我們是去近似的,那么就必須分析近似程度:根據泰勒級數,我們有:



在我們這里有,那么我們有:



可以期望,當 γ 比較小的時候,誤差項,也就是說,在一定條件下,γ∣L′(θt)∣ 本身就是誤差項的度量,如果我們將 γ∣L′(θt)∣??控制在一定的范圍內,那么誤差也被控制住了。即:



其中 γ? 是一個常數,甚至只需要簡單地 γ∣L′(θt)∣=γ?(暫時忽略 L′(θt)=0 的可能性,先觀察整體的核心思想),也就是:



這樣我們就通過梯度來調節了學習率。


滑動平均處理


讀者可能會詬病,把 γ=γ?/∣L′(θt)∣ 代入原來的迭代結果,不就是:



整個梯度你只用了它的符號信息,這是不是太浪費了?過于平凡:也就是不管梯度大小如何,每次迭代 θ 都只是移動固定的長度。


注意,從解 ODE 的角度看,其實這并沒有毛病,因為 ODE 的解是一條軌跡 (t,θ(t)),上面這樣處理,雖然 θ 變得平凡了,但是 t 卻變得不平凡了,也就是相當于 t,θ 的地位交換了,因此還是合理的。


只不過,如果關心的是優化問題,也就是求 L(θ) 的極小值點的話,那么上式確實有點平凡了,因為如果每次迭代 θ 都只是移動固定的長度,那就有點像網格搜索了,太低效。


所以,為了改善這種不平凡的情況,又為了保留用梯度調節學習率的特征,我們可以把梯度平均一下,結果就是:



這個 λ 是一個接近于 1 但是小于 1 的常數,這樣的話 Gt 在一定范圍內就比較穩定,同時在一定程度上保留了梯度 L′(θt) 本身的特性,所以用它來調節學習率算是一個比較“機智”的做法。為了避免 t+γ?,t+γ 引起記號上的不適應,統一用 n,n+1 來表示下標,得到:



這就是開頭說的 RMSprop 算法了。


高維情形分析


上面的討論都是一維的情況,如果是多維情況,那怎么推廣呢??


也許讀者覺得很簡單:把標量換成向量不就行了么?并沒有這么簡單,因為 (13) 推廣到高維,至少有兩種合理的選擇:



或:



前者用梯度的總模長來累積,最終保持了學習率的標量性;后者將梯度的每個分量分別累積,這種情況下調節后的學習率就變成了一個向量,相當于給每個參數都分配不同的學習率。要是從嚴格理論分析的角度來,其實第一種做法更加嚴密,但是從實驗效果來看,卻是第二種更為有效。


我們平時所說的 RMSprop 算法,都是指后者 (15)。但是有很多喜歡純 SGD 煉丹的朋友會詬病這種向量化的學習率實際上改變了梯度的方向,導致梯度不準,最終效果不夠好。所以不喜歡向量化學習率的讀者,不妨試驗一下前者。


結論匯總


本文再次從 ODE 的角度分析了優化算法,這次是從誤差控制的角度給出了一種自適應學習率算法(RMSprop)的理解。至于我們更常用的 Adam,則是 RMSprop 與動量加速的結合,這里就不贅述了。


將優化問題視為一個常微分方程的求解問題,這其實就是將優化問題變成了一個動力學問題,這樣可以讓我們從比較物理的視角去理解優化算法(哪怕只是直觀而不嚴密的理解),甚至可以把一些 ODE 的理論結果拿過來用,后面筆者會試圖再舉一些這樣的例子。




點擊以下標題查看作者其他文章:?


  • 變分自編碼器VAE:原來是這么一回事 | 附開源代碼

  • 再談變分自編碼器VAE:從貝葉斯觀點出發

  • 變分自編碼器VAE:這樣做為什么能成?

  • 從變分編碼、信息瓶頸到正態分布:論遺忘的重要性

  • 深度學習中的互信息:無監督提取特征

  • 全新視角:用變分推斷統一理解生成模型

  • 細水長flow之NICE:流模型的基本概念與實現

  • 細水長flow之f-VAEs:Glow與VAEs的聯姻

  • 深度學習中的Lipschitz約束:泛化與生成模型




#投 稿 通 道#

?讓你的論文被更多人看到?



如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢??答案就是:你不認識的人。


總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?


PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得技術干貨。我們的目的只有一個,讓知識真正流動起來。


??來稿標準:

? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?

? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?

? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志


? 投稿郵箱:

? 投稿郵箱:hr@paperweekly.site?

? 所有文章配圖,請單獨在附件中發送?

? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通




?


現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧



關于PaperWeekly


PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。


▽ 點擊 |?閱讀原文?| 查看作者博客

總結

以上是生活随笔為你收集整理的从动力学角度看优化算法:自适应学习率算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。