机器学习训练中Epoch、Batch、Bath_size、Data_size的区别

最近在做实验的过程中,总是会把epoch、batch_size和data_size搞混,为了彻底搞明白他们之间的联系,遂写出这个博客。

在实际训练中,一般对上述的术语定义为epoch、Training_batch_size、Training_data_size

1,什么是epoch、batch_size和data_size?

Training_data_size: 训练集大小,指训练过程中实际使用的训练样本数量。也即 "每个 epoch 会遍历的数据总量"。对于监督学习,它通常表示样本的数量;对于强化学习,它常常表示 task / query / prompt 的数量。

Epoch(全部数据集): 简单来说,Epoch 是​​​​​​指完整训练数据集被模型遍历一遍。 一个 epoch 通常包含多次参数更新 一个 epoch 通常包含多个 training step。也即通常多次参数更新,而不是只完成一次参数更新。

Batch(批数据大小): 这个词语的来源主要是为了解释模型更新参数时的单位,一个完整的数据集拿来更新太大了,要切分为几份分别喂给模型进行训练(计算loss和更新policy model,也就是模型),这每一份数据就是一个batch,模型在更新(比如均方误差损失MSE、交叉熵损失)时数据的最小更新单位就是batch。用来计算平均的均方损失或交叉熵损失,否则平均没法定义。**Training_batch_size:**指训练过程中,训练一步,即一次inference(推理)、训练和更新参数时需要的数据量。

**Training_step:**通常指一次 optimizer update,或者在某些 RL 框架中指一次"rollout + reward 计算 + policy update"的完整训练迭代。完成一次模型参数的更新,数值上等于

相关推荐
Shockang2 小时前
AI Slop 治理实战
人工智能
Mr数据杨3 小时前
医学影像分类实战复盘 从 Kaggle 竞赛到可落地建模流程
人工智能·数据分析·kaggle竞赛
AI情绪识别开源4 小时前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试
ZGIAI5 小时前
ZGI 迭代节点:批量资料的逐项处理
人工智能·架构
ZGIAI5 小时前
ZGI 知识检索:让业务回答有据可查
人工智能·架构
Asize5 小时前
框架的说明书是写给 AI 看的:我用 Next.js 搭了个博客
人工智能·代码规范·next.js
2601_955662465 小时前
AI 配音工具 7 款实测:短视频、影视解说、小说推文音质横向对比
人工智能·音视频·语音识别·视频
AI创界者5 小时前
PinkCherry-MiniMax-H3 全能AI视频整合包:8G显存开箱即用,支持首尾帧/超分补帧/自动提示词
人工智能·aigc
罗西的思考5 小时前
【Agentic RL / 强化学习框架】Molt 设计解读
人工智能·算法·机器学习