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

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指定为遍历学习训练集数据的次数,它主要控制模型的训练进程,如果设置过大会造成模型过拟合,且会浪费时间等训练成本。

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

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

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

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

Original: https://blog.csdn.net/xunyishuai5020/article/details/122124362
Author: HadesZ~
Title: TensorFlow框架中batch、batch_size、iteration、step和epoch间的关系与意义

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/508989/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球