深度學習優化中的動態學習率

更新於 2024/04/30閱讀時間約 3 分鐘

隨著gradient不斷地update, 最後走向了gradient =0或是gradient非常小時,Loss無法在優化的狀況 → 通常我們會判斷是走到了critical point → 但真的是critical point嗎?

-> 調整學習速率幫助我們檢查和更進一步優化loss。


為什麼需要動態的learning rate?

我們可以想像一個error surface的最低點位在兩個狹窄的山壁之間,此時如果我們的learning rate很大,那就會不斷地在山壁間打轉,始終沒辦法往下;反之,如果我們設定learning rate很小,雖然可以往下優化loss,但因為底部非常平滑,就會導致花了很大量的時間更新,還是沒辦法得到loss的最佳解。因此我們需要一個動態的learning rate。


Root Mean Square

一般我們更新參數θ的方式: θi = θi-1 - η*g

那在動態的learning rate中,我們加上一個控制learning rate的參數σ。

=> θi = θi-1 - (η/σt) *g. *(η/σt)被稱為dependent learning

=> σt= 所有使用過的gradient值開根號平方的平均。

=> 這是被Root Mean Square的動態learning rate。

raw-image

為什麼能夠動態呢?

想像當我們的曲線平緩的時候,gradient就小 -> σt就小 -> dependent learning就會變大。



RMSProp

在RMS的方法中,每一個gradient值的權重都是相同的,但在RMSProp中,我們可以自行決定當前gradient值的權重α,以及剩餘的gradient值的權重(1-α)

為的是更快反應當前的位置與平緩程度。當前算出來的gradient代表的是當前的位置以及平緩程度,因此我們可以藉由調整α值,讓更新可以更快被反應,而不會像原本的RMS反應得如此緩慢。

*至今最常用的optimization策略: Adam = RMSProp + Momentom

raw-image
raw-image

但是透過RMSProp的方法有可能造成下圖突然暴衝的狀況! → 因為過去累積太多縱軸移動的值σ,雖然最後還是會回歸到原本的位置,但就會有這種狀況 → 如何避免? → 進行Learning rate Scheduling

Learning rate Scheduling兩種方法:

  1. learning rate decay: 讓learning rate逐漸減少,因為我們每次更新,都會更接近終點,所以讓learning rate逐漸減少是合理的,同時也能阻止暴衝的狀況(因爲值本身就比較小)。
  2. warm up:讓learning rate先增加,在減小。因為初始時我們不確定狀況如何,所以我們摸索learning rate的值,慢慢抓到狀況後,才以learning rate最大值進行,之後就如learning rate decay慢慢減小。


avatar-img
1會員
37內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
dab戴伯的沙龍 的其他內容
本文將介紹batch的定義與其在機器學習中的作用,以及不同batch size 的影響。同時也會講解Momentum動量在機器學習中的重要性。透過本文,您將清楚地瞭解batch、batch size和Momentum動量的概念以及其對機器學習的影響。
之前有提到有時我們在微分之後會得到gradient = 0的值,就以為我們已經找到最小值,但其實它只是local minima。 那這一節主要想跟大家分享我們要怎麼區分是不是Local Minima。
這篇文章介紹瞭如何使用sigmoid函數來解決函數過於簡單導致的模型偏差問題,並透過尋找函數和參數來逼近precise linear curve。另外,也講述瞭如何尋找讓損失函數最小的參數以及使用batch和反覆進行Sigmoid的方法。
機器學習是什麼? 簡單來說,機器學習就是訓練機器尋找Function的一段過程,而這個Function可以幫助我們解決我們遇到的問題,或是幫助我們
static 關鍵字主要用於管理記憶體,可用在variables, methods, blocks, nested classed。加上static關鍵字的物件,會在啟動程式當下就會賦予記憶體位置給此物件,後續無論實例化多少次,記憶體的位置都相同。 以class舉例,static class 與
在Android 編譯成功後,在out/target/product/generic會產生與系統對應的映像檔,分別是ramdisk.img關於root文件系統, system.img關於主要的包及庫, userdata.img關於用戶數據,分別對應的目錄為root, system, data映像檔簡
本文將介紹batch的定義與其在機器學習中的作用,以及不同batch size 的影響。同時也會講解Momentum動量在機器學習中的重要性。透過本文,您將清楚地瞭解batch、batch size和Momentum動量的概念以及其對機器學習的影響。
之前有提到有時我們在微分之後會得到gradient = 0的值,就以為我們已經找到最小值,但其實它只是local minima。 那這一節主要想跟大家分享我們要怎麼區分是不是Local Minima。
這篇文章介紹瞭如何使用sigmoid函數來解決函數過於簡單導致的模型偏差問題,並透過尋找函數和參數來逼近precise linear curve。另外,也講述瞭如何尋找讓損失函數最小的參數以及使用batch和反覆進行Sigmoid的方法。
機器學習是什麼? 簡單來說,機器學習就是訓練機器尋找Function的一段過程,而這個Function可以幫助我們解決我們遇到的問題,或是幫助我們
static 關鍵字主要用於管理記憶體,可用在variables, methods, blocks, nested classed。加上static關鍵字的物件,會在啟動程式當下就會賦予記憶體位置給此物件,後續無論實例化多少次,記憶體的位置都相同。 以class舉例,static class 與
在Android 編譯成功後,在out/target/product/generic會產生與系統對應的映像檔,分別是ramdisk.img關於root文件系統, system.img關於主要的包及庫, userdata.img關於用戶數據,分別對應的目錄為root, system, data映像檔簡
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
這本書訪談了大學學生,並且歸納出幾點建議,書中也提到不必每條條都嚴格遵守,而是選擇一組吸引你的規則,並在大學生活中履行。 我自己在看這本書的時候,結合自己的大學經歷,選取幾點我比較有感觸的部分,分為以下幾點,後面則會提到一些關於書中內容反思
Thumbnail
透過麗鳳督導在心理諮商上的應用,能夠讓我們看待個案問題時有了全新的視角。學理論要浸泡到自動化思考,分析個案時需要考慮家庭結構、互動關係和人際界線等重要元素。此外,心理諮商師需用關係去理解表徵問題,並運用大量的探問與對話,從而從症狀到系統的探索。
Thumbnail
不是只是硬記硬背,而是要用對方法。學習,不分年紀,不分時候,我們隨時都在學習,但有良好的學習技能,像故事/小說書中,電影裡那些擁有超能力的人一樣,可以在自己想學的技能中,一眼就記住,過目不忘的技能,如果擁有或許也是一件不錯的事,但切換到現實,我們認真學習,雖然也能記住,但所要花費的時間成本...
深度學習是機器學習的一個分支,它使用多層神經網絡來模擬和解決複雜的問題。有許多不同的深度學習框架可供選擇,這些框架提供了用於訓練神經網絡的工具和函數。以下是一些常用的深度學習框架的簡介: TensorFlow: TensorFlow由Google開發,是最流行的深度學習框架之一。它具有靈活的計算
Thumbnail
如何與錯誤打交道,就是對於自身的錯誤的察覺,又或者是對於所學的知識正確性如何思辨。 大家好,今天我們來談談「第二層思考」。這是一個相當重要的概念,尤其在現代社會中,我們需要面對各種各樣的資訊和知識,但有時候這些資訊和知識並不是那麼正確。所以,我們必須學會用第二層思考去判斷和分析這些資訊和知識。 首先
Thumbnail
師範大學的 陳佩英 教授來訪均一! 讓我們有機會向教授請益有關個人化學習的前瞻發展可能性。 教授很親切給予我們許多建言與引導,聽完教授的回饋,有三個小心得: 真的覺得自己懂得不過廣泛,也不夠深啊! 2. 也很喜歡教授提醒我們要注意工具背後的教育理念。 a. 特別是對非認知能力的評量,不能用行為主義來
Thumbnail
是什麼讓一個人的成長速度比另一個人更快呢? 《深度學習的技術》的作者楊大輝的答案是:學習的深淺。
Thumbnail
學習如何學習(拓、活) 繼上一篇談到「記、懂、網」之後,讓我們再續談「拓」。在拓篇,我們將要增加知識的品質。而在本篇的最後一節「活」篇,則是探討到學習的管道。 所以,在讀這篇文章時,你也可以反過來,先拉到最下面的「活」篇,掌握正確的學習管道之後,你再回來這裡,將知識依照順序加工
Thumbnail
學習如何「學習」 在學習的過程中,不同的階段,知識點的運用在大腦的變化不盡相同,從傳統的點線面教學、走到資訊爆炸的現在。 我們需要的是:記、懂、網、拓、活。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
這本書訪談了大學學生,並且歸納出幾點建議,書中也提到不必每條條都嚴格遵守,而是選擇一組吸引你的規則,並在大學生活中履行。 我自己在看這本書的時候,結合自己的大學經歷,選取幾點我比較有感觸的部分,分為以下幾點,後面則會提到一些關於書中內容反思
Thumbnail
透過麗鳳督導在心理諮商上的應用,能夠讓我們看待個案問題時有了全新的視角。學理論要浸泡到自動化思考,分析個案時需要考慮家庭結構、互動關係和人際界線等重要元素。此外,心理諮商師需用關係去理解表徵問題,並運用大量的探問與對話,從而從症狀到系統的探索。
Thumbnail
不是只是硬記硬背,而是要用對方法。學習,不分年紀,不分時候,我們隨時都在學習,但有良好的學習技能,像故事/小說書中,電影裡那些擁有超能力的人一樣,可以在自己想學的技能中,一眼就記住,過目不忘的技能,如果擁有或許也是一件不錯的事,但切換到現實,我們認真學習,雖然也能記住,但所要花費的時間成本...
深度學習是機器學習的一個分支,它使用多層神經網絡來模擬和解決複雜的問題。有許多不同的深度學習框架可供選擇,這些框架提供了用於訓練神經網絡的工具和函數。以下是一些常用的深度學習框架的簡介: TensorFlow: TensorFlow由Google開發,是最流行的深度學習框架之一。它具有靈活的計算
Thumbnail
如何與錯誤打交道,就是對於自身的錯誤的察覺,又或者是對於所學的知識正確性如何思辨。 大家好,今天我們來談談「第二層思考」。這是一個相當重要的概念,尤其在現代社會中,我們需要面對各種各樣的資訊和知識,但有時候這些資訊和知識並不是那麼正確。所以,我們必須學會用第二層思考去判斷和分析這些資訊和知識。 首先
Thumbnail
師範大學的 陳佩英 教授來訪均一! 讓我們有機會向教授請益有關個人化學習的前瞻發展可能性。 教授很親切給予我們許多建言與引導,聽完教授的回饋,有三個小心得: 真的覺得自己懂得不過廣泛,也不夠深啊! 2. 也很喜歡教授提醒我們要注意工具背後的教育理念。 a. 特別是對非認知能力的評量,不能用行為主義來
Thumbnail
是什麼讓一個人的成長速度比另一個人更快呢? 《深度學習的技術》的作者楊大輝的答案是:學習的深淺。
Thumbnail
學習如何學習(拓、活) 繼上一篇談到「記、懂、網」之後,讓我們再續談「拓」。在拓篇,我們將要增加知識的品質。而在本篇的最後一節「活」篇,則是探討到學習的管道。 所以,在讀這篇文章時,你也可以反過來,先拉到最下面的「活」篇,掌握正確的學習管道之後,你再回來這裡,將知識依照順序加工
Thumbnail
學習如何「學習」 在學習的過程中,不同的階段,知識點的運用在大腦的變化不盡相同,從傳統的點線面教學、走到資訊爆炸的現在。 我們需要的是:記、懂、網、拓、活。