深度学习篇---回归&分类任务的损失函数


文章目录


前言

本文简单介绍了深度学习中常用的损失函数。比如用于回归任务的交叉熵损失、Focal Loss损失;用于分类任务的MAE\MSE\Huber损失等。


一、分类任务常用损失函数

1. 交叉熵损失(Cross-Entropy Loss)

数学形式

𝑦𝑖,𝑐 样本 𝑖的真实标签(one-hot 编码)。

𝑝𝑖,𝑐:模型预测样本 𝑖 属于类别 𝑐的概率。

使用场景

适用场景:多分类任务(如手写数字识别、图像分类)。

特点

  1. 直接衡量预测概率分布与真实分布的差异。
  2. 对错误预测的惩罚呈指数增长(梯度随误差增大而增大)。

训练状态分析

损失下降

损失下降:模型正在学习正确分类样本。

损失震荡

损失震荡:学习率可能过高,或数据噪声较大。

训练损失低但是验证损失高

训练损失低但验证损失高:过拟合(模型记忆训练数据,泛化能力差)。

2. Hinge Loss(合页损失)

数学形式

𝑦𝑖∈{−1,1}:真实标签。

𝑦^𝑖:模型输出的未归一化得分(如 SVM 的决策函数)。

适用场景

适用场景:二分类任务(如支持向量机)。

特点

  1. 对正确分类且置信度高的样本损失为 0。
  2. 对误分类样本的惩罚与置信度线性相关。

训练状态分析

损失趋近于0

损失趋近于 0:模型对大部分样本分类正确且置信度高。

损失不下降

损失不下降:模型无法找到有效的分类边界(需调整超参数或特征)。

3. Focal Loss

数学形式

  1. 𝛼:平衡类别权重的系数。
  2. 𝛾:聚焦参数 ,降低易分类样本的权重。

适用场景

适用场景:类别不平衡 问题(如目标检测中的前景-背景分类)。

特点

通过降低简单样本的权重,使模型更关注难样本。

训练状态分析

损失快速下降

损失快速下降 :模型正在学习难样本的特征。

损失稳定后仍有波动

损失稳定后仍有波动 :需调整 𝛾或数据增强策略。

二、回归任务常用损失函数

1. 均方误差(Mean Squared Error, MSE)

数学形式

适用场景

适用场景:连续值预测(如房价预测、温度预测)。

特点

  1. 对异常值敏感(平方放大大误差)。
  2. 输出为凸函数 ,利于梯度下降优化。

训练状态分析

损失持续下降

损失持续下降:模型正在拟合数据分布。

损失突然增大

损失突然增大:可能遇到异常值或梯度爆炸。

2. 平均绝对误差(Mean Absolute Error, MAE)

数学形式

适用场景

适用场景:对异常值敏感的回归任务(如金融风险预测)。

特点

  1. 对异常值鲁棒(线性惩罚)。
  2. 梯度恒定,可能导致收敛速度慢。

训练状态分析

损失缓慢下降

损失缓慢下降:需结合自适应优化器(如 Adam)。

损失波动小但值比较高

损失波动小但值较高:模型可能欠拟合(需增加网络容量)。

3. Huber Loss

数学形式

适用场景

适用场景:存在少量异常值的回归任务(如传感器数据预测)。

特点

  1. 结合 MSE 和 MAE 的优点,对异常值鲁棒。
  2. 需手动设定阈值 𝛿。

训练状态分析

损失平稳下降

损失平稳下降:模型在平衡大误差和小误差的优化。

需调整δ

需调整 𝛿:根据误差分布动态选择。

三、损失函数值与训练状态的关系

损失函数行为 可能原因 解决方案
训练损失持续下降 模型正常学习中 持续监控验证集损失
验证损失上升 过拟合 增加正则化(Dropout, L2)、数据增强

损失震荡剧烈 学习率过高或批量过小 降低学习率、增大批量大小
损失长期不下降 模型容量不足、梯度消失/爆炸 加深网络、使用残差连接、调整初始化
训练/验证损失均高 欠拟合 增加模型复杂度、减少正则化、延长训练

四、总结

分类任务

分类任务:优先选择交叉熵损失 ,处理不平衡数据时使用 Focal Loss。

回归任务

回归任务:根据**异常值情况选择 MSE(平滑优化)**或 MAE/Huber(鲁棒性)。

监控策略

同时观察训练集和验证集损失 ,判断过拟合/欠拟合 。

使用学习率调度器(如 ReduceLROnPlateau)动态调整优化速度。


相关推荐
暖心hebbie设计学习3 小时前
GitHub 热榜周报(10.19)|5 个把 AI 装回本地的开源项目:多 agent 控制台、本地语音、节点式生成(含技术看点)
人工智能·github
猪脚踏浪3 小时前
open webui 在docker容器里跑,并且是在内网断绝互联网的环境下。生成ppt
人工智能
海边捡石子4 小时前
FreeSWITCH 入门:把电话系统接入语音客服机器人
人工智能·后端
桃西西呀4 小时前
我把网关限流配置成每秒 100 请求,大促一来照样被打挂,还把别人也拖垮了
人工智能·llm·ai编程
武子康4 小时前
Agent 偏好记忆怎样确认写入:范围、版本与撤销的一个最小例
人工智能·后端·agent
王中阳Go4 小时前
质保期第 90 天我翻了一遍日志目录:交付后真正会坏的 3 处
人工智能·后端·agent
卷无止境5 小时前
一人公司的全栈选型指南:让 AI Agent 写得快,也让生意跑得稳
后端·python
桃西西呀5 小时前
我把整本接口文档塞进 system prompt,前 3 轮答得准,第 8 轮开始胡说,账单还翻了 4 倍
人工智能·llm·ai编程
天天代码码天天5 小时前
给孩子打印一本“数字连点画”!连出小鱼、火箭,画完还能涂色
人工智能
SL_staff6 小时前
规则联动:给工厂装上‘自动化神经反射弧’——JVS·物联网平台规则引擎实战教程
java·人工智能·物联网