走入五彩斑斕神經網路世界:關於梯度下降、RMSprop優化器的研究
1.引言
大部分超引數都可以用來優化神經網路的效能。但並不是所有超引數都能"擔此重任"。優化神經網路效能需要選擇合適的優化器。而本文將為你帶來兩個最常用的優化器。
2.梯度下降優化器
梯度下降可能是最流行、最廣泛的優化器。它是一種簡單有效的神經網路優化方法。所有優化器的目標都是使成本函式達到最小值的情況下同時達到全域性最小值。如果你想構建一個三維的成本函式,它將類似於下圖所示。
每一次我們找到梯度,更新權值和偏差值時,我們就更接近最優值。在我們開始訓練神經網路之前,我們的成本會很高,就好比上圖所示的A點。通過神經網路的每一次迭代訓練,成本會逐步降低,並接近上圖中B點所表示的全域性最小值。下圖將提供一個更直觀的解答,幫助我們訓練以達到全域性最小值。
我們的成本函式並不總是像上影像所描述的那樣"平滑"。很多時候,這些成本函式是非凸的。非凸函式帶來的問題是,你有可能會陷入區域性最小值,而不會收斂到全域性最小值。如下圖所示。
從上面的影像中可以看到,圖中有兩個最小值,其中只有一個是全域性最小值。我們的神經網路很有可能會錯過全域性最小值,而收斂到區域性最小值。限制網路收斂的方法有:改變學習率或使用動量等。
3.學習率
學習率是梯度下降中不可缺少的部分,也是其他優化器的重要因素。讓我們用一個類比來更好地解釋學習率。假設成本函式是一個坑,你從坑頂開始,你的目標是到達坑的底部。你可以把學習率看作你要到達底部採取的步驟。如果你選擇一個很大的值作為學習率,你就必須對權值和偏差值進行較大的改變。也就是說,你會直接"跳到"底部。
還有一種可能性,你將超越全域性最小值(即底部),最終進入坑的另一邊。很明顯,有了過高的學習率,你就無法收斂到全域性最小值,而是在全域性最小值附近"徘徊"。如果你選擇一個較小值作為學習率,你的演算法會需要更長的時間收斂。也就是說你會"小步慢跑"到底部。另外,如果成本函式是非凸的,那麼你的演算法可能會陷入區域性最小值。學習率的選擇沒有訣竅,你得根據實驗和直覺進行選擇。
4.動量梯度下降
通常情況下,動量梯度下降演算法比標準梯度下降演算法收斂速度更快。在標準梯度下降演算法中,你需要在某個方向上採取較大的步,而在另一個方向上採取較小的步,這無疑會減緩演算法的速度。
在下面所示的影像中,你可以看到標準梯度下降在y方向上採取更大的步,在x方向上採取更小的步。這時候,你或許會想如果我們的演算法能夠減少在y方向上所採取的步,並將步的方向集中在x方向,我們的演算法就會很快收斂。
而這也正是動量梯度下降演算法的優勢之處。它限制了一個方向的振盪,這樣我們的演算法就能更快地收斂。而且,由於y方向上步的數量有限,我們可以設定較高的學習率。
5.RMSprop優化器
RMSprop優化器的原理類似於動量梯度下降演算法。RMSprop優化器限制了垂直方向上的振盪,使我們的演算法可以在水平方向上採取更大的步,進行更快地收斂。RMSprop優化器和梯度下降優化器的區別主要在於它們的計算方法。下面是關於RMSprop優化器和動量梯度下降演算法的方程(動量的值用beta表示,通常設定為0.9)。
有時候v_dw的值可能會非常接近0,我們的權值可能會"爆炸"。為了防止梯度上升,我們在分母中加入了一個引數"ε"。
6.結語
優化器是神經網路的關鍵部分,瞭解它們的原理將有助於你的工作。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31509949/viewspace-2156472/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何在命令列中顯示五彩斑斕的“黑”命令列
- 詳解神經網路中反向傳播和梯度下降神經網路反向傳播梯度
- 擺脫五彩斑斕的黑,成為七彩程式設計師!程式設計師
- 五彩斑斕-阿里iconfont實戰全戰略Web端(Html,Vue,React)阿里WebHTMLVueReact
- 關於神經網路的討論神經網路
- 如何優化深度神經網路?優化神經網路
- TensorFlow神經網路優化策略神經網路優化
- AI在用 | 發現一個AI調色盤,還真整出了「五彩斑斕的黑」AI
- 優化基於FPGA的深度卷積神經網路的加速器設計優化FPGA卷積神經網路
- 優化器:SGD > Momentum > AdaGrad > RMSProp > Adam優化
- 量子神經網路:人工智慧研究的新正規化神經網路人工智慧
- 基於神經網路的Alpha Fold改變了生物世界神經網路
- RNN神經網路產生梯度消失和梯度爆炸的原因及解決方案RNN神經網路梯度
- 梯度下降優化演算法概述梯度優化演算法
- 構建和優化深度學習模型(神經網路機器識圖)優化深度學習模型神經網路
- 卷積神經網路表徵視覺化研究綜述卷積神經網路視覺化
- 關於神經網路:你需要知道這些神經網路
- 基於Keras的關聯神經網路CorrNet綜合指南Keras神經網路
- 神經網路初始化神經網路
- 神經網路原理的視覺化神經網路視覺化
- 關於深度神經網路(DNN)的泛化能力以及標籤噪聲學習神經網路DNN
- 關於 RNN 迴圈神經網路的反向傳播求導RNN神經網路反向傳播求導
- 粒子群優化演算法對BP神經網路優化 Matlab實現優化演算法神經網路Matlab
- 基於神經網路的OCR識別神經網路
- 基於卷積神經網路的建築圖紙識別研究方向卷積神經網路
- 神經網路:numpy實現神經網路框架神經網路框架
- 神經網路進化能否改變機器學習?神經網路機器學習
- 神經網路神經網路
- 基於numpy的前饋神經網路(feedforwardneuralnetwork)神經網路Forward
- 【深度學習篇】--神經網路中解決梯度彌散問題深度學習神經網路梯度
- 《神經網路的梯度推導與程式碼驗證》之CNN的前向傳播和反向梯度推導神經網路梯度CNN
- 《神經網路的梯度推導與程式碼驗證》之LSTM的前向傳播和反向梯度推導神經網路梯度
- 吳恩達《優化深度神經網路》課程筆記(2)– 優化演算法吳恩達優化神經網路筆記演算法
- 設計一個基於 LSTM 神經網路的文字分類器神經網路文字分類
- 【深度學習篇】--神經網路中的卷積神經網路深度學習神經網路卷積
- 機器學習整理(神經網路)機器學習神經網路
- 基於深度神經網路的人臉識別相關問題神經網路
- 關於訓練神經網路的諸多技巧Tricks(完全總結版)神經網路