当前位置: 首页 > news >正文

深度学习(三):PyTorch 损失函数:按任务分类的实用指南

文章目录

  • PyTorch 损失函数:按任务分类的实用指南
    • 一、回归任务专用损失函数
    • 二、分类任务专用损失函数
      • 2.1 多分类任务(类别数 ≥3,如 10 类图像分类)
      • 2.2 二分类任务(类别数 =2,如判断是否为垃圾邮件)
    • 三、特殊任务专用损失函数
    • 四、快速选择总结(避坑指南)

PyTorch 损失函数:按任务分类的实用指南

损失函数的核心作用是 “衡量模型预测与真实结果的差异”,选择的关键是匹配任务类型(回归 / 分类)和模型输出形式。以下按 “任务场景” 分类整理,清晰标注每个损失函数的适用场景、核心特点及激活函数搭配要求。

一、回归任务专用损失函数

回归任务的目标是预测 “连续数值”(如房价、温度、销量),对应的损失函数聚焦于 “数值差异的量化”。

损失函数核心特点适用场景激活函数搭配
MSELoss计算 “预测值与真实值差值的平方的平均值”(均方误差),对大误差惩罚更严厉普通回归任务(如预测房价)无需额外激活函数
SmoothL1Loss结合 L1 损失(对异常值不敏感)和 MSE 损失(梯度平滑)的优点,训练更稳定,泛化能力强回归任务(尤其数据含异常值时,如目标检测中的边界框回归)无需额外激活函数

二、分类任务专用损失函数

分类任务的目标是预测 “离散类别”(如猫 / 狗 / 鸟、垃圾邮件 / 正常邮件),按 “类别数量” 分为 “多分类” 和 “二分类”,损失函数需匹配类别输出形式。

2.1 多分类任务(类别数 ≥3,如 10 类图像分类)

损失函数核心特点激活函数搭配(关键!)
CrossEntropyLoss自带 log_softmax 操作,直接接收模型输出的 “原始得分(Logits)”,无需额外加激活函数;本质是 “log_softmax + NLLLoss”模型最后一层不添加激活函数(直接输出 Logits)
NLLLoss计算 “负对数似然损失”,需先将模型输出转为 “对数概率”模型最后一层必须加 log_softmax 激活函数

2.2 二分类任务(类别数 =2,如判断是否为垃圾邮件)

损失函数核心特点激活函数搭配(关键!)
BCELoss计算 “二元交叉熵”,需接收模型输出的 “0~1 概率值”模型最后一层必须加 sigmoid 激活函数(将输出压缩到 0~1)
BCEWithLogitsLoss自带 sigmoid 操作,直接接收模型输出的 “原始得分(Logits)”,避免单独加激活函数时的数值不稳定问题;本质是 “sigmoid + BCELoss”模型最后一层不添加激活函数(直接输出 Logits)

三、特殊任务专用损失函数

针对特定场景设计,解决非常规的匹配或对齐问题。

损失函数核心用途典型场景
CTCLoss用于 “输入与输出长度不固定时的对齐”,无需提前标注输入(如音频)与输出(如文本)的一一对应关系语音识别(音频→文字)、手写体识别(图像→文字)

四、快速选择总结(避坑指南)

  1. 做回归:数据无异常值用 MSELoss,有异常值或需稳定训练用 SmoothL1Loss
  2. 做多分类:想省事儿直接用 CrossEntropyLoss(自带激活),若需自定义 log_softmax 再用 NLLLoss
  3. 做二分类:模型没加 sigmoidBCEWithLogitsLoss(自带激活),加了 sigmoidBCELoss
  4. 语音 / 手写识别:输入输出长度不固定时,直接用 CTCLoss
http://www.dtcms.com/a/351563.html

相关文章:

  • Swift 解法详解 LeetCode 363:矩形区域不超过 K 的最大数值和
  • Unity游戏打包——Mac基本环境杂记
  • Android Glide生命周期管理:实现原理与最佳实践
  • ubuntu2204安装搜狗拼音输入法
  • 基于spark的招聘岗位需求分析可视化系统设计与实现
  • 《相关法律、法规知识(五)》
  • 【数据结构】串——模式匹配
  • 微服务-23.网关登录校验-自定义GlobalFilter
  • yggjs_rbutton React按钮组件v1.0.0 示例和教程
  • Java全栈开发面试实录:从基础到实战的深度探索
  • JVM 学习与提升路线总结:从入门到精通的系统化指南
  • 前端-如何将前端页面输出为PDF并打包的压缩包中
  • PDF转图片、图片转PDF(免费)
  • AI+drawio生成流程图探索
  • Python 操作 PPT 文件:从新手到高手的实战指南
  • 重构审计体验!批量生成报表项目底稿的凭证检查表
  • 计算机术语 / 数学术语中的 trivial 与 non-trivial
  • MD5校验算法
  • Node.js(3)—— fs模块
  • Docker:部署Java后端
  • 关于电脑连接手机热点没有网络的问题
  • 每日一题DEEP_ML-卡方分布(Chi-Squared Distribution)
  • 数据结构初阶:详解单链表(一)
  • Linux->多线程3
  • Ubuntu操作系统下MySQL、MongoDB、Redis
  • 如何拯救一家濒临破产的科技公司?
  • C++工程实战入门笔记5-函数(二)
  • React前端开发_Day1
  • 迅为R3588S开发板ADB使用手册-运行shell
  • ctfshow_萌新web16-web20-----文件包含日志注入