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