size=m:退化為batch,當訓練樣本過多時,單次迭代需要處理過多的訓練樣本
size=1:隨機梯度下降法,產生大量雜訊(但通過減小學習率,雜訊可以減少),缺點是失去了向量化帶來的加速。
使用mini-size,每次遍歷所有樣本時,可以進行m/size次梯度下降
選取原則:
訓練集較小時(<2000),直接使用batch梯度下降$v_=\beta v_+(1-\beta)\theta_$一般的mini-batch大小為64-512
(另:選取大小要與cpu/gpu記憶體相符
修正偏差:為了解決最開始迭代時,$v_$低於真實值,額外引入乙個偏差修正
如圖,為了使得每次梯度下降時的走向不像藍線那樣有很多的縱向分量,而希望走向像紅線一樣更多的是橫向分量,我們引入了momentun梯度下降
作者建議一般將引數$\beta$設為0.9
的典型值是0.999。公式中還有乙個ϵ
'>
ϵ,這是乙個很小的數,典型值是10^-810−8
。adam演算法相當於先把原始梯度做乙個指數加權平均,再做一次歸一化處理,然後再更新梯度值。β1
=0.9,β
2=0.999,ϵ
=10−8
'>只需調整不用的$\alpha$
1.mini-batch
shuffling and partitioning.建立mini-batch通常需要洗牌和劃分兩個步驟
2. momentum
初始化:$v_^,v_^$
迭代:3.adam
初始化:$v_^,v_^,s_^,s_^$
迭代:
演算法筆記習題2 2
編寫乙個c程式,要求在螢幕上輸出一下一行資訊。this is my first c program 無this is my first c program 無this is my first c program include int main 編寫乙個c語言程式,輸出以下資訊 very good ...
2 2 貪心演算法
貪心演算法就是遵循某種規則,不斷貪心的選取當前最優策略的演算法設計方法。有1元 5元 10元 50元 100元 500元的硬幣各c1,c5,c10,c50,c100,c500枚。現在要用這些硬幣來支付a元,最少需要多少枚硬幣?假設本題至少存在一種支付方案。限制條件 0 c1,c5,c10,c50,c...
演算法22 全組合
給定乙個陣列,輸出其全組合 例如 123 輸出 1,2,3,12,13,23,123 解法一 對於n位資料,考慮每一位對於組合結果的影響,對於每一位可以選擇取或者不取。一共有power 2,n 中取法,當全部不取時,對於最後結果沒有意義,因此最終取法共有power 2,n 1.可以利用二進位制數字從...