常用损失函数 LossFunction
文章结构
- 损失函数在神经网络中的位置
- 常用的损失函数(结构:解释,公式,缺点,适用于,pytorch 函数)
- MAE/L1 Loss
- MSE/L2 Loss
- Huber Loss
- 对信息量、熵的解释
- relative entropy 相对熵/ Kullback-Leibler KL Loss
- Cross Entropy Loss 交叉熵(包含对softmax 层的解释)
- 相对熵、熵、和交叉熵的关系
- Hinge Loss
损失函数在神经网络中的位置
forward → loss → backward
常用的损失函数



信息量
由香农引入,可以理解为对事件X发生概率的估计。一件事越经常发生,就越容易预测,它所包含的信息量就越小。
公式:

其中,
表示信息量,
表示事件X中的一个种类,
表示该种类的概率分布。
取对数
是为了方便计算,接下来都用简写
代替。
熵
每个种类的发生概率与信息量的乘积和,表示一个系统不确定性或混乱程度。
对于系统的不确定性可以理解为,由概率分布计算得到的信息量越大,表示越不容易预测,同时意味着并不遵循一定的规律,越混乱/不确定。
公式:

其中 ,
表示熵,求和上标
表示事件X的种类/分类的个数(举例,掷硬币这一事件的种类有正、反2种),
表示第i种类的概率分布。
relative entropy 相对熵/ Kullback-Leibler KL Loss
、
为 事件X 中取值的两个概率分布,
对
的相对熵(≥ 0 ):

公式引用自:http://t.csdnimg.cn/hRb5X
这里的两个概率分布可以是(由标签/target 计算得到的)真实概率
和模型预测概率
。
在pytorch 官方文档中 KLDivLoss — PyTorch 2.3 documentation 解释为

pytorch 函数:

Cross Entropy Loss 交叉熵
公式:

表示 真实概率
和预测概率
的差距。
公式引用自详解机器学习中的熵、条件熵、相对熵和交叉熵 - 遍地胡说 - 博客园 (cnblogs.com)
其中,
在实际运用中,由 softmax 层 计算得到 。
Softmax 层输出的是每个分类的概率分布,将数字转化为概率。

在pytorch 官方文档中,其中
是一个1D 的张量,为每个类别分配权重,C 为事件的分类总数,相当于上文中的n。
为softmax的输出。

适用于:分类;样本分布不平衡的训练集
pytorch 函数:

其中,官方文档解释,input不需要normalize。

常用损失函数 LossFunction的更多相关文章
- 【深度学习】一文读懂机器学习常用损失函数(Loss Function)
最近太忙已经好久没有写博客了,今天整理分享一篇关于损失函数的文章吧,以前对损失函数的理解不够深入,没有真正理解每个损失函数的特点以及应用范围,如果文中有任何错误,请各位朋友指教,谢谢~ 损失函数(lo ...
- pytorch常用损失函数
损失函数的基本用法: criterion = LossCriterion() #构造函数有自己的参数 loss = criterion(x, y) #调用标准时也有参数 得到的loss结果已经对min ...
- 损失函数 hinge loss vs softmax loss
1. 损失函数 损失函数(Loss function)是用来估量你模型的预测值 f(x) 与真实值 Y 的不一致程度,它是一个非负实值函数,通常用 L(Y,f(x)) 来表示. 损失函数越小,模型的鲁 ...
- [AI]神经网络章3 损失函数
损失函数 作用 在有监督的学习中,需要衡量神经网络输出和所预期的输出之间的差异大小.这种误差函数需要能够反映出当前网络输出和实际结果之间一种量化之后的不一致程度,也就是说函数值越大,反映出模型预测的结 ...
- 机器学习中的损失函数 (着重比较:hinge loss vs softmax loss)
https://blog.csdn.net/u010976453/article/details/78488279 1. 损失函数 损失函数(Loss function)是用来估量你模型的预测值 f( ...
- 对于分类问题的神经网络最后一层的函数:sigmoid、softmax与损失函数
对于分类问题的神经网络最后一层的函数做如下知识点总结: sigmoid和softmax一般用作神经网络的最后一层做分类函数(备注:sigmoid也用作中间层做激活函数): 对于类别数量大于2的分类问题 ...
- [ch03-00] 损失函数
系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI, 点击star加星不要吝啬,星越多笔者越努力. 第3章 损失函数 3.0 损失函数概论 3.0.1 概念 ...
- [PyTorch 学习笔记] 4.2 损失函数
本章代码: https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson4/loss_function_1.py https:// ...
- Tensorflow 2.0 深度学习实战 —— 详细介绍损失函数、优化器、激活函数、多层感知机的实现原理
前言 AI 人工智能包含了机器学习与深度学习,在前几篇文章曾经介绍过机器学习的基础知识,包括了监督学习和无监督学习,有兴趣的朋友可以阅读< Python 机器学习实战 >.而深度学习开始只 ...
- 深度学习常见的优化方法(Optimizer)总结:Adam,SGD,Momentum,AdaGard等
机器学习的常见优化方法在最近的学习中经常遇到,但是还是不够精通.将自己的学习记录下来,以备不时之需 基础知识: 机器学习几乎所有的算法都要利用损失函数 lossfunction 来检验算法模型的优劣, ...
随机推荐
- SpringBoot配置文件敏感信息加密,springboot配置文件数据库密码加密jasypt
使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些.打开application.properties或application.yml,比如mysq ...
- .NET Bioss相关数据读写
本文我们介绍针对Bios如何读取.写入数据,比如最常见的SN读取以及烧录 WMI查询 先看看WMI方式,可以用于查询和管理Windows系统的各种信息,包括读取BIOS信息 WMI-Win32_BIO ...
- [转]IRIG-B码授时工作原理
在授时设备中有一种是B码授时的,但是大部分人不太清楚何为B码授时?这种类型的授时工作原理是怎么样? 首先我们要知道什么是B码,然后再介绍它的授时工作原理,B码是一种电力术语,它是IRIG-B码的通俗叫 ...
- MFC-error C2589: “(”:“::”右边的非法标记
MFC-error C2589: "(":"::"右边的非法标记 错误信息 出错语句 问题原因 解决办法 错误信息 ① 错误 C2589 "(&quo ...
- 启动redis失败Could not create server TCP listening socket 127.0.0.1:6379:bind:操作成功
问题: 启动redis失败Could not create server TCP listening socket 127.0.0.1:6379:bind:操作成功 解决方法: 在命令行提示符C:\P ...
- Scala,一门「特立独行」的语言!
入门 Spark 的路上很难不接触 Scala . Scala 似乎是为 java 提供了很多『类似函数式编程』的语法糖,这里记录一下这个语言独特的地方分享给读者朋友们. 参考资料主要有: 曹洁 . ...
- Linux USB 文件读写性能测试
USB 端口读写性能测试:========================================================读测试:sync && echo 3 > ...
- Solution -「UOJ #418」三角形
\(\mathscr{Description}\) Link. 给定一棵含有 \(n\) 个结点的有根树, 点 \(u\) 有正权 \(w_u\). 每次操作可以: 在 \(u\) 上放 \( ...
- Java开发常用工具链接-copy
Java开发常用工具链接这里汇总了下Java开发过程中常用的一些工具,与一些自动化生成工具. 1. Spring相关工具通过Sql生成Spring相关的项目. Sql生成SpringBoot项目通过M ...
- w3cschool-HBase官方文档-3MapReduce
HBase和MapReduce 2018-03-30 13:59 更新 HBase和MapReduce Apache MapReduce 是一个用于分析大量数据的软件框架.它由 Apache Hado ...