深度学习(DL)基本概念

深度学习中的batchsize、epochs、learning rate、momentum、iteration/step几个术语,这里整理一下,

1.batchsize:批大小,每次训练给神经网络喂入的数据量大小(当然也可以一次将所有样本丢给神经网络)。但是要注意,batchsize并不是越大越好。更大的批量会计算更精确的梯度估计,但是回报却是小于线性的。同样,极小批量通常难以充分利用多核架构。
这里写图片描述
数学基础不好的可能在这里犯糊涂了——一次性喂500个样本并迭代一次,跟一次喂1个样本迭代500次相比,有区别吗?当然有区别,如果用做生意打个比方,那就相当于:

  • 第一种(batchsize=500):本金100元。第一个样本挣了10元,第二个样本挣了13元,…,第500个样本挣了9元。那么,目前总收入=100元+(10元+13元+…+9元)。注意,本金没汇总前一直是100元。
  • 第二种(batchsize=1):本金100元。第一个样本挣了10元,目前总收入100元+10元。那么下一批,本金就是110元了…

很显然,使用batchsize=1的时候,资金将会得到更快的迭代,这种方式也被称为随机梯度下降(SGD)。

2.iteration/step:迭代(步),从总样本中每次拿batchsize数据量喂入神经网络,需要step次喂完毕。举个例子,总样本Total Sample=5000个,batchsize=100个,则 s t e p = t o t a l   s a m p l e b a t c h s i z e = 50 step=\frac{total\ sample}{batchsize}=50 step=batchsizetotal sample=50

3.epochs:轮数,指总样本被训练的次数,即将所有样本全部训练一次为一个epoch。注意,每次epoch之后,需要对总样本shuffle,再进入下一轮训练。
这里写图片描述
4.learning rate:学习率 ϵ \epsilon ϵ(0,1),是一个确定步长大小的正标量(一般设置的很小,如0.001),表示沿着梯度的方向一步迈多大。
这里写图片描述
5.momentum:动量,随机梯度下降(SGD)学习过程有时会很慢。比如在穿越山谷时,使用SGD则会在山谷壁来回的摆动(如下图)。动量算法积累了之前梯度指数级衰减的移动平均,并且继续沿该方向移动。 v v v表示动量,超参数 α \alpha α [0,1) 决定了之前梯度的贡献衰减得有多快。

这里写图片描述

References:
[1] 怎么选取训练神经网络时的Batch size?
[2] 梯度下降优化算法综述
[3] Ian, Goodfellow, Yoshua, Bengio. 深度学习[M]. 北京:人民邮电出版社, 2017.

©qingdujun 2018-6-10 于 北京 怀柔
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页