TensorFlow框架中batch、batch_size、iteration、step和epoch间的关系与意义

1、定义与关系

batch(批):batch源自小批量随机梯度下降算法(mini-batch SGD)中,每次更新迭代模型参数时仅使用全部训练集样本中的一小部分,这部分被使用的样本数据叫做一个batch。

batch_size(批大小):小批量随机梯度下降法(mini-batch SGD)中,每次更新模型参数所使用的样本数量,即一个batch中所包含的样本数量。

iteration(迭代):模型训练中,更新模型参数的次数;iteration = batch number * epoch number

step(步):遍历学习一次训练集数据所需的batch数量。step可以等于 训练集样本数 / batch_size 或直接给定一个正整数 int_num,int_num可以等于或小于训练集样本数 / batch_size,后者相当于随机森林算法中对输入样本进行随机采样(深度学习框架中输入训练集数据是shuffle过的)可以减小模型方差、提高泛化能力。

epoch(周期):一个epoch指模型遍历学习一次训练集数据。训练模型时,epochs指定为遍历学习训练集数据的次数,它主要控制模型的训练进程,如果设置过大会造成模型过拟合,且会浪费时间等训练成本。

2、超参数意义

本文介绍的指标中,在TF框架训练模型时,可调的超参数有batch_size、step和epoch三者。

batch_size

batch_size控制梯度下降时模型的学习能力。batch_size越大,模型梯度下降时的随机性越弱、对抗训练数据中所含噪声的能力越强,但也更容易陷入局部最优化的鞍点而不能继续优化模型参数,对此可适当增大模型学习率(learning rate)超参数已获得更好的训练效果。而batch_size越小,模型训练时梯度下降的随机性就越强、模型有更大可能跳过鞍点避免陷入局部最优的窘境,但同时也不可避免扩大训练数据噪声对模型预测效果的影响,对此可适当调小模型学习率(learning rate)以获得更稳定的参数优化效果。

step

step决定多少个batch数据组成一个完成的训练集。如果step小于epoch / batch_size则可得到多个不同的训练数据集采用模型训练,这增加了样本的多样性、(和随机森林一样)有助于减小模型的预测方差、增加泛化能力。

epoch

epoch决定训练时,模型参数更新多少个轮次,它控制模型训练的时间成本。

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值