神经网络中的名词解释:梯度下降、Epoch、Batch_size、迭代

(一) 梯度下降

梯度下降是在机器学习中用于寻找最佳结果(即曲线最小值)的一种迭代优化算法。

如下图所示,要使绿色点达到最小值,需要考虑两个问题:1)绿色点向左还是右移动;2)移动多大的距离。

  • 对于向左还是向右移动的问题,我们可以根据数学求导公式来进行判断,即判断曲线还是在绿色点位置是递增还是递减,进而决定点该想哪个方向移动。

在这里插入图片描述

  • 对于移动多大的距离问题,以下图中绿色和蓝色两个点为例。在两个点位置分别做一条切线,可以看到蓝色点的切线斜率是低于绿色点的。这提示,蓝色点很有可能更加接近最小值,那么此时蓝色点移动的距离就要更小一些。

在这里插入图片描述

这里只介绍了最最最简单粗暴的理解,建议深入阅读参考资料

  1. 理解梯度下降算法. 知乎
  2. 神经网络训练中,傻傻分不清Epoch、Batch Size和迭代. 机器之心
  3. 浅显易懂!「高中数学」读懂梯度下降的数学原理.机器之心

(二) Batch_size

因为机器学习需要的数据量非常庞大,一次性将数据完全读入计算机内存是不现实的。为了解决这个问题,我们需要把数据分割成一小块,再一块一块地读入到内存中,并且在每一块数据计算完成后,更新神经网络参数的权重。这里所说的“小块”被称为“Batch”,而每一个Batch中的数据量,则成为Bathc_size。


(三) Epoch

上面介绍了,当数据量非常庞大时,需要将数据分割成多个Batch进行计算。而Epoch是指 “当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一个 epoch。”

简单理解Epoch就是所有的数据在神经网络中做了一次运算。

Epoch 参数设置多少合适?

实际情况下,构建的神经网络模型中,Epoch参数往往设置大于1。原因是:在神经网络中传递完整的数据集一次是不够的,而且我们需要将完整的数据集在同样的神经网络中传递多次。我们使用的是有限的数据集,并且我们使用一个迭代过程即梯度下降,优化学习过程和图示。因此仅仅更新权重一次或者说使用一个 epoch 是不够的。

随着 epoch 数量增加,神经网络中的权重的更新次数也增加,曲线从欠拟合变得过拟合。对于不同的数据集,epoch参数设置的值也不同。数据的多样性也会影响合适的 epoch 的数量。比如,只有黑色的猫的数据集,以及有各种颜色的猫的数据集。

在这里插入图片描述


(四) 迭代 (Iteration)

上面介绍了,当数据量非常庞大时,需要将数据分割成多个Batch进行计算。1个Batch通过计算过程就被称为1次迭代

因此,对于一个神经网络训练过程而言,迭代次数等于Batch个数

例如,对于一个有 2000 个训练样本的数据集。将 2000 个样本分成大小为 500 的 batch,那么完成一个 epoch 需要 4 个 iteration。

参考资料

  1. https://medium.com/towards-data-science/epoch-vs-iterations-vs-batch-size-4dfb9c7ce9c9
  2. 神经网络训练中,傻傻分不清Epoch、Batch Size和迭代. 机器之心
  • 10
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值