常用损失函数 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 来检验算法模型的优劣, ...
随机推荐
- Qt采集本地摄像头推流成rtsp/rtmp(可网页播放/支持嵌入式linux)
一.功能特点 支持各种本地视频文件和网络视频文件. 支持各种网络视频流,网络摄像头,协议包括rtsp.rtmp.http. 支持将本地摄像头设备推流,可指定分辨率和帧率等. 支持将本地桌面推流,可指定 ...
- Qt编写的项目作品36-秘钥生成工具
一.功能特点 (一)常规秘钥机制 远程联网激活,每次启动都联网查看使用时间等,这种方法最完美,缺点是没法联网的设备就歇菜了,而很多设备都是要求离线使用无法联网. 通过获取本地的硬盘+CPU等硬件的编号 ...
- GNU Make中CPPFLAGS和CXXFLAGS之间的区别
GNU Make 是一个流行的构建工具,用于编译和链接源代码.在 GNU Make 中,CPPFLAGS 和 CXXFLAGS 都是用于指定编译器选项的变量.它们之间的主要区别在于它们分别适用于 C ...
- 解决 raw.githubusercontent.com 无法访问的问题
解决 raw.githubusercontent.com 无法访问的问题 电信默认 DNS 直接遮蔽 github DNS 1: 61.139.2.69 DNS 2: 218.6.200.139 C: ...
- 工作流调度器-Azkaban
1.工作流调度器 1.为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 各任务单元之间存在时间先后 ...
- STL 容器操作
vector set转化为vector:vec.assign(set.begin(), set.end()) map 1. map默认从小到达排序,想要从大到小,可以: map<string, ...
- pytest测试不通过重跑
在执行自动化测试时,可能存在外在因素导致测试不通过,这个时候就需要多次执行用例查看结果 1.安装 pip install pytest-rerunfailures 2.添加 在需要重跑的用例上加@py ...
- 手撸原生js放大镜效果
普及知识:放大镜特效涉及到的几个值 offsetWidth 获取元素的宽度offsetHeight 获取元素的高度offsetLeft父元素没有定位时,获取元素距离页面的左边距,父元素有定位时 ...
- superset 1.3版本WIN10安装实录
首先说下,为什么要这么做,因为二开需要,二开要有源码,然后对源码修改,编译,所以不能通过类似https://zhuanlan.zhihu.com/p/271695878这种方式,直接安装: 1.去Gi ...
- Superset 下钻与交叉筛选
以下内容来自外网:https://github.com/apache/superset/issues/6774 具体查看外网,我目前还没有琢磨,如果你有了思路请再下方留言 下面这个网址也有个交叉筛选: ...