Tap to unmute

【機器學習2021】類神經網路訓練不起來怎麼辦 (三):自動調整學習速率 (Learning Rate)

  Рет қаралды 93,028

Hung-yi Lee

Hung-yi Lee

Күн бұрын

Пікірлер
@bu1414
@bu1414 3 жыл бұрын
筆記的筆記{ (補充) (數學公式) **強調動作** η,念做Eta σ,念做Sigma,標準差 } 上週談Critical Point 前言:Critical Point不一定是訓練network時的最大障礙 今天要講的:Adaptive Learning Rate,給每一個參數不同的Learning Rate 為什麼說Critical Point不一定是訓練network時的最大障礙? 0:32 我們會一邊訓練一邊紀錄Loss 1:02 當Loss不再下降,我們認為卡在Critical Point,意味著Gradient很小。但Gradient真的很小嗎? 1:43 從Gradient的向量圖中可以得知,就算Loss幾乎沒有在動,Gradient也可能有震盪 2:17 一個可能:Gradient在Error suface的山谷間震盪 3:34 如果訓練時很少卡到Saddle Point 或 Local minima,很難走到這兩種點,那*這張圖*怎麼畫出來的呢? 4:15 因為這張圖不是用一般的Gradient descend訓練而成的成果 一般的Gradient descend不太能接近Critical Point 多數的Training在接近Critical Point前Loss就已經停止下降 4:54 通常在做Gradient descend時真正的魔王不是Critical Point→是自己 5:07 如果Critical Point不是問題,為什麼Training會卡住? 一個很簡單的Convex的Error surface,只有兩個參數 (Convex的surface:等高線是橢圓形的,像狹長山谷。關於Convex:en.wikipedia.orG/wiki/Convex_function) 直觀上感覺:這種surface不就一路滑下去再走過去ㄇ 事實上:使用Gradient descend時, Learning Rate大→步伐太大,飛太遠,在山谷間震盪 Learning Rate小→步伐太小,幾乎不會前進 7:33 一袋米要吸累(痛みを知る) 用Gradient descend訓練這種Convex怎麼這麼痛苦!! 這種簡單的題目都做不好!! 一室之不治何以天下國家為!! 9:20 怎麼把Gradient descend做好呢? 所有參數都設同樣的Learning Rate顯然是不夠的 →Learning Rate應該要為每個參數客製化 9:41 怎麼客製化 Learning Rate呢? 大原則: 若在某個方向很平坦→Learning Rate大一點,跑得快 若在某個方向很陡峭→Learning Rate小一點,走得穩 10:16 Learning Rate如何自動的調整? 要改Gradient descend原來的式子 **下述講解皆以一個參數做例子,此範例適用所有參數** **重複看影片+手寫筆記,公式難以做筆記,看到結束** 10:48 參數Θ上標t下標i,t=iteration,i=參數 原本的Learning Rate是固定的η →改寫成η/σ上標t下標i,此σ對於不同的參數i與迭代t有不同的值 η改成η/σ,我們獲得了一個parameter dependent的learning rate 12:21 Root Mean Square σ怎麼算?可以算Gradient的Root Mean Square 參數update的式子: Θ上標1 ← Θ上標0 - η/σ上標0 * g上標0 ,此數的 σ上標0 是 g上標0^2^(1/2) = |g上標0| ,剛好跟g上標0抵銷 放棄啦,看手寫啦 15:44 Adagrad 為什麼這招可以做到,當坡度大Learning Rate就減小,坡度小Learning Rate就放大呢? 針對不同的參數Θ,其Surface不一樣。 當Surface陡峭,σ上標t下標i較大,步伐便比較小 當Surface平緩,σ上標t下標i較小,步伐便比較大 17:10 Learning Rate adapts dynamically 上述版本的假設:一個參數Gradient的大小會固定 事實上:不會固定,因為Error Surface很複雜 →就算同參數同方向,Learning Rate也需要動態調整 18:26 RMS Prop 跟Adagrad大致相同,但從Step 2開始不一樣 Root Mean Square:每個Gradient有同等重要性 RMS Prop:可自行調整Gradient的重要性 21:21 RMS Prop小結 透過α決定g上標t下標i的重要性,便可動態調整σ 21:40 圖像範例 Gradient大→用RMS Prop可讓剛看到的g影響變大→σ大→步伐小 Gradient小→用RMS Prop可讓剛看到的g影響變小→σ小→步伐大 23:15 最常用的Optimization策略(又稱Optimizer) Adam:RMS Prop+Momentum 24:33 加上Adaptive Learning Rate後,剛剛簡單的Error surface 訓練的起來嗎? 卡住的地方加上Adagrad後走得動了 起始點顛簸,Gradient大→σ大→步伐小,走下去沒問題 左轉後平坦,Gradient小→σ小→步伐大 暴走了,Why? 因為算σ時會參考過去所有的Gradient 剛開始在y軸走了很遠,轉彎後雖Gradient 小,但累積了很多小的σ,導致步伐變大,突然噴飛到Gradient大的地方,又因Gradient大,步伐變小,震盪慢慢停下來回到中間。怎麼辦呢? 27:23 Learning Rate Scheduling 讓η跟時間有關,怎麼做呢? Learning Rate Decay,時間↑,η↓ 為什麼要這樣?隨著時間前進,離目標越來越近,減少η讓參數更新慢下來 剛剛的情況加上Learning Rate Scheduling就不會震盪 28:49 Warm Up 要先變大後變小 多大?多小?自己調整 黑科技?許多論文都有使用 30:03 Residual Network arXiv,關於ML論文的網站,前四個數字為年份月份 Learning Rate先設成0.01之後設為0.1 31:39 Transformer Learning Rate遵守一個Warm Up的Function 32:39 為什麼要用Warm Up? 仍需探討 可能的解釋: 不管用Adam、RMS Prop或Adagrad,都需要計算σ:一個統計的結果,需要大量數據才會精準 →一開始σ不精準,那一開始就不要走太遠,要慢慢收集情報 34:11 總結:Gradient descend之進化 Vanilla Gradient descend: 固定的步伐大小與當前Gradient方向 Various Improvements: 1.g:Momentum:考慮過去所有Gradient方向來調整方向 2.σ:Root Mean Square:考慮過去所有Gradient的大小來調整步伐幅度 3.η:Learning Rate Scheduling:考慮時間來調整參數的更新速度 不論是什麼Optimizer,幾乎都是考慮、調整這三個參數 36:24 詳細講解的影片QRcode 36:42 Next Time 當Error Surface崎嶇,有好多山擋著,需要好的方法來繞過這些山,做Optimization 這麼痛苦能不能直接把Error Surface夷平呢?能不能把山炸掉呢?
@future-outlier
@future-outlier 3 жыл бұрын
謝謝你的筆記
@o凸·_·凸o
@o凸·_·凸o Жыл бұрын
推 好用心
@宇恆宇
@宇恆宇 Жыл бұрын
不好意思,想請問一下影片3:33老師所說的Norm是什麼Norm?L1 norm? L2 norm?
@evachen3010
@evachen3010 Жыл бұрын
@evachen3010
@evachen3010 Жыл бұрын
再推一次 每期都要按兩個讚 老師的讚和bu的讚
@Ahwu_AIClass
@Ahwu_AIClass 16 күн бұрын
🎯 Key points for quick navigation: 00:02 *🚧 訓練卡住的原因分析* - 問題背景:介紹訓練中 `critical point` 的誤解,並強調訓練卡住時應仔細檢查梯度是否真的很小。 - 訓練過程中,`loss` 停滯並不一定表示遇到 `critical point`,梯度可能仍然很大。 - 使用 `gradient norm` 分析卡住的原因,避免誤判為 `saddle point` 或 `local minima`。 04:20 *⛰️ 坡度平滑與梯度下降的挑戰* - 在平滑但狹長的誤差曲面(如橢圓形)上,梯度下降難以有效收斂。 - 學習率調整困境:學習率太大會導致震盪,太小則會導致訓練停滯。 - 示範了調整學習率後的困難情境,凸顯了簡單曲面上訓練的挑戰性。 09:06 *🛠️ 自動調整學習率的需求* - 介紹如何改進梯度下降方法,解決簡單問題都難以收斂的不足。 - 個別參數學習率:為每個參數量身定制學習率,根據梯度大小調整。 - 平坦方向需增大學習率,陡峭方向需減小學習率,以提升收斂效果。 12:47 *⚙️ 梯度更新與Root Mean Square計算* - 講解參數更新公式,包含初始參數與梯度的影響。 - 引入Root Mean Square (RMS) 計算,用以動態調整學習率,具體說明公式中各項的意義及計算方式。 - 提到RMS在不同梯度大小的影響下會調整學習率,使梯度大時步伐小,梯度小時步伐大。 15:20 *🌄 自動調整學習率的Adagrad方法* - 說明Adagrad方法如何利用RMS來動態調整學習率。 - 探討Adagrad的應用,對不同參數的梯度進行獨立調整,使陡峭區域學習率降低,平緩區域學習率提高。 - 強調Adagrad的限制,即同一參數的學習率會逐漸減小,可能導致模型在訓練後期收斂過慢。 18:30 *✨ RMSProp方法的改進* - 介紹RMSProp方法的背景,由Hinton提出且無相關論文支持。 - RMSProp改進Adagrad,對梯度的重要性進行加權,通過引入超參數α調整新舊梯度的影響比例。 - 詳述RMSProp的公式與運算過程,展示如何有效地克服Adagrad學習率衰減的問題。 21:07 *🎯 RMSProp的實際應用與優勢* - 分析RMSProp在不同梯度變化情境下的效果,特別是在平坦與陡峭區域的參數更新。 - 強調RMSProp的動態調整能力,能快速響應新梯度變化,提高收斂效率。 - 建議合理選擇α值以平衡新舊梯度的重要性,達到最佳訓練效果。 24:44 *📉 自適應學習速率 Adagrad 的效果與問題* - Adagrad 的基本原理是根據過去的梯度計算σ,用於調整學習速率。 - 在某些情況下,Adagrad 可解決梯度過小導致停滯的問題,但可能因累積偏差導致更新過大而「爆炸」。 - 透過梯度變大區域的修正,最終系統可穩定回到目標路徑。 27:19 *⏬ 學習速率的調整策略:Learning Rate Decay* - 學習速率隨時間遞減 (Learning Rate Decay),可避免參數在終點附近過度震盪。 - 初期更新速度快,後期逐漸減小,確保模型穩定收斂。 - 應用此策略可解決過大的更新步伐帶來的問題。 28:52 *🔥 Warm Up 技術與應用* - Warm Up 是先增大再減小學習速率的調整方法,常見於訓練 BERT 與 Residual Network。 - 初期以小學習速率進行探索,避免模型過快偏離初始狀態。 - 該技術在許多深度學習網路中被廣泛採用,但具體理論仍有待進一步研究。 34:01 *🌀 Momentum 與 Root Mean Square 的結合* - Momentum 利用過去所有梯度的加總,平滑更新方向,避免只跟隨當前梯度。 - 根據梯度平方平均值調整步伐大小,與 Momentum 相輔相成。 - 兩者結合提升了優化的穩定性與效率,但需注意實際應用中調參的影響。 Made with HARPA AI
@patrickruan2290
@patrickruan2290 3 жыл бұрын
謝謝老師,老師的課真的太精彩了,所以我又來了... 現在的煩惱是要一口氣看完所有 VIDEOS 還是要先去把三體 III 看完...
@jiuhanhuang1915
@jiuhanhuang1915 11 ай бұрын
哈哈哈哈哈哈哈
@xinxinwang3700
@xinxinwang3700 3 жыл бұрын
从之前视频下的评论 贴过来的 有助于理解RMSProp vt 就是時間點為 t 時的 EMA 值(指數滾動平均),之所以能解決 AdaGrad 的單調遞增問題 (monotonic increasing) 是因為『 alpha 值』的存在」應該要強調「 alpha 是介於 0 ~ 1 之間的小數,因此每次迭代時, Sum of EMAs 都會乘上常數 alpha,總括來看,越久遠的 EMA 就會乘上越高次方的 alpha值。」所以,即使假設一開始 gradient 值很大,經過一次次迭代之後,最初的 gradient 值就會急速以指數等級變小,時間軸上越久遠的 gradient 對新的 EMA 的影響力就越微小,這樣整體的 Learning rate 就不會 monotonically decreasing,達到有效率地找尋參數並成功縮小 Loss 值
@xiaoyuzhang849
@xiaoyuzhang849 3 жыл бұрын
"一室之不治,何以天下国家为"--老师真是教书育人的榜样!
@文芳-c4j
@文芳-c4j 3 жыл бұрын
一屋不扫,何以扫天下
@menkiguo7805
@menkiguo7805 Жыл бұрын
這種隨便引用一句話不做reasoning你怎麼知道他是正確的
@soidraw
@soidraw 11 ай бұрын
没有进一步展开的情况下,还是应该focus在本来的意思上比较好
@lkdhy-rc7ep
@lkdhy-rc7ep 10 ай бұрын
莫名其妙@@menkiguo7805
@ariasminato8280
@ariasminato8280 2 жыл бұрын
怎麼可以把機器學習講的這麼有趣,太強了
@xinxinwang3700
@xinxinwang3700 3 жыл бұрын
每周 都很期待 您的课程 ♥
@jiun5671
@jiun5671 Жыл бұрын
想詢問 36:42 最後面詳細的做法是在哪堂課會教呢? 當Error Surface崎嶇,有好多山擋著,能不能把山炸掉呢?
@AndiMQT
@AndiMQT 2 жыл бұрын
讲的太好了 尤其是动量和分子那块 不同之处的解释
@xiaoranchen5363
@xiaoranchen5363 3 жыл бұрын
去年助教在讲warm up的时候我是不知道怎么实做的,听了老师的讲解,豁然开朗诶!
@sophie8054
@sophie8054 3 жыл бұрын
15:30处最下面那个RMS公式,等号右边的开根号里,求和符号的变量和小括号里g的上标是不是应该改成另一个变量,比如j啊?如果对i求和,那求的是不同参数的第t次梯度的RMS而不是第i个变量的梯度RMS了吧。
@johnxc835
@johnxc835 5 ай бұрын
同問,我也是這樣想的
@chenwilliam5176
@chenwilliam5176 Жыл бұрын
To minimise loss function, 梯度下降法似乎「不完美」😢
@jackzhang2811
@jackzhang2811 3 жыл бұрын
一袋米要扛几楼,哈哈哈哈,老师讲的很幽默易懂,赞!
@yunzhang2553
@yunzhang2553 3 жыл бұрын
不愧我男神!我要看十遍!
@福运汪
@福运汪 3 жыл бұрын
It is lucky for me, a student who has a statistical foundation but is new to deep learning studies, to take such a course.
@qiqiwu7561
@qiqiwu7561 2 жыл бұрын
老师如果在bilibili上传视频至少几百万粉...
@Arsenan_6666
@Arsenan_6666 3 жыл бұрын
摩擦力,喷,老师的课真的很有意思
@DED_Search
@DED_Search 3 жыл бұрын
6:10 我实在是没看懂那个花花的2维图,如何从这个图里看出来error surface是convex的?谢谢
@yanlu914
@yanlu914 Жыл бұрын
从颜色,颜色越偏蓝,说明值越小,从下到上是黄色到蓝色的转变,说明是减少的,于是convex
@helenlin475
@helenlin475 3 жыл бұрын
請問一個很菜的問題,21:19 RMSProp在算現在時間點的Sigma時,前一時間點的Sigma需要平方嗎? 因為在其他地方看到算式沒有平方。如: kzbin.info/www/bejne/lZaQfXmblM6apNE 這個影片的講解就只有對g平方。或者其實是我誤解了甚麼? (之前是看老師的影片自學,因為在他處發現不一樣的算法,感到困惑,希望有大大能幫忙解惑)
@kevin2622655
@kevin2622655 3 жыл бұрын
我看了一下發現真的講不一樣,然後我去找了RMSprop的作者的影片,kzbin.info/www/bejne/jpm9kpuOr6qohNE 5:50那邊,它好像是提 meansquare
@helenlin475
@helenlin475 3 жыл бұрын
@@kevin2622655 感謝提供原作者影片🙇‍♀️ 剛剛又仔細看了一次,老師的sigma是root mean square,所以要平方;另一種寫法是mean square,因此就不用再平方了。讀書讀太久突然變笨,抽離一下再回來就懂了。謝謝你的回覆讓我回來審視自己的誤解
@tonychui1259
@tonychui1259 5 ай бұрын
15:38 的general formula是不是打错了,怪怪的
@leohsusolid
@leohsusolid 3 жыл бұрын
12:04 想請問這邊的depend on t的iteration,不是代表同一個參數在不同時刻(坡度)會有不同變化嗎?為什麽後續也需要更新同一個參數呢?謝謝~
@leohsusolid
@leohsusolid 3 жыл бұрын
瞭解,後續為不同的t時佔影響下一個gradient的比重,這是可以調整的,會更符合實際狀況。
@minhaoling3056
@minhaoling3056 2 жыл бұрын
@@leohsusolid 如果坡度差不多的话AdaGrad就行,但是坡度变化大的话要用RMSRpro进行weighted sum.
@logic6923
@logic6923 6 ай бұрын
哈哈,老师也是火影迷呀,神罗天征!
@jorjiang1
@jorjiang1 3 жыл бұрын
9:00 这个learning rate 小一点没关系吧 即使到不了最优点 由于坡度很小 说明下完陡坡后 loss已经非常接近最优点了 基本上这个时候结束也没问题了
@minhaoling3056
@minhaoling3056 2 жыл бұрын
在实际情况中你不会知道你现在停滞不前的loss距离最优点多远,无法断定应不应该结束。
@nekokiku2918
@nekokiku2918 3 жыл бұрын
来学习了
@宏宇刘-b5r
@宏宇刘-b5r 3 жыл бұрын
26分钟左右,最后的震荡,老师说是因为纵轴的梯度的累加都比较小。可是前面的纵轴梯度也累加进去了啊,所以纵轴上累加后应该也是逐渐增大的啊,为什么会出现这种情况呢
@runsangyu151
@runsangyu151 3 жыл бұрын
我也有同样的疑问,但我觉得可能是因为他迭代的次数越来越大了,根据adagrad计算公式,你需要除以(t+1),当迭代次数越来越多,而gradient变化的幅度却越来越小,sigma变得非常小,突然就震荡了,我不知道对不对。
@pizza9765
@pizza9765 2 жыл бұрын
@@runsangyu151 我也是這樣想的 應該沒錯
@harrisondong5405
@harrisondong5405 3 ай бұрын
@@runsangyu151 为什么往纵轴震荡而不是横轴啊?按理梯度方向是横轴向左,sigma变小,学习率增大,也应该横轴方向变大啊
@Hunter-pz6ck
@Hunter-pz6ck 3 жыл бұрын
求问,老师最后面说的“夷平大山”那个视频在哪里讲的,求链接,感激不尽
@HungyiLeeNTU
@HungyiLeeNTU 3 жыл бұрын
在這裡: kzbin.info/www/bejne/eHKlgYqFoLiVgqc
@Hunter-pz6ck
@Hunter-pz6ck 3 жыл бұрын
好的,感谢老师这么好的课程!
@mandydong5611
@mandydong5611 2 жыл бұрын
最后一页PPT里面的NEXT TIME对应的是哪个视频呀?能发一下链接吗
@hxchen01
@hxchen01 2 жыл бұрын
请问你找到了吗,我也有这个问题
@chenkang2552
@chenkang2552 3 жыл бұрын
啪的一下,很快啊 老师的知道的梗好多lol
@qingguo6498
@qingguo6498 2 жыл бұрын
老师是冷淡熊粉丝吗?哈哈哈哈哈哈哈哈哈
@maxchen8628
@maxchen8628 3 жыл бұрын
有人知道哪裡可以找到作業嗎? 想實際操作看看
@HungyiLeeNTU
@HungyiLeeNTU 3 жыл бұрын
在這裡: speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.html
@maxchen8628
@maxchen8628 3 жыл бұрын
@@HungyiLeeNTU 謝謝教授!
@refrainit4938
@refrainit4938 3 жыл бұрын
老火影了哈哈哈
@ccuuttww
@ccuuttww 3 жыл бұрын
BATCH NORMALIZATION 是長門發明笑
@xxld09
@xxld09 3 жыл бұрын
一袋米抗几楼 一袋米抗五楼
@louisleeboy
@louisleeboy 3 жыл бұрын
神羅天征!
@behindthebackcrossover2464
@behindthebackcrossover2464 3 жыл бұрын
神羅天征
@fabryperot8081
@fabryperot8081 3 жыл бұрын
在李老师这里,你甚至可以学习机器学习。
@yihangli9053
@yihangli9053 3 жыл бұрын
老师666
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН
We Attempted The Impossible 😱
00:54
Topper Guild
Рет қаралды 56 МЛН
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН
【機器學習2021】機器學習任務攻略
51:23
Hung-yi Lee
Рет қаралды 187 М.
AI時代,你跟上了嗎?|李宏毅|人文講堂|完整版 20231209
24:01
【機器學習2021】自注意力機制 (Self-attention) (上)
28:18
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН