吳恩達《深度學習》第二課第二週筆記

2021-08-21 06:41:54 字數 2240 閱讀 6933

改善深層神經網路之優化演算法

一、mini-batch梯度下降法

機器學習的應用是乙個高度依賴經驗的過程,需要大量的迭代,需要訓練大量的模型,所以需要優化演算法才能快速訓練模型。

使用mini-batch的意義:當訓練樣本集非常巨大時,比如500w個,使用向量化處理資料時每次處理如此巨大的資料會使訓練過程非常緩慢。因此,我們可以分批的處理資料,以達到加快訓練的目的。劃分mini-batch後的x(i),y(i)轉化成x,y.

二、理解mini-batch梯度下降法

使用mini-batch時,其cost function曲線是一條波動下降的曲線。

三種梯度下降法的比較:(1)如果size=m,則是batch梯度下降;(2)如果size=1,則是隨即梯度下降法;(3)如果1 < size

3.mini-batch大小的選擇(超引數)。(1)小訓練集(<2000):適合使用batch梯度下降;(2)典型mini-batch的大小為:64, 128, 526, 512,1024(不常用),應與cpu/gpu的記憶體相匹配。

三、指數加權平均(數學原理)

該方法在深層神經網路中主要是用來優化w,b,dw,db等引數。

四、理解指數加權平均

計算資料的指數加權平均值目的是使用較小的記憶體來計算資料的平均值。

五、指數加權平均的修正偏差

修正偏差可以在使用指數加權平均進行學習的早期階段能夠保證估測更準確,方法是讓指數加權平均值除以係數(1-beta^t)

六、動量(momentum)梯度下降法

對於碗狀曲線要找到極小值,使用梯度下降法時,迭代曲線會經歷乙個在縱軸上下波動、橫軸逐步向最小值逼近的過程,為了優化演算法,我們更希望在縱軸上波動減小,這樣可以加快逼近的速度,就像從山頂滾落的小球,動量梯度下降法(主要作用是加快梯度下降)使小球在迭代過程中獲得乙個加速度,跟獲得動量類似,這也是該方法名字的由來。

在神經網路中,由於迭代次數通常會很大,因此使用momentum時不需要進行偏差修正。

七、rmsprop(root mean square prop)

八、adam優化演算法

本質:momentum+rmsprop

演算法中超參的選擇:alpha:需要除錯;beta1: 0.9(default);beta2:0.999(default);epsilon:10^-8(無關緊要)

adam:adaptive moment estimation,其中beta1用於計算dw,稱為第一矩(moment 1);beta2用於計算(dw)^2,稱為第二矩(moment 2)。

九、學習率衰減

alpha = alpha_zero * ( 1 / (1 + decay_rate * epoch_num))

alpha = alpha_zero * 0.95 ^epoch_num

alpha = alpha_zero * k / np.sqrt(epoch_num )

alpha = alpha_zero * k / np.sqrt(t ) t: mini-batch number

離散學習率,逐次減半

學習率確實對演算法訓練影響很大,但並不是需要最先考慮的優化演算法。

十、區域性最優問題

在高維度的問題中,通常不存在各個維度都是凸或凹的,通常會遇到鞍點(saddle point)

我們在訓練很大的神經網路時,不需要擔心會困在極差的區域性最優中,因為有很多維度影響著這個最優點,最終會擺脫出來。

問題是如何盡快的走出平穩段(在其中很多維度的導數為0),此時需要應用momentum,rmsprop,adam演算法。

吳恩達機器學習筆記 第二週

h x 0 1 x1 2x2 3x3 4x 4h theta x theta 0 theta 1x 1 theta 2x 2 theta 3x 3 theta 4x 4 h x 0 1 x1 2 x 2 3 x3 4 x4 為了表示方便,我們定義乙個單純為了計算方便的特徵,也就是x0 1x 0 1 ...

深度學習第二課 Softmax回歸

與第一課線性回歸 linear regression 不同,softmax回歸針對的是多分類的情況,即labels不再僅有0,1兩個分類。softmax通過指數運算將最後的分類轉為0 1間的概率,在終於類別概率中,數值大的為 概率。與線性回歸損失不同,softmax函式計算損失採用的是交叉熵損失 c...

動手學深度學習 第二課

基本概念 讀入文字 分詞 建立字典 將詞轉為索引 將文字按段落讀取,再將文字轉為小寫,使用正則的方法,消除其中的非字母的字元,得到句子。import re with open 1.txt r as f print re.sub a z line.strip lower for line in f 分...