SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

在看神经网络相关的论文时,总是能看到Epochs, Batchsize, Iterations 这些字眼,要弄明白这些专业术语,不得不先讲下梯度下降的概念。

梯度下降

梯度下降法是机器学习中经典的优化算法之一,用来求解复杂曲线的最小值。“梯度”是指某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。“下降”是指下降递减的过程。

梯度下降法是多次迭代求解的,梯度下降的迭代质量有助于使模型尽可能拟合训练数据。

神经网络中的 Epochs, Batchsize, Iterations 具体是什么 人工智能 第1张

梯度下降中有一个叫做学习率的参数,如上图左所示,在迭代开始时,步长越大,学习率就越高。随着点的下降,步长变短,即学习率变小。此外,误差函数也在不断减小。

我们在训练模型时,如果训练数据过多,无法一次性将所有图像数据输入网络,为了解决这个问题,我们会将数据分成几个部分进行分批训练,即batch,使得每个批次的数据量是可以负载的。将这些batch的数据逐一输入到网络中,更新神经网络的参数,使得网络收敛。

Epoch

一个Epoch指的是将所有的数据输入网络完成一次向前计算及反向传播。由于完成一个epoch训练的周期较长(数据量大),一次性输入所有数据计算机无法负荷,所以将其分成多个batches。那么为什么还需要训练多个epochs呢?我们知道,训练网络时,仅仅将所有数据迭代训练一次是不够的,需要反复训练多次才能使网络收敛。在实际训练时,将所有数据分成多个batches,每次输入一个batch大小的数据进行训练,梯度下降本身就是一个迭代过程,所以经过单个epoch更新权重是不够的。

下图展示了经过不同的epoch训练的到的结果。

神经网络中的 Epochs, Batchsize, Iterations 具体是什么 人工智能 第2张

 

可见,随着epoch的增加,神经网络中权重更新迭代的次数增加,曲线从开始的欠拟合,慢慢进入最佳拟合,epoch继续增加,最后过拟合。

因此,epoch的个数是非常重要的,究竟设置多少才合适呢?恐怕没有一个确切的答案。对于不同的数据集来说,最佳的epoch是不同的。但是,epoch的大小和数据集的多样化程度有关,多样化程度越强,epoch也应该越大。

Batchsize

Batch是每次输入网络进行训练的批次,而batchsize是每个batch中训练样本的数量。注意batch size 和 batch numbers 是不同的。

batchsize大小的选择也是非常重要的,为了在内存容量和内存效率之间取得最佳平衡,batchsize 应该用心设置,从而最优化网络模型的性能和速度。

下图为不同的batchsize 得到的训练结果。其中蓝色为所有数据一起输入进行训练,也就是只有一个batch,batch内包含所有训练样本;绿色为minibatch,即将所有数据分成若干个batches,每个batch内包含一小部分训练样本;红色为随机训练,即每个batch内只有一个样本。

神经网络中的 Epochs, Batchsize, Iterations 具体是什么 人工智能 第3张

 

从上图看到,蓝色全数据效果更好,当数据量较小,计算机内存可以负载的时候,可以采用这种训练方式;绿色的mini分批次训练精度略有损失;而红色的随机训练,难以达到收敛状态。

Iterations

所谓iterations就是完成一次epoch所需的batch个数。batch numbers就是iterations。

举个例子来说,我们有12800个训练样本,分成100个batches,那么batchsize就是128。将所有的数据输入网络,训练完成一个epoch,需要经过100次iterations。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄