吴恩达深度学习笔记6-Course2-Week2【优化算法】
優(yōu)化算法
一、Mini-batch gradient descent(小批量梯度下降法)
Mini-batch: 把整個(gè)訓(xùn)練數(shù)據(jù)集分成若干個(gè)小的訓(xùn)練集,即為Mini-batch。
為什么要分?梯度下降法必須處理整個(gè)訓(xùn)練數(shù)據(jù)集,才能進(jìn)行下一次迭代。當(dāng)訓(xùn)練數(shù)據(jù)集很大時(shí),對(duì)整個(gè)訓(xùn)練集進(jìn)行一次處理,處理速度較慢。但是如果每次迭代只使用一部分訓(xùn)練數(shù)據(jù)進(jìn)行梯度下降法,處理速度就會(huì)變慢。而處理的這些一小部分訓(xùn)練子集即稱為Mini-batch。另一方面,每次迭代處理更少的數(shù)據(jù),使所需的內(nèi)存空間相應(yīng)的減小。
Mini-batch梯度下降的cost function會(huì)有噪聲:
因?yàn)槊看蔚挠?xùn)練集都不一樣,可能遇到比較好分的訓(xùn)練數(shù)據(jù),cost就較小。也可能是不好分的,cost就會(huì)變大。
Mini-batch 的 size:
size=m: batch梯度下降
對(duì)所有m個(gè)訓(xùn)練樣本執(zhí)行一次梯度下降,每一次迭代時(shí)間較長(zhǎng); Cost function 總是向減小的方向下降。
size=1: 隨機(jī)梯度下降
對(duì)每一個(gè)訓(xùn)練樣本執(zhí)行一次梯度下降,但是丟失了向量化帶來的計(jì)算加速; Cost function總體的趨勢(shì)向最小值的方向下降,但是無法到達(dá)全局最小值點(diǎn),呈現(xiàn)波動(dòng)的形式。
size=(1,m): Mini-batch梯度下降
實(shí)現(xiàn)快速學(xué)習(xí),也應(yīng)用了向量化帶來的好處; Cost function的下降處于前兩者之間。通常選擇2的整數(shù)次方:64,128,256,512。
二、指數(shù)加權(quán)平均(Exponentially weighted averages)
指數(shù)加權(quán)平均:
其中vt表示加權(quán)平均值; v(t-1)表示前一個(gè)加權(quán)平均值; θt表示當(dāng)前值; β越大平均的個(gè)數(shù)越多。
下圖表示某些天的氣溫的散點(diǎn)圖。其中黃、紅、綠線分別是β=0.98,0.9,0.5的指數(shù)加權(quán)平均線(50天、10天、2天的加權(quán)平均值)。
作用: 雖然平均值不準(zhǔn)確,但是只需要一行代碼和一次計(jì)算就能夠算出任意多個(gè)數(shù)的平均值。提高運(yùn)行速度,節(jié)省內(nèi)存空間。
指數(shù)加權(quán)平均的理解:
當(dāng)β=0.9時(shí),v100展開成:式中所有θ的系數(shù)相加等于1或者接近于1。
我們忽略系數(shù)小于系數(shù)峰值(0.1)的1/e的項(xiàng),因?yàn)?-ε=β; ,所以我們只關(guān)注1/ε個(gè)值。例如:β=0.9時(shí),ε=0.1,1/ε=10,即10天。
指數(shù)加權(quán)平均的偏差修正(bias correction):
當(dāng)β=0.98,我們得到的并不是圖中的綠色曲線,而是下圖中的紫色曲線,其起點(diǎn)比較低。因?yàn)槲覀冊(cè)O(shè)v0=0,v1=0.98*v0+0.02*θ1=0.02*θ1變得非常小。
修正公式:
開始階段分母會(huì)比較小,可以修正起點(diǎn)偏低;當(dāng)t增大時(shí)分母趨于1對(duì)結(jié)果沒影響。實(shí)際使用中,可以不修正,直接忽略前期的均值。
三、動(dòng)量梯度下降法(gradient descent with momentum)
以下圖是三維轉(zhuǎn)二維 cost function contour 為例:
橫軸(horizontal axis)梯度小,縱軸(horizontal vertical axis)梯度大,在相同的learning rate 梯度下降中橫步長(zhǎng)小(下降很慢)、縱步長(zhǎng)很大(可能不收斂,波動(dòng)大)。為了不收斂,learning rate 只能被設(shè)得較小,因此迭代速度慢。
我們想加快訓(xùn)練速度,就得抑制縱向減少波動(dòng)。這樣我們就可以設(shè)置更大的learning rate加大橫向步長(zhǎng)進(jìn)而加快迭代。
動(dòng)量梯度下降的核心思想就是在更新參數(shù)時(shí)使用梯度的指數(shù)加權(quán)平均數(shù)代替只使用當(dāng)前mini-batch計(jì)算出的梯度進(jìn)行更新,這樣可以減小縱軸的波動(dòng)(因?yàn)楸黄骄?#xff0c;平均值波動(dòng)較小且約等于0)。
算法的理解: 把Cost function想象為一個(gè)碗狀,頂部有一顆球往下滾,其中的微分項(xiàng) dw,db 可以看做是加速度、動(dòng)量項(xiàng) Vdw,Vdb 相當(dāng)于速度。小球在向下滾動(dòng)的過程中,因?yàn)榧铀俣鹊拇嬖谒俣葧?huì)變快,但是由于β的存在且小于1,可以看做是摩擦力,所以球不會(huì)無限加速下去。
動(dòng)量梯度下降的公式:β通常設(shè)為0.9,該參數(shù)正常不用調(diào)參。
四、RMSprop (root mean square prop: 均方根)
在 learning rate不變的情況下,即減小梯度大(例中為縱軸)的步長(zhǎng)又增大梯度小的(橫軸)步長(zhǎng)。因?yàn)閐w小S就小,除以根號(hào)S的項(xiàng)也就大了,即步長(zhǎng)變大。為了保證算法不會(huì)除以遠(yuǎn)小于0的數(shù),平方根分母中通常加上一個(gè)很小的值ε=10^?8,該參數(shù)正常不用調(diào)參。
五、Adam 優(yōu)化算法(Adaptive Moment Estimation)
Adam 優(yōu)化算法就是融合了 Momentum 和 RMSprop 算法的一種經(jīng)受住考驗(yàn)的通用深度學(xué)習(xí)優(yōu)化算法,在很多網(wǎng)絡(luò)中都很有效。需要進(jìn)行指數(shù)加權(quán)平均的偏差修正。
其中的超參數(shù)(hyper parameter):
α :需要進(jìn)行調(diào)參;
β1:通常使用缺省值0.9,用于dw的加權(quán)平均;
β2:論文作者推薦使用0.999,用于dw2的加權(quán)平均值;
ε:推薦使用10^?8。
六、學(xué)習(xí)率衰減(learning rate decay)
學(xué)習(xí)率衰減:訓(xùn)練過程中逐漸減小 learning rate
下圖藍(lán)色線表示訓(xùn)練中α固定的梯度下降,綠色線表示α逐漸減小的梯度下降:
使用Mini-batch訓(xùn)練且learning rate 固定時(shí),梯度下降到達(dá)最小值點(diǎn)附近后,因?yàn)椴煌琤atch存在一定的噪聲,使得不會(huì)精確收斂,而是會(huì)在最小值點(diǎn)較大的范圍內(nèi)波動(dòng)。但是如果我們使用學(xué)習(xí)率衰減,逐漸減小learning rate,開始的時(shí)學(xué)習(xí)速率還是比較快,隨著迭代次數(shù)增多α逐漸減小,最終會(huì)在最小值附近的一塊更小的區(qū)域里波動(dòng)。
學(xué)習(xí)率衰減的幾種策略:
epoch表示完整的數(shù)據(jù)集,epoch_num表示訓(xùn)練整個(gè)數(shù)據(jù)集的次數(shù),α0表示初始的learning rate。
分段函數(shù):隔一段設(shè)置一個(gè)不同的 learning rate
七、局部最優(yōu)問題(local optimal)
左圖為三維 cost function, 右圖為高維的cost function 的一部分。
**局部最優(yōu)點(diǎn):**cost function 中這點(diǎn)的所有維的導(dǎo)數(shù)為0,即所有維都應(yīng)同時(shí)為凸函數(shù),或同時(shí)是凹函數(shù)。
**鞍點(diǎn):**cost function 中這點(diǎn)的某一維或某幾維的導(dǎo)數(shù)為0,這么叫是因?yàn)轭愃岂R鞍的最低點(diǎn)。
低維時(shí),cost function 有 local optimal 概率很高,但在高維時(shí)有 local optimal 概率就很低了,維度越高概率越低。所以高維時(shí)正常不用擔(dān)心出現(xiàn)局部最優(yōu)的情況,而是應(yīng)該考慮出現(xiàn)鞍點(diǎn)的情況,因?yàn)榘包c(diǎn)附近的某一維的梯度可能很小,迭代就會(huì)變慢,可以用Adam算法來處理。
總結(jié)
以上是生活随笔為你收集整理的吴恩达深度学习笔记6-Course2-Week2【优化算法】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux概述、基本命令
- 下一篇: mysql rsync复制,mysql复