吳恩達Deeplearning.ai 知識點梳理(course 2,week 2)

本週內容主要講的是加速訓練優化。

Mini-Batch

Mini-Batch主要是爲了解決訓練神經網絡時如下問題:

  • 一方面,神經網絡需要大量的數據,計算量就比較大。如果每次計算數百萬個樣本,然後得到一個梯度,然後下降一步,那麼整個過程就會很慢。
  • 另一方面,深度學習需要大量嘗試,所以如果每做一次訓練,速度很慢,那麼調參過程就很慢了。

Mini-Batch如何做呢?

  1. 例如數據集有5,000,000個樣本,將數據集分成M個子集,每個子集有N個sample,例如5000個子集,每個子集有1000個樣本。
  2. 直接對這5000個子集循環做Forward Propagation和Backward Propagation,然後更新Wb 。相當於每次用1000個樣本做訓練。

Mini-Batch的特性

Mini-Batch Feature

  如上圖所示,對於整個Batch Gradient Descent,Cost Function會一直下降。而對於Mini-Batch GD來說,則是會有這種震動。這種震動中,不好理解的是爲什麼cost function會往上跑。Dr Ng的解釋是對於訓練來說,有的batch比較easy,有的batch比較hard。但是我的觀點是,cost function其實是數據的函數,那麼也就是說,不同的數據,cost function並不一樣,雖說整體數據分佈是一樣的,但是畢竟還是有細微的差別。那麼用上一組batch得出來的梯度方向更新後的參數,帶入下一組batch裏,很可能cost function會變大,因爲此cost function非彼cost function。舉例來說,比方說cost function是y=f(x)=|a|x2 ,這個a是要優化的參數,現在x 數據是5 ,然後a3y 就是75 。迭代了一次,a 變成2y50 。現在換了x ,變成了7 ,結果y=2×72=98 ,結果cost function不就大了麼。但是由於數據整體分佈是一致的,所以整體趨勢是向下的。如果我們畫出來cost function的等高線圖就會發現,如果是Batch GD,整個路徑就是很平穩的,SGD的抖動會很大而且最終會在optima附近一直抖動,MiniBatch就好很多了,但是也會抖動。

  然後是MiniBatch大小的選擇,一般是128、256、512這種2的冪次,同時也不要大於內存或者顯存。

Gradient Descent with Momentum

  動量梯度下降會比一般的GD要快。主要是如果我們採用比較大的learning_rate很可能會出現如下的震盪情況。這是因爲我們其實本來是想在水平方向上大一點learning_rate,而數值方向上小一點learning_rate,但是沒法做到對每一個維度都配置一個learning_rate。那麼如果我們將每一次的dW/db進行一個指數滑動平均得到最終的結果,就可以將震盪平均掉,而相同方向則得到放大。如下圖所示。
這裏寫圖片描述

RMS Prop

  RMS Prop是對梯度採用指數平均的平方平均數做了一個歸一化,這樣就相當於各個維度上的梯度大小在一個尺度上,這樣我們即使使用一個比較大的learning_rate,也不會出現太過分的震盪。
RMS Prop

Adam

   Adaptive Moment Estimation是一個將RMS Prop和Momentum的結合,如下圖所示:
Adam
其實就是使用了Momentum的指數平均的dw/db,然後再將其用RMSProp的方式做歸一化。

  在深度學習的發展上,曾提出來很多方法,但是都是只能在某些問題上管用,而RMSProp和Adam是在很多地方都管用的。

Learning_rate decay

  就是隨着迭代次數的增加,越來越接近極值點的時候,就採用更小的learning_rate。有如下幾種:
Learning_rate decay
反比例,指數衰減,平方根反比例,離散階梯衰減等。不過一般learning_rate都是先fix一個,等到最後在調的。

Local optima

  在低維空間裏,確實容易出現人們直覺的那樣的local optima,但是對於深度學習而言,更多的是鞍點,因爲要求在一個點上所有維度都是convex的這事的概率就很低,例如一個20000個參數的cost function,出現一個local optima的概率是220000 ,所以問題不在local optima上,問題在於plateaus會減慢學習(優化的速率)
Problem of Plateuas
所以使用比較複雜的優化算法,比如Adam,就可以幫助改善這個問題。
  目前其實人們對高維空間的認識還在研究中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章