直觀的理解:
Batch Size定義:一次訓(xùn)練所選取的樣本數(shù)偿衰。
Batch Size的大小影響模型的優(yōu)化程度和速度。同時其直接影響到GPU內(nèi)存的使用情況羽圃,假如你GPU內(nèi)存不大梯浪,該數(shù)值最好設(shè)置小一點(diǎn)。
為什么要提出Batch Size佛点?
在沒有使用Batch Size之前醇滥,這意味著網(wǎng)絡(luò)在訓(xùn)練時,是一次把所有的數(shù)據(jù)(整個數(shù)據(jù)庫)輸入網(wǎng)絡(luò)中超营,然后計(jì)算它們的梯度進(jìn)行反向傳播鸳玩,由于在計(jì)算梯度時使用了整個數(shù)據(jù)庫,所以計(jì)算得到的梯度方向更為準(zhǔn)確演闭。但在這情況下不跟,計(jì)算得到不同梯度值差別巨大,難以使用一個全局的學(xué)習(xí)率米碰,所以這時一般使用Rprop這種基于梯度符號的訓(xùn)練算法窝革,單獨(dú)進(jìn)行梯度更新。
在小樣本數(shù)的數(shù)據(jù)庫中吕座,不使用Batch Size是可行的虐译,而且效果也很好。但是一旦是大型的數(shù)據(jù)庫吴趴,一次性把所有數(shù)據(jù)輸進(jìn)網(wǎng)絡(luò)漆诽,肯定會引起內(nèi)存的爆炸。所以就提出Batch Size的概念锣枝。
Batch Size設(shè)置合適時的優(yōu)點(diǎn):
1厢拭、通過并行化提高內(nèi)存的利用率。就是盡量讓你的GPU滿載運(yùn)行惊橱,提高訓(xùn)練速度蚪腐。
2、單個epoch的迭代次數(shù)減少了税朴,參數(shù)的調(diào)整也慢了回季,假如要達(dá)到相同的識別精度家制,需要更多的epoch。
3泡一、適當(dāng)Batch Size使得梯度下降方向更加準(zhǔn)確颤殴。
Batch Size從小到大的變化對網(wǎng)絡(luò)影響
1、沒有Batch Size鼻忠,梯度準(zhǔn)確涵但,只適用于小樣本數(shù)據(jù)庫
2、Batch Size=1帖蔓,梯度變來變?nèi)グ粒浅2粶?zhǔn)確,網(wǎng)絡(luò)很難收斂塑娇。
3澈侠、Batch Size增大,梯度變準(zhǔn)確埋酬,
4哨啃、Batch Size增大,梯度已經(jīng)非常準(zhǔn)確写妥,再增加Batch Size也沒有用
注意:Batch Size增大了拳球,要到達(dá)相同的準(zhǔn)確度,必須要增大epoch珍特。
GD(Gradient Descent):就是沒有利用Batch Size祝峻,用基于整個數(shù)據(jù)庫得到梯度,梯度準(zhǔn)確次坡,但數(shù)據(jù)量大時呼猪,計(jì)算非常耗時,同時神經(jīng)網(wǎng)絡(luò)常是非凸的砸琅,網(wǎng)絡(luò)最終可能收斂到初始點(diǎn)附近的局部最優(yōu)點(diǎn)宋距。
SGD(Stochastic Gradient Descent):就是Batch Size=1,每次計(jì)算一個樣本症脂,梯度不準(zhǔn)確谚赎,所以學(xué)習(xí)率要降低。
————————————————
版權(quán)聲明:本文為CSDN博主「Star_ACE」的原創(chuàng)文章诱篷,遵循CC 4.0 BY-SA版權(quán)協(xié)議壶唤,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_34886403/article/details/82558399