目录

1.交叉熵损失函数的计算过程:

2.交叉熵损失函数的公式:

3.NLL loss(负对数似然函数损失)

4.NLL_Loss和交叉熵损失函数关系


1.交叉熵损失函数的计算过程:

交叉熵损失函数经常用于分类问题中,特别是在神经网络做分类问题时,也经常使用交叉熵作为损失函数,此外,由于交叉熵涉及到计算每个类别的概率,所以交叉熵几乎每次都和sigmoid(或softmax)函数一起出现。

我们用神经网络最后一层输出的情况,来看一眼整个模型预测、获得损失和学习的流程:

  1. 神经网络最后一层得到每个类别的得分scores(也叫logits)
  2. 该得分经过sigmoid(或softmax)函数获得概率输出;
  3. 模型预测的类别概率输出与真实类别的one hot形式进行交叉熵损失函数的计算。

2.交叉熵损失函数的公式:

参考:https://zhuanlan.zhihu.com/p/35709485

3.NLL loss(负对数似然函数损失)定义和pytorch实现

但是pytorch中的NLL loss定义中却没有对score做log运算(仅对输入score做求和取负),因此官方文档要求,在使用nll_loss之前需要对score做log运算,这样计算出来的就是nll-loss原本的定义:

torch.nn.functional.nll_loss — PyTorch 1.11.0 documentation

并通过参数reduction 可以控制输出是否做“不做操作|平均|求和”

4.NLL_Loss和交叉熵损失函数关系

  • 就数学上的严格定义而言,二者区别在于是否对score做softmax运算,即:

  • 就pytorch的实现而言,二者的区别在于是否对score做log_foftmax运算(因为pytorch中NLL_Loss没有对score做log运算):

换句话说,在pytorch中,NLLLoss 的 输入 是一个对数概率向量和一个目标标签. 它不会为我们计算对数概率. 适合网络的最后一层是log_softmax. 损失函数 nn.CrossEntropyLoss() 与 NLLLoss() 相同, 唯一的不同是它为我们去做 softmax.

CrossEntropyLoss()=log_softmax() + NLLLoss()

其中,softmax()定义如下:

log_softmax()定义如下:

参考:损失函数——负对数似然_Pr4da的博客-CSDN博客_负对数似然损失函数

Pytorch详解NLLLoss和CrossEntropyLoss_豪哥123的博客-CSDN博客_nllloss

CrossEntropyLoss与NLLLoss的总结_街道口扛把子的博客-CSDN博客_f.nll_loss

交叉熵损失函数和NLL_loss相关推荐

  1. 深入理解Pytorch负对数似然函数(torch.nn.NLLLoss)和交叉熵损失函数(torch.nn.CrossEntropyLoss)

    在看Pytorch的交叉熵损失函数torch.nn.CrossEntropyLoss官方文档介绍中,给出的表达式如下.不免有点疑惑为何交叉熵损失的表达式是这个样子的 loss ⁡ ( y , clas ...

  2. 交叉熵损失函数、修正Huber损失、极大似然估计、负对数似然、似然与交叉熵、KL散度

    交叉熵损失函数.修正Huber损失.极大似然估计.负对数似然.似然与交叉熵.KL散度 目录

  3. 交叉熵损失函数的通用性(为什么深度学习DL普遍用它):预测输出与 y 差得越多,L 的值越大,也就是说对当前模型的 “ 惩罚 ” 越大,而且是非线性增大是一种类似指数增长的级别,结论:它对结果有引导性

    交叉熵损失函数的通用性(为什么深度学习DL普遍用它):预测输出与 y 差得越多,L 的值越大,也就是说对当前模型的 " 惩罚 " 越大,而且是非线性增大是一种类似指数增长的级别,结 ...

  4. LESSON 10.110.210.3 SSE与二分类交叉熵损失函数二分类交叉熵损失函数的pytorch实现多分类交叉熵损失函数

    在之前的课程中,我们已经完成了从0建立深层神经网络,并完成正向传播的全过程.本节课开始,我们将以分类深层神经网络为例,为大家展示神经网络的学习和训练过程.在介绍PyTorch的基本工具AutoGrad ...

  5. 交叉熵损失函数分类_交叉熵损失函数

    我们先从逻辑回归的角度推导一下交叉熵(cross entropy)损失函数. 从逻辑回归到交叉熵损失函数 这部分参考自 cs229-note1 part2. 为了根据给定的 预测 (0或1),令假设函 ...

  6. 损失函数|交叉熵损失函数

    看完文章,希望你能顺利回答以下题目: 题目1:这个任务,你会使用什么损失函数?         题目2: 交叉熵表达式?         题目3:为什么使用交叉熵?能不能用MSE?         题 ...

  7. 语义分割损失函数系列(1):交叉熵损失函数

    最近一直在做一些语义分割相关的项目,找损失函数的时候发现网上这些大佬的写得各有千秋,也没说怎么用,在此记录一下自己在训练过程中使用损失函数的一些心得.本人是使用的Pytorch框架,故这一系列都会基于 ...

  8. 深度学习中softmax交叉熵损失函数的理解

    1. softmax层的作用 通过神经网络解决多分类问题时,最常用的一种方式就是在最后一层设置n个输出节点,无论在浅层神经网络还是在CNN中都是如此,比如,在AlexNet中最后的输出层有1000个节 ...

  9. softmax函数与交叉熵损失函数

    本文主要介绍了当前机器学习模型中广泛应用的交叉熵损失函数与softmax激励函数. 这个损失函数主要应用于多分类问题,用于衡量预测值与实际值之间的相似程度. 交叉熵损失函数定义如下: LCE(y^,y ...

最新文章

  1. ATS缓存中间层介绍
  2. 企业有需求,那么站点就应该不断完善功能
  3. Python配置pip国内镜像源
  4. ubuntu16.04安装mysql-workbench
  5. [NewLife.XCode]脏数据
  6. node:爬虫爬取网页图片
  7. 真的有无人工厂吗,IoT 怎么在产业界落地?| 赠书
  8. (一)Redis初学教程之安装篇
  9. 《OSPF网络设计解决方案(第2版)》一1.4 TCP/IP协议簇
  10. C语言实现线性表的链式存储结构
  11. uni-app实现android,ios打包过程详解
  12. 列表展示:RecyclerView多条目
  13. JavaScript入门案例
  14. 计算机无法复制大文件格式,U盘复制文件电脑提示文件过大无法复制怎么解决?...
  15. TCP/IP网络编程之多进程服务端(二)
  16. Geforce Game Ready驱动程序无法继续安装
  17. 逆向初学者做题记录3.28
  18. Registry私有仓库搭建及认证【转】
  19. Qt:创建文件夹QDir
  20. jquery竖向走马灯_jquery实现页面百叶窗走马灯式翻滚显示效果的方法_jquery

热门文章

  1. 详解线程锁、进程锁以及分布式锁,开发过程中解决的具体问题
  2. MRPII/ERP对企业经营方式转变的影响(转)
  3. nginx文件服务器判断文件是否存在,nginx try_files指令判断文件是否存在实例
  4. 数据库课程设计——宾馆管理系统UML状态图
  5. 在亚洲市场进行夜间交易: 如何保持盈利
  6. 《MATLAB SYNTAX》第9章 三维图形可视化
  7. mysql fifo 批量加载_使用pt-fifo-split 工具往mysql插入海量数据
  8. xss payload收集
  9. 论文笔记Neural Ordinary Differential Equations
  10. 射频了解一丢丢【2】