机器学习训练中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"的完整训练迭代。完成一次模型参数的更新,数值上等于

相关推荐
用户68563262086923 分钟前
Claude Code 乱猜字段名?我给它写了一个"数据库查询约束 Skill"
人工智能
你_好25 分钟前
# 给你的产品嵌入一个「会操作界面的 AI 助手」
人工智能
ShallWeL25 分钟前
【机器学习】(3)—— 线性回归:梯度下降
人工智能·机器学习
陈广亮26 分钟前
Prompt、Context、Harness、Agentic:LLM 应用四层嵌套结构,搞清自己卡在哪一层
人工智能
刺猬的温驯1 小时前
Flow Matching 训练的输入分布问题:从 VAE Latent 统计性质到归一化工程实践——以 VoxFlash-TTS 为例
人工智能·语音合成·tts
机器之心1 小时前
近80年后,埃尔德什经典「拉姆齐数下界」,被三位中国学者首次指数级改进
人工智能·openai
机器之心1 小时前
Nvidia都在点赞的LoopWM世界模型,竟然来自一家中国初创FaceMind?
人工智能·openai
美团技术团队2 小时前
LongCat 开源 VitaBench 2.0:长期动态智能体基准新标杆
人工智能·算法
moMo2 小时前
从“你好”到 1024 维坐标:大模型怎么识字
人工智能
ShallWeL2 小时前
【机器学习】(2)—— 线性回归:损失函数
人工智能·机器学习