区分epoch、batch size、iteration

在机器学习中,在实现梯度下降的过程中epoch、batch、iteration都会出现。

首先了解一下梯度下降算法:

一、梯度下降

1、应用:求解无约束最优化问题

2、原理:

比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处。

  从上面的解释可以看出,梯度下降不一定能够找到全局的最优解,有可能是一个局部最优解。当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。

二、epoch

epoch:纪元、时期、时代,在这里表示跑完一个完整的数据;一个epoch:所有的数据送入网络中, 完成了一次前向计算 + 反向传播的过程。为了达到模型的最有拟合状态,通常会使用多次epoch。简单说,epochs指的就是训练过程中数据将被“轮”多少次。由于一个epoch的通常非常大,所以会将数据分成多个batch,进行多次迭代。

举个例子:训练集有1000个样本,batch-size=10,那么训练完整个样本集需要:100次iteration,1次epoch。

具体的计算公式为:
one epoch = numbers of iterations = N = 训练样本的数量/batch_size

三、batch size

batch:一批; (食物、药物等)一批生产的量; 批;分批处理;在这里表示的意思与他本身的词义相同,就是将一整个数据分批进行输入处理。batch-size就是划分的大小,也就是一次输入的数据。

四、iteration

iteration:迭代,在这里的作用与他本身的含义一致。在将数据划分成多个批次就会多次执行程序模块,每一次迭代都是一次权重更新,每一次权重更新需要batch_size个数据进行Forward运算得到损失函数,再BP算法更新参数。1个iteration等于使用batchsize个样本训练一次。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值