自適應(yīng)學(xué)習(xí)速率
上篇文章講梯度下降時提到過學(xué)習(xí)速率 Adagrad就是針對這一問題提出的,自適應(yīng)地為各個參數(shù)分配不同學(xué)習(xí)率的算法。其公式如下: Adagrad
學(xué)習(xí)速率 也即,對于所有的參數(shù)來講,學(xué)習(xí)速率都是越來越小的。而且,偏導(dǎo)越小,學(xué)習(xí)速率減小的就越慢。 第一條很好理解,第二條要簡單解釋一下,如果偏導(dǎo)很小,說明本來的更新速率就很小,如果再將學(xué)習(xí)速率這個參數(shù)以一個較快的速度減小,那這個維度下的總參數(shù)更新速率就會變的過慢。 當(dāng)然Adagrad也不是唯一的算法,擁有類似功能的還有RMSprop、Adadelta、AdaSecant、Adam等,而且一般而言Adam是目前的最優(yōu)選擇。 Momentum我們考慮這樣一個問題,如果單純的只靠梯度來作為權(quán)重更新的唯一依據(jù),會出現(xiàn)什么樣的問題,如下圖所示: 當(dāng)梯度非常小,也即曲面在對應(yīng)維度上非常平緩時,權(quán)重的更新會變得相當(dāng)慢;在鞍點,也即偏導(dǎo)數(shù)為0的點,該維度權(quán)重會停止更新;而且也很容易停留在局部最小值而達不到全局最小值。 Momentum是沖量的意思,不過我們可以簡單的把它理解為慣性,把梯度下降看做一個小球沿曲線滑落的過程,這樣即便在梯度為零的點,也能以一個較快的速度進行梯度下降,甚至還有可能幫助損失函數(shù)突破局部最小值的限制,到達全局最小值。 前面所提到的表現(xiàn)優(yōu)秀的Adam算法,就相當(dāng)于RMSProp (高級版Adagrad) + Momentum。 作者:我偏笑_NSNirvana 鏈接:http://www.jianshu.com/p/df9a4473d6d4 來源:簡書 著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。 |
|