神經(jīng)網(wǎng)絡(luò)優(yōu)化算法吓蘑,通常有三種:小批量梯度下降法,隨機梯度下降法和批量梯度下降法。
?小批量梯度下降法
適用于訓練數(shù)據(jù)規(guī)模大磨镶,數(shù)據(jù)冗余溃蔫,
對于小批量梯度下降,批量越大琳猫,梯度下降越快伟叛、曲線越平緩
衍生出的optimizer都是通過改變學習率衰減和梯度方向變化來優(yōu)化。
對于學習率衰減脐嫂,一種是通過固定規(guī)則的學習率衰減哨颂,比如隨時間衰減的逆時衰減,指數(shù)衰減斩狱,自然指數(shù)衰減等心软。其他AdaGrad, RMSprop蕊爵,AdaDelta等是通過不同的參數(shù)設(shè)置不同學習率辉哥,自適應(yīng)調(diào)整學習率。
1. AdaGrad
累加參數(shù)梯度的平方攒射,
然后按照新的更新值計算學習率:
這樣某個參數(shù)累積梯度較小的時候醋旦,學習率就較大,反之學習率較谢岱拧饲齐;但是總之學習率是下降的。
該方法的問題在于咧最,迭代到一定次數(shù)后Gt總歸是很大的捂人,這時候如果沒有學習好的話,學習率也會很低矢沿,后面就很難學習了滥搭。
2. RMSprop
該方法對AdaGrad優(yōu)化,Gt從累加變成了移動平均:
其中beta通常取0.9捣鲸;這樣學習率不一定變小了瑟匆,梯度平方很小的時候也會變大。
梯度方向優(yōu)化:
小批量梯度下降法在批量很小的時候會出現(xiàn)震蕩的方式下降栽惶,梯度的移動平均可以有效解決這個問題愁溜,就是動量法
在第t次迭代時,使用負梯度的加權(quán)移動平均作為參數(shù)的更新方向
這樣在一段時間內(nèi)外厂,梯度變化方向不一致的時候參數(shù)變化小冕象,一致則變化大,減小震蕩
一般而言酣衷,在迭代初期交惯,梯度方法都比較一致,動量法會起到加速作用,可以更快地到達最優(yōu)點席爽。在迭代后期意荤,梯度方法會取決不一致,在收斂值附近震蕩只锻,動量法會起到減速作用玖像,增加穩(wěn)定性。從某種角度來說齐饮,當前梯度疊加上部分的上次梯度捐寥,一定程度上可以近似看作二階梯度。
Adam Adaptive Moment Estimation 自適應(yīng)動量估計
Adam是動量法和RMSprop的結(jié)合祖驱,梯度方向上使用移動平均的動量法握恳,學習率上使用移動平均的RMSprop。
開始t很小的時候乡洼,M和G都小于真正的均值和方差,所以要進行糾正
算法更新值為: