批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解
批量梯度下降(BGD)、隨機(jī)梯度下降(SGD)以及小批量梯度下降(MBGD)的理解
</h1><div class="clear"></div><div class="postBody">
??梯度下降法作為機(jī)器學(xué)習(xí)中較常使用的優(yōu)化算法,其有著三種不同的形式:批量梯度下降(Batch Gradient Descent)、隨機(jī)梯度下降(Stochastic Gradient Descent)以及小批量梯度下降(Mini-Batch Gradient Descent)。其中小批量梯度下降法也常用在深度學(xué)習(xí)中進(jìn)行模型的訓(xùn)練。接下來,我們將對這三種不同的梯度下降法進(jìn)行理解。
??為了便于理解,這里我們將使用只含有一個特征的線性回歸來展開。此時線性回歸的假設(shè)函數(shù)為:
??????(for j =0,1)
????}
??}
??優(yōu)點:
??(1)通過矩陣運算,每次在一個batch上優(yōu)化神經(jīng)網(wǎng)絡(luò)參數(shù)并不會比單個數(shù)據(jù)慢太多。
??(2)每次使用一個batch可以大大減小收斂所需要的迭代次數(shù),同時可以使收斂到的結(jié)果更加接近梯度下降的效果。(比如上例中的30W,設(shè)置batch_size=100時,需要迭代3000次,遠(yuǎn)小于SGD的30W次)
??(3)可實現(xiàn)并行化。
??缺點:
??(1)batch_size的不當(dāng)選擇可能會帶來一些問題。
??batcha_size的選擇帶來的影響:
??(1)在合理地范圍內(nèi),增大batch_size的好處:
????a. 內(nèi)存利用率提高了,大矩陣乘法的并行化效率提高。
????b. 跑完一次 epoch(全數(shù)據(jù)集)所需的迭代次數(shù)減少,對于相同數(shù)據(jù)量的處理速度進(jìn)一步加快。
????c. 在一定范圍內(nèi),一般來說 Batch_Size 越大,其確定的下降方向越準(zhǔn),引起訓(xùn)練震蕩越小。
??(2)盲目增大batch_size的壞處:
????a. 內(nèi)存利用率提高了,但是內(nèi)存容量可能撐不住了。
????b. 跑完一次 epoch(全數(shù)據(jù)集)所需的迭代次數(shù)減少,要想達(dá)到相同的精度,其所花費的時間大大增加了,從而對參數(shù)的修正也就顯得更加緩慢。
????c. Batch_Size 增大到一定程度,其確定的下降方向已經(jīng)基本不再變化。
??下圖顯示了三種梯度下降算法的收斂過程:
引用及參考:
[1] https://www.cnblogs.com/maybe2030/p/5089753.html
[2] https://zhuanlan.zhihu.com/p/37714263
[3] https://zhuanlan.zhihu.com/p/30891055
[4] https://www.zhihu.com/question/40892922/answer/231600231
寫在最后:本文參考以上資料進(jìn)行整合與總結(jié),文章中可能出現(xiàn)理解不當(dāng)?shù)牡胤?#xff0c;若有所見解或異議可在下方評論,謝謝!
若需轉(zhuǎn)載請注明:https://www.cnblogs.com/lliuye/p/9451903.html
<div id="blog_post_info">
好文要頂 關(guān)注我 收藏該文
LLLiuye關(guān)注 - 8
粉絲 - 54 +加關(guān)注 18 0
<div class="clear"></div>
<div id="post_next_prev"><a href="https://www.cnblogs.com/lliuye/p/9449190.html" class="p_n_p_prefix">? </a> 上一篇: <a href="https://www.cnblogs.com/lliuye/p/9449190.html" title="發(fā)布于 2018-08-09 15:23">Ubuntu下tensorboard的使用</a>
<br>
<a href="https://www.cnblogs.com/lliuye/p/9471231.html" class="p_n_p_prefix">? </a> 下一篇: <a href="https://www.cnblogs.com/lliuye/p/9471231.html" title="發(fā)布于 2018-08-13 21:49">學(xué)習(xí)率(Learning rate)的理解以及如何調(diào)整學(xué)習(xí)率</a>
posted @ 2018-08-10 11:57? LLLiuye? 閱讀(41513)? 評論(17)? 編輯? 收藏

總結(jié)
以上是生活随笔為你收集整理的批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奇异值分解与最小二乘问题 线性回归
- 下一篇: 路遥知马力——Momentum动量梯度