本週主要學習優化演算法來加快神經網路的訓練過程。機器學習的應用是乙個高度依賴經驗的過程,伴隨著大量迭代,需要訓練諸多模型才能找到合適的那乙個。所以,優化演算法能夠幫助你快速訓練模型。深度學習沒有在大資料領域發貨最大的效果,我們可以利用乙個巨大的資料集來訓練神經網路,而在巨大的資料集基礎上進行訓練速度很慢。所以,使用快速的優化演算法會大大提高效率。
假如我們有大量的樣本,可能是500萬個,如果採用batch梯度下降法(就是一次性處理全部訓練集,名字就是這麼叫的,只能接受),需要一次訓練500萬個樣本然後實現一次梯度下降,重複進行,這樣速度很慢。而mini-batch梯度下降法是將樣本數劃分成5000個小的mini-batches,每個mini-batch可以劃分為1000個樣本,用符號
x x
和y y
來表示,這樣就可以同時處理單個的mini-batch,而不是處理全部的x和y訓練集。
怎麼進行mini-batch梯度下降呢?過程其實和整個資料集是一樣的,只不過mini-batch分解成很多個mini-batch而已。
for t = 1,……5000
forward prop on
x x
z[1]=w[
1]x+
b[1]
z [1
]=w[
1]x+
b[1]
a[1]=g[
1](z
[1])
a [1
]=g[
1](z
[1])
… a[
l]=g
[l](
z[l]
) a[l
]=g[
l](z
[l])
compute cost j=
11000∑l
i=1l
(y^(
i),y
(i))
+λ2∗
1000∑l
i=1∥
w[t]
∥2f j=1
1000∑i
=1ll
(y^(
i),y
(i))
+λ2∗
1000∑i
=1l‖
w[t]
‖f2backprop to compute grandients
update parameters
mini-batch在迭代的過程中不總是下降的,雖然是下降趨勢,但存在很多雜訊。雜訊存在的原因是可能某個t成本很低而另乙個t成本較高。
決定mini-batch的乙個變數是size。乙個極端情況是size=m,這個時候就是batch梯度下降法,這種演算法每次迭代時間很長。另乙個極端情況就是size=1,叫做隨機梯度下降法(stochastic gradient decent),每個樣本都是乙個mini-batch,這種演算法每次只處理乙個樣本,喪失了向量化帶來的加速,效率非常低。實際上,我們要選擇的mini-batch在兩者之間。乙個不大不小的mini-batch既可以利用向量化帶來的加速,又不用等待整個樣本處理完就可以繼續下一步的工作。
既然mini-batch是中間值,那麼這個中間值是多少呢?下面給出幾個指導原則。
神經網路演算法學習 mini batch
batch size 批尺寸 是機器學習中乙個重要引數,涉及諸多矛盾,下面逐一展開。batch 的選擇,首先決定的是下降的方向。如果資料集比較小,完全可以採用全資料集 full batch learning 的形式,這樣做至少有 2 個好處 其一,由全資料集確定的方向能夠更好地代表樣本總體,從而更準...
零基礎 神經網路優化之mini batch
一 前言 回顧一下前面講過的兩種解決過擬合的方法 1 l0 l1 l2 在向前傳播 反向傳播後面加個小尾巴 2 dropout 訓練時隨機 刪除 一部分神經元 本篇要介紹的優化方法叫mini batch,它主要解決的問題是 實際應用時的訓練資料往往都太大了,一次載入到電腦裡可能記憶體不夠,其次執行速...
優化演算法1 模擬退火演算法思想解析
1.演算法簡介 模擬退火演算法得益於材料的統計力學的研究成果。統計力學表明材料中粒子的不同結構對應於粒子的不同能量水平。在高溫條件下,粒子的能量較高,可以自由運動和重新排列。在低溫條件下,粒子能量較低。如果從高溫開始,非常緩慢地降溫 這個過程被稱為退火 粒子就可以在每個溫度下達到熱平衡。當系統完全被...