深度学习中的batchsize、epochs、learning rate、momentum、iteration/step几个术语,这里整理一下,
1.batchsize:批大小,每次训练给神经网络喂入的数据量大小(当然也可以一次将所有样本丢给神经网络)。但是要注意,batchsize并不是越大越好。更大的批量会计算更精确的梯度估计,但是回报却是小于线性的。同样,极小批量通常难以充分利用多核架构。
2.iteration/step:迭代(步),从总样本中每次拿batchsize数据量喂入神经网络,需要step次喂完毕。举个例子,总样本Total Sample=5000个,batchsize=100个,则
3.epochs:轮数,指总样本被训练的次数,即将所有样本全部训练一次为一个epoch。注意,每次epoch之后,需要对总样本shuffle
,再进入下一轮训练。
4.learning rate:学习率
(0,1),是一个确定步长大小的正标量(一般设置的很小,如0.001),表示沿着梯度的方向一步迈多大。
5.momentum:动量,随机梯度下降(SGD)学习过程有时会很慢。比如在穿越山谷时,使用SGD则会在山谷壁来回的摆动
(如下图)。动量算法积累了之前梯度指数级衰减的移动平均,并且继续沿该方向移动。
表示动量,超参数
[0,1) 决定了之前梯度的贡献衰减得有多快。
References:
[1] 怎么选取训练神经网络时的Batch size?
[2] 梯度下降优化算法综述
[3] Ian, Goodfellow, Yoshua, Bengio. 深度学习[M]. 北京:人民邮电出版社, 2017.
©qingdujun
2018-6-10 于 北京 怀柔