在深度学习中,累计不同批次的损失估计总体损失

在深度学习中,累计不同批次的损失估计总体损失

在深度学习训练模型的过程中,通常会通过计算不同批次间的损失和,当作模型在这个训练集上的总体损失,这种做法是否具有可行性呢?

  • 什么是总体损失 ?
    • 总体损失是计算模型在整个数据集上的损失,但是在训练时,可以计算每个批次上的损失并求和,以此观察模型的训练进度。
  • 训练的作用:前向传播计算损失函数值,为了尽量减少损失函数值,反向传播计算损失函数梯度,并用梯度更新模型参数。通过不断地迭代上面的步骤,让模型收敛到一个局部最优解。
  • 需要注意的是 :同一个批次使用的是相同的模型参数,计算完一个批次之后,模型参数也会相应地更新,所以不同的批次之间使用的模型参数一般不同相同。
  • 观察总体损失的意义:监控并指导模型的训练,我们的目标是让总体损失在训练过程中逐渐减小。
  • 所以在同一轮训练中,虽然不同批次之间会由于参数的变化,计算的损失差异可能比较大,而通过训练的目标可以知道,同一轮中越往后的批次,得到的损失理论上应该是越小的。所以累计的不同批次之间的损失当作总体损失,如果总体损失在训练期间不断减小,那么模型正在学习改进。
  • 使用每一轮训练好的模型来计算总体损失是否可行?
    • 可行。但是会导致训练非常慢,因为需要在每一轮训练后,计算模型在整个训练集上的损失。
  • 可以使用最后一个批次的损失,来监控模型的训练进度吗?
    • 可以。这个损失通常称为**"当前批次损失"**,但是这个损失不一定能很好地反映整个训练的过程中模型的性能,所以更好的做法是同时监控"当前批次损失"和总体损失。
相关推荐
Java后端的Ai之路几秒前
Python 进阶探索30 - Python中的装饰器
开发语言·人工智能·python·文件处理·装饰器模式
海宇AI1 分钟前
Java数据工程:利用海宇婚恋风险报告优化高端婚恋实名与涉诉核验合规体验
java·人工智能
zhangfeng11333 分钟前
Metal 是苹果(Apple)自研的计算软件栈 DirectX 12 / HLSL Vulkan / SPIR-V CUDA ROCm
人工智能
打码的老程是远篁3 分钟前
手把手教你玩转大模型——3. Transformer 的位置编码——模型怎么知道谁在前,谁在后?
人工智能·算法
ADark3 分钟前
FDE 入门 · 03|Palantir 二十年前埋下的伏笔
人工智能
海宇数科4 分钟前
Go数据工程:利用海宇婚恋风险报告优化实名制严肃婚恋交友合规体验
人工智能·go
xiwc6 分钟前
我用 MCP + 多 Agent 搭了一条自动化内容发布流水线
人工智能·mcp
lucas_AI7 分钟前
Hinton 下场写 RSI 论文:今天一年的 AI 进步,未来可能只要 5 周
人工智能·llm
黑妹天下第一乖10 分钟前
第 05 讲:阿加犀 AidCV 图像处理加速与 OpenCV 一致开发实战
开发语言·图像处理·人工智能·嵌入式硬件·数码相机·opencv·计算机视觉
天远API10 分钟前
PHP数据工程:利用天远名下车辆车牌查询A优化智慧物业一户多车登记合规体验
人工智能