【deeplearning.ai】深度學習(4):優化神經網絡(2)

【deeplearning.ai】深度學習(4):優化神經網絡(2)

吳恩達老師DeepLearning.ai課程筆記
【吳恩達Deeplearning.ai筆記一】直觀解釋邏輯迴歸
【吳恩達deeplearning.ai筆記二】通俗講解神經網絡上
【吳恩達deeplearning.ai筆記二】通俗講解神經網絡下
深度網絡很差使?吳恩達老師帶你優化神經網絡(1)

想提升一個深層神經網絡的訓練效率,需從各個方面入手,優化整個運算過程,同時預防其中可能發生的各類問題。算法

本文涉及優化深層神經網絡中的幾種梯度降低法,梯度降低中的Momentum、RMSProp、Adam優化算法及學習率衰減,批標準化等內容。網絡

1梯度降低法之批梯度降低(BGD)


批梯度降低法(Batch Gradient Descent,BGD)是最經常使用的梯度降低形式,前面的邏輯迴歸及深層神經網絡的構建中所用到的梯度降低都是這種形式。其在更新參數時使用全部的樣原本進行更新,具體過程爲:
【deeplearning.ai】深度學習(4):優化神經網絡(2)機器學習

示例圖:
【deeplearning.ai】深度學習(4):優化神經網絡(2)ide

  • 優勢:最小化全部訓練樣本的損失函數,獲得全局最優解;易於並行實現。
  • 缺點:當樣本數目不少時,訓練過程會很慢。

2梯度降低法之隨機梯度降低法(SGD)


隨機梯度降低法(Stochastic Gradient Descent,SGD)與批梯度降低原理相似,區別在於每次經過一個樣原本迭代更新。其具體過程爲:函數

【deeplearning.ai】深度學習(4):優化神經網絡(2)
示例圖:
【deeplearning.ai】深度學習(4):優化神經網絡(2)學習

  • 優勢:訓練速度快。
  • 缺點:最小化每條樣本的損失函數,最終的結果每每是在全局最優解附近,不是全局最優;不易於並行實現。

3梯度降低法之小批量梯度降低法(MBGD)


小批量梯度降低法(Mini-Batch Gradient Descent,MBGD)是批量梯度降低法和隨機梯度降低法的折衷,對用 m 個訓練樣本,每次採用t ( 1 < t < m ) 個樣本進行迭代更新。具體過程爲:
【deeplearning.ai】深度學習(4):優化神經網絡(2)
其中,
【deeplearning.ai】深度學習(4):優化神經網絡(2)
而後,
【deeplearning.ai】深度學習(4):優化神經網絡(2)
示例圖:測試

【deeplearning.ai】深度學習(4):優化神經網絡(2)

樣本數 t 的值根據實際的樣本數量來調整,爲了和計算機的信息存儲方式相適應,可將 t 的值設置爲 2 的冪次。將全部的訓練樣本完整過一遍稱爲一個epoch。優化

4梯度降低優化方法之指數加權平均


指數加權平均(Exponentially Weight Average)是一種經常使用的序列數據處理方式,其計算公式爲:
【deeplearning.ai】深度學習(4):優化神經網絡(2)翻譯

給定一個時間序列,例如倫敦一年天天的氣溫值:
【deeplearning.ai】深度學習(4):優化神經網絡(2)
其中藍色的點表明了真實的數據值。3d

對於一個即時的溫度值,取權重值 β 爲 0.9 ,則有:
【deeplearning.ai】深度學習(4):優化神經網絡(2)

根據:
【deeplearning.ai】深度學習(4):優化神經網絡(2)
【deeplearning.ai】深度學習(4):優化神經網絡(2)
【deeplearning.ai】深度學習(4):優化神經網絡(2)
【deeplearning.ai】深度學習(4):優化神經網絡(2)

由此求得的值即獲得圖中的紅色曲線,它反應了溫度變化的大體趨勢。
【deeplearning.ai】深度學習(4):優化神經網絡(2)

當取權重值 β = 0.98 時,能夠獲得圖中更爲平滑的綠色曲線。而當取權重值 β = 0.5 時,獲得圖中噪點更多的黃色曲線。 β 越大至關於求取平均利用的天數就越多,曲線天然就會越平滑並且越滯後。

當進行指數加權平均計算時,第一個值 ν0 被初始化爲 0 ,這樣將在前期的運算用產生必定的誤差。爲了矯正誤差,須要在每一次迭代後用如下式子進行誤差修正:
【deeplearning.ai】深度學習(4):優化神經網絡(2)

5梯度降低優化方法之Momentum梯度降低


動量梯度降低(Gradient Descent with Momentum)是計算梯度的指數加權平均數,並利用該值來更新參數值。具體過程爲:
【deeplearning.ai】深度學習(4):優化神經網絡(2)
其中的動量衰減參數 β 通常取 0.9 。
【deeplearning.ai】深度學習(4):優化神經網絡(2)
進行通常的梯度降低將會獲得圖中的藍色曲線,而使用Momentum梯度降低時,經過累加減小了抵達最小值路徑上的擺動,加快了收斂,獲得圖中紅色的曲線。

當先後梯度方向一致時,Momentum梯度降低可以加速學習;先後梯度方向不一致時,Momentum梯度降低可以抑制震盪。

6梯度降低優化方法之RMSProp算法


RMSProp(Root Mean Square Prop,均方根支)算法在對梯度進行指數加權平均的基礎上,引入平方和平方根。具體過程爲:
【deeplearning.ai】深度學習(4):優化神經網絡(2)
其中的 ε = 10-8 ,用以提升數值穩定度,防止分母過小。

【deeplearning.ai】深度學習(4):優化神經網絡(2)

7梯度降低優化方法之Adam優化算法


Adam(Adaptive Moment Estimation,自適應矩估計)優化算法適用於不少不一樣的深度學習網絡結構,它本質上是將Momentum梯度降低和RMSProp算法結合起來。具體過程爲:
【deeplearning.ai】深度學習(4):優化神經網絡(2)
其中的學習率 α 須要進行調參,超參數 β1 被稱爲第一階矩,通常取 0.9 , β2 爲第二階矩,通常取 0.999 , ε 通常取 10-8 。

8學習率衰減


隨着時間推移,慢慢減小學習率 α 的大小,在初期 α 較大時,邁出的步長較大,能以較快的速度進行梯度降低,然後期逐步減少 α 的值,減少步長,有助於算法的收斂,更容易接近最優解。

經常使用到的幾種學習率衰減方法有:
【deeplearning.ai】深度學習(4):優化神經網絡(2)
其中的decay_rate爲衰減率,epoch_num爲將全部的訓練的epoch數。

9批標準化


批標準化(Batch Normalization,BN)和以前的數據集標準化相似,是將分散的數據進行統一的一種作法。具備統一規格的數據,能讓機器更容易學習到數據中的規律。

對於含有 m 個節點的某一層神經網絡,對 z 進行批標準化操做的步驟爲:
【deeplearning.ai】深度學習(4):優化神經網絡(2)
其中的 γ、β 並非超參數,而是兩個須要學習的參數,神經網絡本身去學着使用和修改這兩個擴展參數。這樣神經網絡就能本身慢慢琢磨出前面的標準化操做到底有沒有起到優化的做用,若是沒有起到做用,就使用 γ 和 β 來抵消一些以前進行過的標準化的操做。例如當
【deeplearning.ai】深度學習(4):優化神經網絡(2)
就抵消掉了以前的正則化操做。
【deeplearning.ai】深度學習(4):優化神經網絡(2)
【deeplearning.ai】深度學習(4):優化神經網絡(2)
【deeplearning.ai】深度學習(4):優化神經網絡(2)

當前的得到的經驗沒法適應新樣本、新環境時,便會發生「Covariate Shift」現象。對於一個神經網絡,前面權重值的不斷變化就會帶來後面權重值的不斷變化,批標準化減緩了隱藏層權重分佈變化的程度。採用批標準化以後,儘管每一層的 z 仍是在不斷變化,可是它們的均值和方差將基本保持不變,這就使得後面的數據及數據分佈更加穩定,減小了前面層與後面層的耦合,使得每一層不過多依賴前面的網絡層,最終加快整個神經網絡的訓練。

批標準化還有附帶的有正則化的效果:當使用小批量梯度降低時,對每一個小批量進行批標準化時,會給這個小批量中最後求得的 z 帶來一些干擾,產生相似於DropOut的正則化效果,但效果不是很顯著。當這個小批量的數量越大時,正則化的效果越弱。

須要注意的是,批標準化並非一種正則化的手段,正則化效果只是其順帶的小反作用。另外,在訓練時用到了批標準化,則在測試時也必須用到批標準化。

訓練時,輸入的是小批量的訓練樣本,而測試時,測試樣本是一個一個輸入的。這裏就又要用到指數加權平均,在訓練過程當中,求得每一個小批量的均值和方差加權平均值,以後將最終的結果保存並應用到測試過程當中。

10Softmax迴歸


Softmax迴歸模型是邏輯迴歸模型在多分類問題上的推廣,在多分類問題中,輸出y的值再也不是一個數,而是一個多維列向量,有多少種分類是就有多少維數。激活函數使用的是softmax函數:
【deeplearning.ai】深度學習(4):優化神經網絡(2)
損失函數爲:
【deeplearning.ai】深度學習(4):優化神經網絡(2)

注:本文涉及的圖片及資料均整理翻譯自Andrew Ng的Deep Learning系列課程,版權歸其全部。翻譯整理水平有限,若有不妥的地方歡迎指出。

【deeplearning.ai】深度學習(4):優化神經網絡(2)

推薦閱讀:

視頻 | 憋不出論文怎麼辦?不如試試這幾種辦法
【深度學習實戰】pytorch中如何處理RNN輸入變長序列padding
【機器學習基本理論】詳解最大後驗機率估計(MAP)的理解

歡迎關注公衆號學習交流~

【deeplearning.ai】深度學習(4):優化神經網絡(2)

相關文章
相關標籤/搜索