卷积神经网络中的batch到底什么

一次输入网络中的样本数。理想情况下batchsize最好就是所有训练样本数,因为内存显存限制,不现实。所以就用少量的样本近似整个训练集。因此,batchsize越大,训练越容易收敛,学习速率也就可以大一些。一个batch内的样本抽样最好是覆盖所有种类的样本,尽可能的模拟原训练集的分布,这样训练容易收敛点。

机器学习中的batch_size越大越好吗?

从实际中来看,这个问题并没有统一的正确答案,需要具体问题具体分析。但是这里可以分享一些实际训练训练中的经验。Batch size,批大小也就是模型在每次训练时,喂给他多少的数据量。通常我们优化模型所使用的损失函数公式如下,优化的目标往往是非凸函数,因此存在诸多的局部最优点。其中M就是全部的训练数据大小,f(x)是单个数据的损失函数。

而在我们每次更新模型参数时,所用的计算公式如下:这里的Bk就是批大小,Bk是小于等于M的。而按照选取的Bk大小,我们可以将其分成三类:1. Bk=1,即随机梯度下降,即每次针对单个数据进行参数更新。这种方法的优势在于占用的内存很小,能够实现在线学习。弊端也很明显,就是很容易由于梯度方向的随机而导致模型无法收敛,而且无法充分并行计算,训练时间过长。

2. Bk=M,即每次都使用全部数据来进行模型参数的更新,这种方式在每次更新时,得到的更新梯度方向更加准确,使得模型收敛的更加稳定。但是缺点在于,当数据量非常大的时候,由于内存的限制,往往无法实现,同时所需要训练的epoch数也会大大增加;3. 1


文章TAG:size  batchsize  设置  
下一篇