损失函数总结(六):KLDivLoss、BCEWithLogitsLoss

news2024/9/21 11:22:03

损失函数总结(六):KLDivLoss、BCEWithLogitsLoss

  • 1 引言
  • 2 损失函数
    • 2.1 KLDivLoss
    • 2.2 BCEWithLogitsLoss
  • 3 总结

1 引言

在前面的文章中已经介绍了介绍了一系列损失函数 (L1LossMSELossBCELossCrossEntropyLossNLLLossCTCLossPoissonNLLLossGaussianNLLLoss)。在这篇文章中,会接着上文提到的众多损失函数继续进行介绍,给大家带来更多不常见的损失函数的介绍。这里放一张损失函数的机理图:
在这里插入图片描述

2 损失函数

2.1 KLDivLoss

Kullback-Leibler散度(KL Divergence),通常称为KLDivLoss,是机器学习深度学习中的一种损失函数,特别用于概率模型的上下文中,比如变分自动编码器(VAE)。它用来度量两个概率分布之间的差异。KLDivLoss的数学表达式如下:
K L D i v L o s s ( p ∥ q ) = E p ( x ) log ⁡ p ( x ) q ( x ) = ∑ i = 1 N p ( x i ) ⋅ ( log ⁡ p ( x i ) − log ⁡ q ( x i ) ) KLDivLoss(p∥q)=E_{p(x)} \log \frac{p(x)}{q(x)} = \sum_{i=1}^{N}p(x_i )⋅(\log p(x_i)−\log q(x_i)) KLDivLoss(pq)=Ep(x)logq(x)p(x)=i=1Np(xi)(logp(xi)logq(xi))

其中:

  • p p p 表示模型预测值。
  • q q q 表示模型实际值。
  • N N N 表示样本量。

代码实现(Pytorch):

import torch.nn.functional as F
kl_loss = nn.KLDivLoss(reduction="batchmean")
# input should be a distribution in the log space
input = F.log_softmax(torch.randn(3, 5, requires_grad=True), dim=1)
# Sample a batch of distributions. Usually this would come from the dataset
target = F.softmax(torch.rand(3, 5), dim=1)
output = kl_loss(input, target)

kl_loss = nn.KLDivLoss(reduction="batchmean", log_target=True)
log_target = F.log_softmax(torch.rand(3, 5), dim=1)
output = kl_loss(input, log_target)

KLDivLoss在知识蒸馏任务中有广泛应用,值得大家关注和了解。。。。

2.2 BCEWithLogitsLoss

BCEWithLogitsLoss 是二进制交叉熵损失函数(Binary Cross-Entropy Loss)的一种变体,通常用于深度学习中的二分类问题。这个损失函数常用于神经网络训练,特别是对二元分类任务(两个类别的分类)进行模型训练。BCEWithLogitsLoss的数学表达式如下:
L ( y , y ′ ) = − 1 n ∑ i = 1 n [ y i log ⁡ ( σ ( y i ′ ) ) + ( 1 − y i ) log ⁡ ( 1 − σ ( y i ′ ) ) ] L(y, y') = -\frac{1}{n} \sum_{i=1}^{n} [y_i \log(\sigma(y_i')) + (1 - y_i) \log(1 - \sigma(y_i'))] L(y,y)=n1i=1n[yilog(σ(yi))+(1yi)log(1σ(yi))]

其中:

  • L ( y , y ′ ) L(y, y') L(y,y) 是整个数据集上的损失
  • n n n 是样本数量。
  • y i y_i yi 是第 i i i 个样本的实际标签,通常是0或1(表示两个类别中的一个)。
  • y i ′ y_i' yi 是第 i i i 个样本的模型预测的概率,通常在0和1之间
  • σ ( ) \sigma() σ()sigmoid激活函数。

代码实现(Pytorch):

loss = nn.BCEWithLogitsLoss()
input = torch.randn(3, requires_grad=True)
target = torch.empty(3).random_(2)
output = loss(input, target)
output.backward()

整体来说和BCELoss没有什么区别。BCELoss+Sigmoid=BCEWithLogitsLoss

3 总结

到此,使用 损失函数总结(六) 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。如果存在没有提及的损失函数也可以在评论区提出,后续会对其进行添加!!!!

如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1135437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【mysql】实现设置表中所有数据的update_time,要求每1000条设置在一天

实现效果示例 执行SQL:(mysql 版本查看: select VERSION() :5.7.36-log) 实现效果: 这里最后一个id 9 > 总条数 6,所以没有更新到,直接手动补下就行 SELECT * FROM my_test S…

Capture One 23 Enterprise 16.3.0.76

Capture One 23 Enterprise是一款图像处理软件,旨在为企业用户提供高效、快速和灵活的工作流程。以下是该软件的主要特点和功能: 强大的图像编辑工具:Capture One 23 Enterprise提供了一系列强大的图像编辑工具,包括色彩校正、曲…

为什么自动驾驶需要5G?

什么叫自动驾驶? 自动驾驶分为6个等级: Level 0:人工驾驶,无驾驶辅助系统,仅提醒。 Level 1:辅助人工驾驶,可实现单一的车速或转向控制自动化,仍由人工驾驶(如定速巡航…

Java--for循环

1.for循环 控制一段代码反复执行很多次 2.for循环格式 3.for循环案例详细流程说明 执行的流程: ①循环一开始&#xff0c;执行 int i 0 一次 ②此时 i 0&#xff0c;接着计算机执行循环条件语句: 0 < 3返回true&#xff0c;计算机就进到循环体中执行&#xff0c;输出:…

WSL——ubuntu中anaconda换源(conda、pip)

1、conda 打开Ubuntu&#xff0c;输入下列命令。 conda config --set show_channel_urls yes 在文件管理器地址栏&#xff0c;输入&#xff1a;\\wsl$。打开Ubuntu根路径&#xff0c;其中显示了.condarc文件。 以文本形式打开&#xff0c;并输入要换的源&#xff0c;保存即可。…

hypercube背景设置为白色,绘制高光谱3D立方体

import scipy pip install wxpython PyOpenGL和Spectral需要本地安装 可参考链接https://blog.csdn.net/qq_43204333/article/details/119837870 参考&#xff1a;https://blog.csdn.net/Tiandailan/article/details/132719745?spm1001.2014.3001.5506Mouse Functions:left-cl…

推荐几个好用的短链接网址生成平台

这里详细的介绍了几个非常不错的短网址在线生成平台&#xff0c;给日常有长链接生成短链接需求的小伙伴一些参考。由于短链接生成器比较容易失效&#xff0c;建议大家在不是特别重要的场景下使用。 前言唠叨 不管是日常写博客、写公众号的自媒体朋友&#xff0c;或者普通个人…

社区迭代|ETLCloud社区新增“论坛”啦!

ETLCloud社区是谷云科技RestCloud旗下面向开发工程师、集成研发人员等技术人员提供全方位交流和学习的开放式平台&#xff0c;也是ETLCloud在产品生态赋能上的一大亮点&#xff0c;旨在能够帮助更多的用户更快捷高效的掌握技能&#xff0c;也为企业提供集成人才培养赋能&#x…

亚马逊注册账号时老是显示内部错误

最近你们是否遇到注册亚马逊账号时一直遇到"内部错误"的情况&#xff1f;&#xff0c;这可能是由多种原因引起的。以下是一些可能有助于解决这个问题的步骤&#xff1a; 1、清除缓存和Cookie&#xff1a;有时浏览器缓存和Cookie中的问题可能导致网站错误。可以试试清…

使用 ionic + cordova + vue3 实现相册选择、拍照,并上传、预览图片

目录 1.上传组件 upload.vue 1.1 模板规划 1.2 点击添加按钮 1.2.1 实现询问弹框 1.2.2 实现拍照 1.2.3 实现相册选择 1.2.4 实现文件上传 1.2.5 校验图片类型并上传 1.2.6 获取图片列表 1.2.7 在组件内 添加图片附件 2.图片放大组件 enlarge-image.vue 2.1 点击图…

selenium+python自动化测试 —— 解决无法启动IE浏览器及报错问题!

前言&#xff1a;记录启动IE浏览器的报错及解决方法。 错误1&#xff1a; selenium.common.exceptions.WebDriverException: Message: IEDriverServer.exe executable needs to be in PATH. Please download from http://selenium-release.storage.googleapis.com/index.html…

基于 ARM+FPGA+AD平台的多类型同步信号采集仪开发及试验验证(一)上位机设计

采集仪上位机设计 本章开发了一款基于 C# 的上位机软件&#xff0c;用于对多类型同步信号采集仪的各项功能 进行操作。从采集仪的数据传输需求出发&#xff0c;上位机利用以太网 UDP 协议实现与采集仪 的数据交互&#xff0c;包括向采集仪发送控制信息与配置信息、接收采…

一文详解手眼标定公式推导

文章目录 一、坐标系运算规则1、坐标系运算规则一(点)2、坐标系运算规则二(坐标系)3、齐次变换二、手眼标定公式推导1、眼在手外2、眼在手上3、解方程AX = XB后记假设手眼标定坐标系表示如下: 机械臂基底坐标系 – base机械臂末端坐标系 – end相机坐标系 – camera标定板坐…

最新PHP号卡商城V1.31 号卡推广管理系统源码/手机卡流量卡推广网站源码

源码简介&#xff1a; 最近看卡号推广比较火,但是苦于不能综合起来供客户选择,于是找了一套源码分享给大家。最新PHP号卡商城V1.31 号卡推广管理系统源码&#xff0c;它为手机卡流量卡推广网站源码。 更新日志&#xff1a; v1.31 1.修复自助开通分站时&#xff0c;低版本数据…

如何在用pip配置文件设置HTTP爬虫IP

首先&#xff0c;定义问题&#xff1a;在 Pip 中设置HTTP爬虫IP服务器&#xff0c;以便在网络上进行访问和下载。 亲身经验&#xff1a;我曾经遇到过类似问题&#xff0c;通过设置HTTP爬虫IP服务器成功解决了网络访问问题。 数据和引证&#xff1a;根据 pip 官方文档&#xff…

界面控件DevExtreme v23.1 - UI组件 UI模板库增强

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合&#xff0c;使您可以利用现代Web开发堆栈&#xff08;包括React&#xff0c;Angular&#xff0c;ASP.NET Core&#xff0c;jQuery&#xff0c;Knockout等&#xff09;构建交互式的Web应用程序。从Angular和Reac&#xff0c…

分享8款人声分离的软件,总有一款你喜欢的

随着音乐制作技术的不断发展&#xff0c;人声分离软件成为了音乐制作过程中不可或缺的工具之一。人声分离软件可以帮助音乐制作者将多个人声部分分离出来&#xff0c;以便单独进行编辑和处理。 以下是一些人声分离软件的信息介绍&#xff1a; 1、音分轨人声分离软件&#xff1…

【AICFD案例操作】汽车外气动分析

AICFD是由天洑软件自主研发的通用智能热流体仿真软件&#xff0c;用于高效解决能源动力、船舶海洋、电子设备和车辆运载等领域复杂的流动和传热问题。软件涵盖了从建模、仿真到结果处理完整仿真分析流程&#xff0c;帮助工业企业建立设计、仿真和优化相结合的一体化流程&#x…

UWB常规TOF、TDOA、AOA算法

UWB定位的最基础技术是TOF测距、TDOA到达时间差、AOA到达角度测量&#xff1a; 定位算法&#xff1a;TOF、TDOA、AOA&#xff0f;PDOA UWB定位算法 (1) TOF&#xff08;Time of Flight飞行时间&#xff09;&#xff1a; 以基站为圆心&#xff0c;以标签和基站距离为半径画圆…

Camtasia2023屏幕录制和视频剪辑标杆软件,制作微课/游戏视频必备工具

Camtasia可不是一款简单的屏幕录制软件&#xff0c;这可是集合了屏幕录制和视频剪辑于一体的全能软件。 大多数用户都是使用Windows自带的录频方式进行屏幕录制&#xff0c;使用这种方法录制屏幕很“鸡肋”&#xff0c;比如说&#xff1a;无法区域录制、无法更改鼠标样式、无法…