熵、KL散度、交叉熵公式及通俗理解
- 熵
根据香农信息论中对于熵的定义,给定一个字符集,假设这个字符集是X,对x∈X,其出现概率为P(x),那么其最优编码(哈夫曼编码)平均需要的比特数等于这个字符集的熵。
如果字符集中字符概率越趋于平均,说明某个字符被预测的不确定性最大,只有最后我们知道了某一可能性确实发生了,才得到最大的信息量,因此它的熵就越大。而如果字符集中字符概率分布差异越大,则认为我们知道某一字符出现的可能性比其他类更大,这个字符集包含的信息量很小,因此它的熵越小。
- KL散度
KL散度用于计算两个随机变量的差异程度。相对于随机变量A,随机变量B有多大的不同。注意,由于相较基准不同,KL(A||B) ≠ KL(B||A)。
从编码的角度理解,在同样的字符集上,假设存在另一个概率分布Q(X)。如果用概率分布P(X)的最优编码(即字符x的编码长度等于log[1/P(x)]),来为符合分布Q(X)的字符编码,那么表示这些字符就会比理想情况多用一些比特数。KL-divergence就是用来衡量这种情况下平均每个字符多用的比特数,因此可以用来衡量两个分布的距离
- 交叉熵
交叉熵用于度量两个分布或者说两个随机变量、两个事件不同的程度。从编码的角度理解,使用随机变量B的最优编码方式对随机变量A编码所需要的字节数,具体来说就是使用哈夫曼编码去根据B的概率分布对A进行编码,所需要的编码数。
例如说,在深度学习中常用的交叉熵损失,A的分布通常为one-hot分布作为真实概率分布(也就是某一预测出现最肯定的情况),而B是预测概率分布。在模型训练时,希望目标优化函数能够尽可能小,我们希望能够B的分布概率能够向着A的方向分布,此时熵最小。
参考资料:
熵、KL散度、交叉熵 - 知乎 (zhihu.com)
熵、KL散度、交叉熵公式及通俗理解相关推荐
- 交叉熵三连(3)——交叉熵及其使用
相关文章: 交叉熵三连(1)--信息熵 交叉熵三连(2)--KL散度(相对熵) 交叉熵三连(3)--交叉熵及其使用 在神经网络中,我们经常使用交叉熵做多分类问题和二分类的损失函数,在通过前面的两篇 ...
- 自信息/熵/联合熵/条件熵/相对熵/交叉熵/互信息及其相互之间的关系
[深度学习基础]:信息论(一)_自信息/熵/联合熵/条件熵/相对熵/交叉熵/互信息及其相互之间的关系_bqw的博客-CSDN博客 详解机器学习中的熵.条件熵.相对熵和交叉熵 - 遍地胡说 - 博客园
- 交叉熵损失函数python_交叉熵损失函数nn.CrossEntropyLoss()
nn.CrossEntropyLoss() 1.引言 在使用pytorch深度学习框架做多分类时,计算损失函数通常会使用交叉熵损失函数nn.CrossEntropyLoss() 2. 信息量和熵 信息 ...
- matlab计算kl散度命令,熵,交叉熵,KL散度公式与计算实例
交叉熵(Cross Entropy)和KL散度(Kullback–Leibler Divergence)是机器学习中极其常用的两个指标,用来衡量两个概率分布的相似度,常被作为Loss Function ...
- 信息量-log2P(莫斯编码使用频繁P大的字符编码段信息量少)、信息熵:期望E=-Plog2P、两点分布交叉熵=KL散度=相对熵=-plnp-(1-p)ln(1-p)不对称、JS散度对称
信息熵为什么要定义成-Σp*log§? 信息熵为什么要定义成-Σp*log(p)? 在解释信息熵之前,需要先来说说什么是信息量. 信息量是对信息的度量,单位一般用bit. 信息论之父克劳德·艾尔伍德· ...
- 交叉熵和mse_交叉熵 相对熵(KL散度/互熵)
香农熵 熵考察(香农熵)的是单个的信息(分布)的期望:反映了一个系统的无序化(有序化)程度,一个系统越有序,信息熵就越低,反之就越高. 交叉熵 交叉熵考察的是两个的信息(分布)的期望: 交叉熵和熵,相 ...
- 数学之美:信息的度量和作用 KL散度 自信息 熵 相对熵 KL divergence entropy
当上述公式中概率相等时会推出,H刚好等于5比特. 自信息: 一条信息的信息量与该信息的不确定性有关.如果想要搞懂一件非常不清楚的事,就需要了解大量的信息,相反如果一件事我们已经了如指掌,那就不需要太多 ...
- 机器学习常见损失函数,二元交叉熵,类别交叉熵,MSE,稀疏类别交叉熵
一 损失函数介绍 损失函数用于描述模型预测值与真实值的差距大小.一般有有两种常见的算法--均值平方差(MSE)和交叉熵.下面来分别介绍每个算法的具体内容. 1 均值平方差 均值平方差(Mean Squ ...
- 最大交叉熵matlab实现,交叉熵算法
交叉熵损失函数_计算机软件及应用_IT/计算机_专业资料.1.从方差代价函数说起... 演化算法 [C], 王斌; 李元香 4.一种求解抛物型方程的 Monte Carlo 并行算法 [C], 刘芳芳 ...
最新文章
- 网站用户访问速度监测分析项目
- STM32F1笔记(八)时钟
- IntelliJ IDEA 如何用 真机 测试安卓(Android)App 实战移动端
- .net 特性 Attribute
- python实现查询mac号对应的OUI厂商信息
- [高光谱] (6w字巨详细) GitHub开源项目Hyperspectral-Classification的解析
- 这本书会是你在算法分析道路上最好的养料
- python 正则匹配电话与ip
- 小规模纳税人和一般纳税人的区别
- 论文的英文文献在哪找(除了知网)?
- zscore标准化步骤_几种常用数据标准化方法
- 模电实验报告:单级共射放大电路
- 局域网即时通讯Active Messenger 完美破解版本 最新版本破解
- 开源项目之:SharpDevelop
- html 组织结构 图表,HTML5实现的矢量卡片式组织结构图
- What? 少儿编程语言Scratch被禁!
- 1228--八目鳗烧烤店
- 计算机创造奇迹的英语作文,英语作文_可以创造奇迹的3D打印机 (有声)_沪江英语...
- 理想汽车2022届数据开发岗位笔试
- 自己动手写 printf函数
热门文章
- 制作APP?零编程积木式搭建,在应用公园就是真么简单
- 对应用有限制的含粪便废水的抽取设备建筑材料英国UKCA认证—EN 12050-3
- python任务计划 0x1_从任务调度器执行python脚本时出现0x1错误(Windows 10)
- flask配置https
- Java 在PDF中添加工具提示|ToolTip
- js 读取excel文件中的时间格式转换问题
- Activiti流程实例开始结束,接收任务活动
- 【译】Delta Lake 0.5.0介绍
- Python 计算变上限二重积分的数值模拟进阶
- application.properties