Day26_【深度学习(6)—神经网络NN(2)损失函数】

在深度学习中,损失函数通过比较预测值与真实值之间的差异,来衡量模型参数质量

数据差异越小,越拟合,损失值越小

损失函数主要根据任务类型来选择,最常见的是分类回归两大类。

一、分类任务损失函数

交叉熵损失

这是分类任务中最主流、最常用的损失函数。

1.多分类交叉熵

  • 适用:两个以上类别的任务(如:猫、狗、鸟)。
  • 公式:
  • **PyTorch:**nn.CrossEntropyLoss()

2.二分类交叉熵

  • 适用:只有两个类别的任务(如:是/否,猫/狗)。
  • 公式:

​​​​​​​ ​​​​​​​

  • **PyTorch:**nn.BCELoss()

二、回归任务损失函数

用于预测连续的数值。

1. 平均绝对误差 (Mean Absolute Error, MAE) / L1 Loss
  • 原理:计算预测值与真实值之差的绝对值的平均值。
  • 公式
  • 优点:对异常值不敏感,更稳健。
  • 缺点 :在 y = ŷ 处不可导(但通常可以处理)。
  • PyTorch : nn.L1Loss()
2. 均方误差 (Mean Squared Error, MSE)/ L2 Loss

这是回归任务中最基础、最常用的损失函数。

  • 原理:计算预测值与真实值之差的平方的平均值。
  • 公式
  • 优点:数学性质好,可导,易于优化。
  • 缺点:对异常值(离群点)非常敏感,因为误差被平方了。
  • PyTorch : nn.MSELoss()
3. SmoothL1 Loss (平滑的L1损失)

​​​​​​​ ​​​​​​​

  • 原理:MSE 和 MAE 的结合体。当误差较小时,行为像MSE(二次);当误差较大时,行为像MAE(线性)。
  • 公式
  • 优点:结合了MSE的平滑性和MAE对异常值的鲁棒性。
  • PyTorch: nn.SmoothL1Loss()

三、小结

任务类型 推荐损失函数 PyTorch 实现 TensorFlow 实现(扩展)
二分类 二元交叉熵 nn.BCELoss() BinaryCrossentropy
多分类 交叉熵 nn.CrossEntropyLoss() SparseCategoricalCrossentropy
回归 MSE / MAE / SmoothL1 nn.MSELoss() / nn.L1Loss() / nn.SmoothL1Loss() MeanSquaredError / MeanAbsoluteError / Huber
相关推荐
老兵发新帖4 分钟前
next drawio界面卡死问题分析
人工智能·draw.io
一楼的猫12 分钟前
茄子写作助手——品牌搜索突破9万后的技术型品牌认知与官网入口指南
人工智能·学习·机器学习·chatgpt·ai写作
ZeroNews内网穿透13 分钟前
NAS部署Hermes AI Agent + 零讯内网穿透,实现远程可管理的AI助手
人工智能·安全·ai·内网穿透
隔窗听雨眠26 分钟前
原生一体化多模态大模型技术研究:从拼接到统一的架构革命
人工智能·架构
月疯32 分钟前
torch:expand和repeate的区别
开发语言·python·深度学习
羊羊小栈36 分钟前
Uplift营销供应链协同决策系统(基于Uplift因果推断与运筹优化算法)
前端·人工智能·算法·毕业设计·大作业
苏州邦恩精密39 分钟前
江苏三维扫描仪厂家如何选择合适的工业测量方案?
人工智能·科技·机器学习·3d·自动化·制造
humors22139 分钟前
100种社会实践
人工智能·程序人生
保卫大狮兄44 分钟前
什么是WBS项目管理?WBS有哪些核心功能?
大数据·人工智能
标书畅畅行1 小时前
钛投标:全流程企业级AI标书解决方案,重构投标数字化生产力
大数据·人工智能