理解小批量梯度下降
指數加權平均
指數加權平均修正偏差
adagrad
rmsprop
動量梯度下降法
一共500 000個資料,每批資料1000個,需要5000批,
0.1# 學習率
n_iterations =
1000
m =100
theta = np.random.randn(2,
1)# 隨機初始值
for iteration in
range
(n_iterations)
: gradients =
2/m * x_b.t.dot(x_b.dot(theta)
- y)
theta = theta - eta * gradiens
theta更新公式
另一方面,由於它的隨機性,與批量梯度下降相比,其呈現出更多的不規律性:它到達最小值不是平緩的下降,損失函式會忽高忽低,只是在大體上呈下降趨勢。隨著時間的推移,它會非常的靠近最小值,但是它不會停止在乙個值上,它會一直在這個值附近擺動。因此,當演算法停止的時候,最後的引數還不錯,但不是最優值。
當損失函式很不規則時(如圖 4-6),隨機梯度下降演算法能夠跳過區域性最小值。因此,隨機梯度下降在尋找全域性最小值上比批量梯度下降表現要好。
雖然隨機性可以很好的跳過區域性最優值,但同時它卻不能達到最小值。解決這個難題的乙個辦法是逐漸降低學習率。 開始時,走的每一步較大(這有助於快速前進同時跳過區域性最小值),然後變得越來越小,從而使演算法到達全域性最小值。 這個過程被稱為模擬退火,因為它類似於熔融金屬慢慢冷卻的冶金學退火過程。 決定每次迭代的學習率的函式稱為learning schedule。 如果學習速度降低得過快,你可能會陷入區域性最小值,甚至在到達最小值的半路就停止了。 如果學習速度降低得太慢,你可能在最小值的附近長時間擺動,同時如果過早停止訓練,最終只會出現次優解。
n_epochs =
50 t0, t1 =5,
50#learning_schedule的超引數
deflearning_schedule
(t):
return t0 /
(t + t1)
theta = np.random.randn(2,
1)for epoch in
range
(n_epochs)
:for i in
range
(m):
random_index = np.random.randint(m)
xi = x_b[random_index:random_index+1]
yi = y[random_index:random_index+1]
gradients =
2* xi.t.dot(xi,dot(theta)
-yi)
eta = learning_schedule(epoch * m + i)
theta = theta - eta * gradiens
小批量梯度下降在引數空間上的表現比隨機梯度下降要好的多,尤其在有大量的小型例項集時。作為結果,小批量梯度下降會比隨機梯度更靠近最小值。但是,另一方面,它有可能陷在區域性最小值中(在遇到區域性最小值問題的情況下,和我們之前看到的線性回歸不一樣)。 圖4-11顯示了訓練期間三種梯度下降演算法在引數空間中所採用的路徑。 他們都接近最小值,但批量梯度的路徑最後停在了最小值,而隨機梯度和小批量梯度最後都在最小值附近擺動。 但是,不要忘記,批次梯度需要花費大量時間來完成每一步,但是,如果你使用了乙個較好的learning schedule,隨機梯度和小批量梯度也可以得到最小值。
隨機梯度下降永遠不會收斂,一直在最小值附近波動,使用減小學習率可以改善雜訊,但有一缺點,會失去所有向量化帶給你的加速,因為每次只處理乙個樣本。
天的平均值?b越大,平均的天數越多,則曲線越平滑
理想是綠色的線,但是實際畫的是紫色的線,發現前期偏差會更大,因為最開始我們設定v0=0,如圖中左半部分所示,導致偏差,現在我們不用vt,用\(\frac\),我們就可以修正偏差,並且隨著t(天數的增加),bt會逐漸趨向於0,最終擬合綠色那條線可以很好
從訓練開始時累計梯度平方會導致有效學習率過早和過量的減少adagrad在某些深度學習模型上效果不錯,但不是全部
李巨集毅老師ppt
加入動量後的梯度更新公式
TendorFlow 深層神經網路優化
深層神經網路的優化 深度學習兩個非常重要的性質 多層和非線性 1 線性模型的侷限性 只通過線性變換,任意層的全連線神經網路和單層的神經網路的表達能力沒有什麼區別,而且他們都只是線性模型。然而線性模型解決的問題是有限的。這就是線性模型最大的侷限性。2 啟用函式來去線性化 如果每乙個神經元的輸出通過乙個...
神經網路的認識(二)深層神經網路
損失函式 神經網路優化演算法 神經網路進一步優化 深層學習有兩個非常重要的特性 多層和非線性 線性模型的侷限性,就是任意線性模型的組合仍然還是線性模型。所以引出啟用函式,經過啟用函式變換完的輸出就不再是線性的了。如果將每乙個神經元 也就是神經網路中的節點 的輸出通過乙個非線性函式,那麼整個神經網路的...
第二週 神經網路基礎
考慮以下兩個隨機數組a和b a np.random.randn 2,3 a.shape 2,3 b np.random.randn 2,1 b.shape 2,1 c a b c的維度是什麼?答 b 列向量 複製3次,以便它可以和a的每一列相加,所以 c.shape 2,3 考慮以下兩個隨機數組a和...