直觀的理解:
Batch Size定義:一次訓(xùn)練所選取的樣本數(shù)。
Batch Size的大小影響模型的優(yōu)化程度和速度。同時其直接影響到GPU內(nèi)存的使用情況,假如你GPU內(nèi)存不大,該數(shù)值最好設(shè)置小一點。
為什么要提出Batch Size?
在沒有使用Batch Size之前,這意味著網(wǎng)絡(luò)在訓(xùn)練時,是一次把所有的數(shù)據(jù)(整個數(shù)據(jù)庫)輸入網(wǎng)絡(luò)中,然后計算它們的梯度進行反向傳播,由于在計算梯度時使用了整個數(shù)據(jù)庫,所以計算得到的梯度方向更為準確。但在這情況下,計算得到不同梯度值差別巨大,難以使用一個全局的學(xué)習(xí)率,所以這時一般使用Rprop這種基于梯度符號的訓(xùn)練算法,單獨進行梯度更新。
在小樣本數(shù)的數(shù)據(jù)庫中,不使用Batch Size是可行的,而且效果也很好。但是一旦是大型的數(shù)據(jù)庫,一次性把所有數(shù)據(jù)輸進網(wǎng)絡(luò),肯定會引起內(nèi)存的爆炸。所以就提出Batch Size的概念。
Batch Size設(shè)置合適時的優(yōu)點:
1、通過并行化提高內(nèi)存的利用率。就是盡量讓你的GPU滿載運行,提高訓(xùn)練速度。
2、單個epoch的迭代次數(shù)減少了,參數(shù)的調(diào)整也慢了,假如要達到相同的識別精度,需要更多的epoch。
3、適當Batch Size使得梯度下降方向更加準確。
Batch Size從小到大的變化對網(wǎng)絡(luò)影響
1、沒有Batch Size,梯度準確,只適用于小樣本數(shù)據(jù)庫
2、Batch Size=1,梯度變來變?nèi)ィ浅2粶蚀_,網(wǎng)絡(luò)很難收斂。
3、Batch Size增大,梯度變準確,
4、Batch Size增大,梯度已經(jīng)非常準確,再增加Batch Size也沒有用
注意:Batch Size增大了,要到達相同的準確度,必須要增大epoch。
GD(Gradient Descent):就是沒有利用Batch Size,用基于整個數(shù)據(jù)庫得到梯度,梯度準確,但數(shù)據(jù)量大時,計算非常耗時,同時神經(jīng)網(wǎng)絡(luò)常是非凸的,網(wǎng)絡(luò)最終可能收斂到初始點附近的局部最優(yōu)點。
SGD(Stochastic Gradient Descent):就是Batch Size=1,每次計算一個樣本,梯度不準確,所以學(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