赞
踩
对于这几个参数,一直不怎么理解,每次写一个小demo都要一个个百度是什么意思。为了能够记住,决定自己写一遍,这样影响更深刻,也能更好的理解,虽然这类的博客很多,但是每个人喜欢的格式都不一样,希望可以帮到跟我一样的人。
首先说batch size,就要说到深度学习的算法,梯度下降。下面是梯度下降的几种方法:
这几种梯度下降最大不同点在于什么时候更新损失函数,关于损失函数如果不理解可以看另外一篇博客:
1.批梯度下降(BGD ----- Batch Gradient Decent)
概念:训练数据集的时候,将所有的数据集样本都训练一遍后更新损失函数
特点:这样效率低,计算开销大,速度慢,不适合在线机器学习。
batch英文直接翻译过来就是一批的意思,批梯度下降我们可以把这样一批看成是整个数据集。
2.随机梯度下降(SGD ---- Stochastic Gradient Decent)
概念:每训练一个数据更新一次损失函数。
特点:这样的计算速度提高了很多,但是收敛性可能不太好,容易在最优点徘徊,很难get到那个最优点。
3.小批梯度下降(mini-batch Gradient Decent)
概念:把数据分为若干批,按批来更新损失函数
这个方法是上面两个方法的折中方法。
batch size:每次选取的数据集中的一小部分,也就是小批度下降中的那一小批。
iterations(迭代):每次迭代都要更新一次权重参数,每次权重的更新都需要batch size个数据进行Forward计算得到损失函数,再用BP算法更新参数。
1 次Iteration=迭代一个batch size的量
(直译过来是时代、时期的意思)
epochs:也是就是在训练过程中所有训练集反复训练的次数。
1 次Iteration=迭代一个batch size的量=N
1次epochs=所有数据集/batch size=N次Iteration
例:假设有1000个数据样本,batch size=10,那么一次epoch需要迭代100次。(1000/10=100)
即100次iteration,1次epoch。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。