损失函数(Loss Function)
什么是损失函数在深度学习中, 损失函数是用来衡量模型参数的质量的函数, 衡量的方式是比较网络输出和真实输出的差异损失函数在不同的文献中名称是不一样的主要有以下几种命名方式多分类任务损失函数从概率角度理解我们的目的是最小化正确类别所对应的预测概率的对数的负值(损失值最小)如下图所示 案例: 演示 多分类任务的交叉熵损失函数. 损失函数介绍: 概述: 损失函数也叫成本函数, 目标函数, 代价函数, 误差函数, 就是用来衡量 模型好坏(模型拟合情况)的. 分类: 分类问题: 多分类交叉熵损失: CrossEntropyLoss 二分类交叉熵损失: BCELoss 回归问题: MAE: Mean Absolute Error, 平均绝对误差. MSE: Mean Squared Error, 均方误差. Smooth L1: 结合上述两个的特点做的升级, 优化. 多分类交叉熵损失: CrossEntropyLoss 设计思路: Loss - Σylog(S(f(x))) 简单记忆: x: 样本 f(x): 加权求和 S(f(x)): 处理后的概率 y: 样本x属于某一个类别的 真实概率. 大白话解释: 损失函数结果 最小化 正确类别所对应的 预测概率的对数的 负值(损失值最小)... 细节: CrossEntropyLoss Softmax() 损失计算, 后续如果用这个损失函数, 则: 输出层就不用额外调用 softmax()激活函数了. # 导包 import torch import torch.nn as nn # 1. 定义函数, 演示: 多分类交叉熵损失. def dm01(): # 1. 手动创建样本的真实值 - 就是上述公式中的 y y_true torch.tensor([[0, 1, 0], [1, 0, 0]], dtypetorch.float) #one-hot编码的张量 #y_true torch.tensor([1, 2]) #类别索引张量 # 2. 手动创建样本的预测值 - 就是上述公式中的 f(x) y_pred torch.tensor([[0.1, 0.8, 0.1], [0.7, 0.2, 0.1]], requires_gradTrue, dtypetorch.float) # 3. 创建多分类交叉熵损失函数. criterion nn.CrossEntropyLoss() # 平均损失, 来源于参数: reduction: str mean, # 4. 计算损失值. loss criterion(y_pred, y_true) print(f损失值: {loss}) # 2. 测试 if __name__ __main__: dm01()二分类任务损失函数在处理二分类任务时我们不再使用softmax激活函数而是使用sigmoid激活函数那损失函数也相应的进行调整使用二分类的交叉熵损失函数其中:1、y是样本x属于某一个类别的真实概率2、而y^是样本属于某一类别的预测概率3、L用来衡量真实值y与预测值y^之间差异性的损失结果。在pytorch中实现时使用nn.BCELoss() 如下所示因为公式中没有包含Sigmoid激活函数, 所以使用BCELoss的时候, 还需要手动指定 Sigmoid. 案例: 演示二分类任务的损失函数. 二分类任务的损失函数(BCELoss): 公式: Loss -ylog(预测值) - (1 - y)log(1 - 预测值) 细节: 因为公式中没有包含Sigmoid激活函数, 所以使用BCELoss的时候, 还需要手动指定 Sigmoid. # 导包 import torch import torch.nn as nn # 1. 定义函数, 演示: 二分类任务的损失函数. def dm01(): # 1. 设置真实值. y_true torch.tensor([0, 1, 0], dtypetorch.float) # 2. 设置预测值(概率) y_pred torch.tensor([0.6901, 0.5423, 0.2639]) # 3. 创建二分类交叉熵损失函数. criterion nn.BCELoss() # reduction: str mean - 均值 # 4. 计算损失值. loss criterion(y_pred, y_true) print(f损失值: {loss}) # 2. 测试 if __name__ __main__: dm01()回归任务损失函数-MAE损失函数Mean absolute loss(MAE)也被称为L1 Loss是以绝对误差作为距离。损失函数公式特点是1、由于L1 loss具有稀疏性为了惩罚较大的值因此常常将其作为 正则项添加到其他loss中作为约束。2、L1 loss的最大问题是梯度在零点不平滑导致会跳过极小值。回归任务损失函数-MSE损失函数Mean Squared Loss/ Quadratic Loss(MSE loss)也被称为L2 loss或欧氏距离机器学习中为什么曼哈顿距离用的少欧氏距离用的多因为欧式距离有平方如果你有异常值他会放大你的异常值它以误差的平方和的均值作为距离 损失函数公式:特点是1、L2 loss也常常作为正则项。2、当预测值与目标值相差很大时, 梯度容易爆炸。曲线如下图所示回归任务损失函数-Smooth L1损失函数Smooth L1说的是光滑之后的L1。损失函数公式:其中f(x)−y 为真实值和预测值的差值。从右图中可以看出该函数实际上就是一个分段函数。1、在[-1,1]之间实际上就是L2损失这样解决了L1的不光滑问题。2、在[-1,1]区间外实际上就是L1损失这样就解决了离群点梯度爆炸的问题。 案例: 演示 回归任务的损失函数介绍. 回归任务常用损失函数如下: MAE: Mean Absolute Error, 平均绝对误差. 公式: 误差绝对值之和 / 样本总数 类似于L1正则化, 权重可以降维0, 数据会变得稀疏. 弊端: 在0点不平滑, 可能错过最小值. MSE: Mean Squared Error, 均方误差. 公式: 误差平方之和 / 样本总数 弊端: 如果差值过大, 可能存在梯度爆炸的情况. Smooth L1: 就是基于MAE 和 MSE做的综合, 在 [-1, 1]是 L2(MSE), 其它段时L1. 这样即解决了L1不平滑的问题(0点不可导, 可能错过最小值) 又解决了L2(MSE)的 梯度爆炸的问题. # 导包 import torch import torch.nn as nn # 1. 定义函数, 演示: MAE 损失函数. def dm01(): # 1. 定义变量, 记录: 真实值. y_true torch.tensor([2.0, 2.0, 2.0], dtypetorch.float) # 2. 定义变量, 记录: 预测值. y_pred torch.tensor([1.0, 1.0, 1.9], requires_gradTrue) # 3. 创建MAE损失函数对象. criterion nn.L1Loss() # 4. 计算损失. loss criterion(y_pred, y_true) # 5. 输出损失. print(fMAE: {loss}) # 2. 定义函数, 演示: MSE 损失函数. def dm02(): # 1. 定义变量, 记录: 真实值. y_true torch.tensor([2.0, 2.0, 2.0], dtypetorch.float) # 2. 定义变量, 记录: 预测值. y_pred torch.tensor([1.0, 1.0, 1.9], requires_gradTrue) # 3. 创建MSE损失函数对象. criterion nn.MSELoss() # 4. 计算损失. loss criterion(y_pred, y_true) # 5. 输出损失. print(fMSE: {loss}) # 3. 定义函数, 演示: Smooth L1 损失函数. def dm03(): # 1. 定义变量, 记录: 真实值. y_true torch.tensor([2.0, 2.0, 2.0], dtypetorch.float) # 2. 定义变量, 记录: 预测值. y_pred torch.tensor([1.0, 1.0, 1.9], requires_gradTrue) # 3. 创建Smooth L1损失函数对象. criterion nn.SmoothL1Loss() # 4. 计算损失. loss criterion(y_pred, y_true) # 5. 输出损失. print(fSmooth L1: {loss}) # 4. 测试 if __name__ __main__: # dm01() # 0.699999988079071 # dm02() # 0.6700000166893005 dm03() # 0.33500000834465027

相关新闻

OpenClaw霸榜,Agent正悄无声息地干掉传统“App”!

OpenClaw霸榜,Agent正悄无声息地干掉传统“App”!

手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定! 一次十拿九稳的预判 这毫无疑问是开源圈子里,最让人头皮发麻的增长神话。 只花了短短三个月,OpenClaw在GitHub上的星星数量就冲到了历史第一。…

2026/7/7 1:44:10 阅读更多 →
OpenClaw全解析:教你打造能干又便宜的“数字员工”!

OpenClaw全解析:教你打造能干又便宜的“数字员工”!

手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定! 大伙儿用上了吗? OpenClaw这玩意儿一出来,可以说是把咱们对AI助手的固有印象给砸了个稀碎。这可不是个光陪聊的开源平台,它是真能听…

2026/7/6 4:40:56 阅读更多 →
OpenClaw框架对工业PHM智能化的深度影响与发展方向

OpenClaw框架对工业PHM智能化的深度影响与发展方向

当Agent原生架构遇上工业运维,不是替代,而是重塑交互方式一、引言:工业PHM的「最后一公里」问题 1.1 理想与现实的差距 理想中的PHM(预测性维护): 传感器数据采集 → 分析模型 → 故障预测 → 主动维护 → …

2026/7/5 6:10:29 阅读更多 →

最新新闻

5G+物联网智慧物流园区:一套系统如何把结算时间砍掉80%(PPT)

5G+物联网智慧物流园区:一套系统如何把结算时间砍掉80%(PPT)

传统物流园区管理靠人工对账、纸质单据、电话调度,一份账单核对要花几个小时,车辆进出全靠人工登记。这份《5G物联网智慧物流园区综合解决方案》给出了一套完整答案:用5G、AI、物联网、云计算打通园区管理、订单、仓储、运输、结算五大子系统…

2026/7/7 18:04:21 阅读更多 →
我加了 `InMemorySaver`,为什么 Agent 还是没记忆?

我加了 `InMemorySaver`,为什么 Agent 还是没记忆?

Agent 能调工具之后,我开始做一件看起来很基础但很容易踩坑的事:让 Agent 记住上下文。 我按照文档加了 checkpointerInMemorySaver(),满心期待 Agent 能像 ChatGPT 一样记得上一句。结果第二次运行脚本,它又问"这是我们的第…

2026/7/7 18:04:21 阅读更多 →
工程经营管理软件怎么选型,统筹营收成本回款规避项目经营亏损

工程经营管理软件怎么选型,统筹营收成本回款规避项目经营亏损

当前建筑行业竞争白热化,行业整体利润空间持续压缩,不少工程企业同时运营多个在建项目,依靠财务、商务各自独立Excel台账核算营收、成本、应收款项,单个项目盈亏核算滞后、隐性成本失控、应收账款催收乏力等问题层出不穷&#xff…

2026/7/7 18:00:20 阅读更多 →
2026短视频矩阵服务商揭秘:这些核心优势你不可错过

2026短视频矩阵服务商揭秘:这些核心优势你不可错过

在短视频流量红利持续释放的当下,越来越多的企业开始寻求专业的短视频矩阵服务商来破解获客难题。然而,市面上服务商水平参差不齐,选择一个可靠、高效的合作伙伴,往往能直接影响企业线上业务的成败。本文将不从营销角度出发&#…

2026/7/7 18:00:20 阅读更多 →
GetQzonehistory:三步完成QQ空间历史数据永久备份的终极指南

GetQzonehistory:三步完成QQ空间历史数据永久备份的终极指南

GetQzonehistory:三步完成QQ空间历史数据永久备份的终极指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字时代,我们的青春记忆和珍贵时光往往散落在各种…

2026/7/7 17:58:19 阅读更多 →
spring boot 和 spring MVC 有什么区别

spring boot 和 spring MVC 有什么区别

一、谁用得更多?(2026 企业现状)新项目 100% 用 Spring Boot;传统纯 Spring MVC 仅存量老系统维护行业数据:79% 企业正在使用 Spring Boot,Java 后端市场份额接近 30%,纯原生 Spring MVC 仅 6.6…

2026/7/7 17:58:19 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻