《------往期经典推荐------》

一、AI应用软件开发实战专栏【链接】

项目名称 项目名称
1.【人脸识别与管理系统开发 2.【车牌识别与自动收费管理系统开发
3.【手势识别系统开发 4.【人脸面部活体检测系统开发
5.【图片风格快速迁移软件开发 6.【人脸表表情识别系统
7.【YOLOv8多目标识别与自动标注软件开发 8.【基于深度学习的行人跌倒检测系统
9.【基于深度学习的PCB板缺陷检测系统 10.【基于深度学习的生活垃圾分类目标检测系统
11.【基于深度学习的安全帽目标检测系统 12.【基于深度学习的120种犬类检测与识别系统
13.【基于深度学习的路面坑洞检测系统 14.【基于深度学习的火焰烟雾检测系统
15.【基于深度学习的钢材表面缺陷检测系统 16.【基于深度学习的舰船目标分类检测系统
17.【基于深度学习的西红柿成熟度检测系统 18.【基于深度学习的血细胞检测与计数系统
19.【基于深度学习的吸烟/抽烟行为检测系统 20.【基于深度学习的水稻害虫检测与识别系统
21.【基于深度学习的高精度车辆行人检测与计数系统 22.【基于深度学习的路面标志线检测与识别系统
23.【基于深度学习的智能小麦害虫检测识别系统 24.【基于深度学习的智能玉米害虫检测识别系统
25.【基于深度学习的200种鸟类智能检测与识别系统 26.【基于深度学习的45种交通标志智能检测与识别系统
27.【基于深度学习的人脸面部表情识别系统 28.【基于深度学习的苹果叶片病害智能诊断系统
29.【基于深度学习的智能肺炎诊断系统 30.【基于深度学习的葡萄簇目标检测系统
31.【基于深度学习的100种中草药智能识别系统 32.【基于深度学习的102种花卉智能识别系统
33.【基于深度学习的100种蝴蝶智能识别系统 34.【基于深度学习的水稻叶片病害智能诊断系统
35.【基于与ByteTrack的车辆行人多目标检测与追踪系统 36.【基于深度学习的智能草莓病害检测与分割系统
37.【基于深度学习的复杂场景下船舶目标检测系统 38.【基于深度学习的农作物幼苗与杂草检测系统
39.【基于深度学习的智能道路裂缝检测与分析系统 40.【基于深度学习的葡萄病害智能诊断与防治系统
41.【基于深度学习的遥感地理空间物体检测系统 42.【基于深度学习的无人机视角地面物体检测系统
43.【基于深度学习的木薯病害智能诊断与防治系统 44.【基于深度学习的野外火焰烟雾检测系统
45.【基于深度学习的脑肿瘤智能检测系统 46.【基于深度学习的玉米叶片病害智能诊断与防治系统
47.【基于深度学习的橙子病害智能诊断与防治系统 48.【基于深度学习的车辆检测追踪与流量计数系统
49.【基于深度学习的行人检测追踪与双向流量计数系统 50.【基于深度学习的反光衣检测与预警系统
51.【基于深度学习的危险区域人员闯入检测与报警系统 52.【基于深度学习的高密度人脸智能检测与统计系统
53.【基于深度学习的CT扫描图像肾结石智能检测系统 54.【基于深度学习的水果智能检测系统
55.【基于深度学习的水果质量好坏智能检测系统 56.【基于深度学习的蔬菜目标检测与识别系统
57.【基于深度学习的非机动车驾驶员头盔检测系统 58.【太基于深度学习的阳能电池板检测与分析系统
59.【基于深度学习的工业螺栓螺母检测 60.【基于深度学习的金属焊缝缺陷检测系统
61.【基于深度学习的链条缺陷检测与识别系统 62.【基于深度学习的交通信号灯检测识别
63.【基于深度学习的草莓成熟度检测与识别系统 64.【基于深度学习的水下海生物检测识别系统
65.【基于深度学习的道路交通事故检测识别系统 66.【基于深度学习的安检X光危险品检测与识别系统
67.【基于深度学习的农作物类别检测与识别系统 68.【基于深度学习的危险驾驶行为检测识别系统
69.【基于深度学习的维修工具检测识别系统 70.【基于深度学习的维修工具检测识别系统
71.【基于深度学习的建筑墙面损伤检测系统 72.【基于深度学习的煤矿传送带异物检测系统
73.【基于深度学习的老鼠智能检测系统 74.【基于深度学习的水面垃圾智能检测识别系统
75.【基于深度学习的遥感视角船只智能检测系统 76.【基于深度学习的胃肠道息肉智能检测分割与诊断系统
77.【基于深度学习的心脏超声图像间隔壁检测分割与分析系统 78.【基于深度学习的心脏超声图像间隔壁检测分割与分析系统
79.【基于深度学习的果园苹果检测与计数系统 80.【基于深度学习的半导体芯片缺陷检测系统
81.【基于深度学习的糖尿病视网膜病变检测与诊断系统 82.【基于深度学习的运动鞋品牌检测与识别系统
83.【基于深度学习的苹果叶片病害检测识别系统 84.【基于深度学习的医学X光骨折检测与语音提示系统
85.【基于深度学习的遥感视角农田检测与分割系统 86.【基于深度学习的运动品牌LOGO检测与识别系统
87.【基于深度学习的电瓶车进电梯检测与语音提示系统 88.【基于深度学习的遥感视角地面房屋建筑检测分割与分析系统
89.【基于深度学习的医学CT图像肺结节智能检测与语音提示系统 90.【基于深度学习的舌苔舌象检测识别与诊断系统
91.【基于深度学习的蛀牙智能检测与语音提示系统 92.【基于深度学习的皮肤癌智能检测与语音提示系统

二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~

《------正文------》

训练过程中的批量大小、批次和时期背后的故事

定义

在深度学习中,batchbatch_sizeepoch 是训练过程中的核心概念,其中文专业术语及详细解释如下:

1. Batch Size

  • 中文术语批次大小批量大小
  • 定义:每个批次中包含的样本数量,是训练前需设定的超参数。
  • 选择依据
    • 硬件限制:GPU内存较小需选择较小的batch_size(如32)。
    • 性能权衡
      • 大批次(如256):梯度估计更准确,但可能陷入局部最优。
      • 小批次(如16):训练随机性高,可能提升泛化能力,但收敛慢。
  • 常见值:通常为2的幂次(如32、64),以优化硬件计算效率。

2. Batch(批次)

  • 中文术语批次
  • 定义:指数据集中数据集大小除以Batch Size。通过将数据集划分为多个批次,可以实现高效的内存利用和并行计算。
  • 作用
    • 计算效率:利用GPU的并行计算能力,加速训练过程。
    • 梯度稳定性:多个样本的平均梯度比单样本梯度更稳定,减少训练震荡。
  • 示例:若数据集有1000个样本,batch_size=100,则共有10个批次。

3. Epoch(周期)

  • 中文术语周期轮次
  • 定义:模型完整遍历整个训练数据集一次的过程,为1个epoch。通常我们需要训练多个Epoch来使模型达到收敛。
  • 作用
    • 训练进度衡量:例如10个epoch表示数据集被训练10轮。
    • 学习率调整:通常随epoch增加动态调整学习率以优化收敛。
  • 计算关系
    • 若数据集有1000样本,batch_size=100,则1个epoch需10次迭代。

三者的关系与训练流程

  1. 数据划分:数据集 → 多个epoch → 每个epoch划分为多个batch。
  2. 参数更新每个batch计算一次梯度并更新模型参数,完成所有batch即结束一个epoch。
  3. 示例
    • 数据集:60000样本,batch_size=1000 → 每个epoch包含60次迭代,10个epoch共600次迭代。

常见问题

批次如何计算以及权重

如果我们有一个包含1000张图像的图像数据集,在情况1中:假设批量大小为10,在另一种情况下批量大小为100,它们对模型训练的影响是什么,权重会在每个批次或每个epoch后更新吗?

一个包含1000张图片的数据集:

案例 1: 批量为 10

每个epoch的批次数量: 1000/10 = 100 个批次。
权重更新:模型的权重将在每个批次后更新。 这意味着在一个 epoch 内,权重将被调整 100 次。

案例 2: 批量为 100

每个时期的批次数量: 1000/100 = 10 个批次。
权重更新:模型的权重将在每批处理后更新。 在这种情况下,每个 epoch 将有 10 个权重更新。

特征 批量大小10 批量大小100
每个epoch的批次数量 100 10
权重更新 在100个批次中的每一个之后 在10个批次中的每一个之后
更新频率
训练噪声 更高 更低
收敛速度 初始可能更快 初始可能更慢
泛化能力 可能更好 可能更差
每个epoch的计算成本 更高 更低

概念说明

模型训练: 在 一个epoch 期间,模型批量处理训练数据。在每个批次之后,模型计算该批次的损失,并使用它通过反向传播和优化算法(如 Adam 或 SGD)更新模型的权重。

Epoch 结束: 一旦模型处理完训练数据集中的所有批次,则表示一个 epoch 就完成了,通常模型会训练多个epoch。

模型验证(在epoch之后): 通常在一个epoch训练完成之后,会在验证数据集上进行模型评估验证,以查看模型的性能收敛情况。

下一个 Epoch 的开始: 如果继续训练,模型将在下一个 epoch 中再次遍历训练数据集。 下一个 epoch 中的权重更新将基于在该新 epoch 的训练批次上计算的损失,而不是来自前一个 epoch 的验证步骤的损失。

总结

  1. 模型权重的更新是在每个batch之后,而不是每个epoch之后;
  2. 批次大小batch_size决定在一个epoch中,权重的更新次数,batch_size越大,权重更新次数越少;
  3. 一般情况下,batch_size越大,模型收敛速度越快。

在这里插入图片描述

好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐