损失函数(以FMTrack频率感知交互与多专家模型的损失为例)

理解了损失函数,你就理解了神经网络是如何"学习"的。

一,损失函数

1. 损失函数(Loss Function)是用来干什么的?

损失函数就像是神经网络的**"严师"**。

在训练阶段,神经网络每看一张图片,就会给出一个预测结果(比如它认为目标在左上角)。但实际上,我们知道目标在中心(这是"真值"或"标签")。

  • 计算差距 :损失函数通过数学公式计算"预测值"和"真值"之间的差距
  • 指引方向:神经网络的目标是让这个差距(即损失值)尽可能接近于 0。
  • 反馈修正:模型通过一种叫"反向传播"的机制,根据损失函数给出的反馈,去调整自己内部的参数。如果损失很大,它就知道自己"错得厉害",需要大幅调整;如果损失很小,它就微调。

总结:损失函数是衡量模型错误程度的指标,也是驱动模型进化的唯一动力。

2. 为什么要叠加(相加)这些损失?

你可以把目标跟踪任务想象成一个**"多项全能比赛"**。要成为优秀的选手,模型必须同时做好以下几件事:

  1. 分类任务(找得到):模型得知道哪里是猫,哪里是背景。
  2. 回归任务(框得准):模型得精确画出猫的边界。

为什么要加在一起? 如果只用分类损失(L_{cls}),模型可能会告诉你"目标就在这一块区域",但它不在乎框画得圆不圆、正不正。 如果只用回归损失(L_1, L_{GIoU}),模型可能会把背景里的石头框得非常精美,因为它根本没去学怎么区分目标和背景。

通过加法叠加,我们是在告诉模型:

"我要求你不仅要找准目标的位置(分类对),还要把框画得严丝合缝(回归准)。这两项考核你都得及格,总分才高。"

3. 如何理解叠加后的权重?

公式是:L = L_{cls} + 5 L_1 + 2L_{GIoU}

这里的系数(5 和 2)代表了优先级

  • 如果你把 L_1$的系数设为 5,说明你觉得"框得准不准"比"分得对不对"重要 5 倍。
  • 平衡量纲:不同的损失函数计算出来的数值级数可能不同(比如分类损失通常很小,回归损失可能很大)。加权系数可以平衡这些数值,防止某个损失项"霸凌"其他项,导致模型只顾着优化其中一个。

4. 形象的类比:学射箭

假设你正在教一个机器人学射箭,你要写一个"损失函数":

  1. 姿势损失 (L_{pose}):如果你姿势不对,扣 10 分。
  2. 环数损失 (L_{ring}):如果你没射中红心,差 1 环扣 50 分。
  • 为什么要叠加? 因为你既希望它射得准,又希望它动作规范(有利于长期表现)。
  • 损失函数的作用:机器人每射一箭,就根据总扣分去调整机械臂的角度。
  • 结果:随着训练次数增加,扣分越来越少,机器人既掌握了标准姿势,又能百步穿杨。

二,FMTrack损失函数

(一)训练损失函数

损失函数前一项是分类损失,用于区分目标和背景;后两项代表回归损失,用于精确框选目标。

计算机视觉里面的Loss命名法则

回归函数分为两项,是为了能够让生成的预测框动态覆盖尺度不同的跟踪目标。

(二)目标粗定位

论文中介绍了三种M的尺寸。

(三)目标细定位

M的尺寸

x,y,w,h的含义

如何确定矩形框

w,h是相对于x,y往右下方拉取

相关推荐
Alice-YUE1 小时前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript
冰西瓜6001 小时前
深度学习的数学原理(三十三)—— Transformer编码器完整实现
人工智能·深度学习·transformer
北山有鸟2 小时前
修改源码法和插件法
嵌入式硬件·学习
richxu202510012 小时前
嵌入式学习之路->stm32篇->(14)通用定时器(上)
stm32·单片机·嵌入式硬件·学习
qeen872 小时前
【数据结构】建堆的时间复杂度讨论与TOP-K问题
c语言·数据结构·c++·学习·
我是大聪明.3 小时前
CUDA矩阵乘法优化:共享内存分块与Warp级执行机制深度解析
人工智能·深度学习·线性代数·机器学习·矩阵
lizhihai_993 小时前
股市学习心得-六张分时保命图
大数据·人工智能·学习
码云数智-大飞3 小时前
大模型幻觉:成因解析与有效避免策略
人工智能·深度学习
nashane3 小时前
HarmonyOS 6学习:应用签名文件丢失处理与更新完全指南
学习·华为·harmonyos·harmonyos 5
@codercjw3 小时前
公差的具体标注方法(书本上/理论上标注方法)
学习