在信息论中定义一个事件X=xX=xX=x的自信息(self-information)为:I(p)=−logpI(p)=-logpI(p)=−logp,表示以P(X=x)=pP(X=x)=pP(X=x)=p的概率观测到的这事件时所包含的信息量,单位为奈特(nats),P(X=x)表示事件的概率其值为p,那么一奈特就是:以1/e1/e1/e的概率观察到一个事件时获取的信息量(−log(1/e)=1-log(1/e)=1−log(1/e)=1)。可以看出自信息和熵与事件的值无关 ,只与其概率有关。 深度学习中log底数通常为eee。
熵(香农熵) 表示对整个概率分布中的不确定性总量的量化(说的通俗点就是表示随机变量不确定性的度量),表示为H(p)=Ex∼P[I(p)]=−Ex∼P[logp]H(p)=E_{x\sim P}[I(p)]=-E_{x\sim P}[log p]H(p)=Ex∼P​[I(p)]=−Ex∼P​[logp]。因为分别对应离散型随机变量和连续性随机变量,期望就是加权平均或积分,。

所以对于离散型随机变量XXX其概率分布为P(X=xi)=pi,i=1,2...nP(X=x_i)=p_i,i=1,2...nP(X=xi​)=pi​,i=1,2...n
则XXX的熵可以表示为:
H(p)=−∑i=1npilog(pi)H(p)=-\sum_{i=1}^{n}p_ilog(p_i)H(p)=−i=1∑n​pi​log(pi​)

对于连续型随机变量XXX,其取值范围是[a,b][a,b][a,b],则XXX的熵可以表示为:
H(p)=−∫abp(x)log(p(x))dxH(p)=-\int_{a}^{b}p(x)log(p(x))dxH(p)=−∫ab​p(x)log(p(x))dx
这里的p(x)p(x)p(x)为分布函数。
如果对于同一个随机变量X,有两个概率分布,分别是Q和P,我们可以使用 KL散度 来衡量这两个分布之间的差异:
DKL(P∣∣Q)=Ex∼P[log(PQ)]=Ex∼P[logp−log(q)]=∑i=1npilog(pi)−∑i=1npilog(qi)(离散)D_{KL}(P||Q)=E_{x\sim P}[log(\frac{P}{Q})]=E_{x\sim P}[logp-log(q)]=\sum_{i=1}^{n}p_ilog(p_i)-\sum_{i=1}^{n}p_ilog(q_i)(离散)DKL​(P∣∣Q)=Ex∼P​[log(QP​)]=Ex∼P​[logp−log(q)]=i=1∑n​pi​log(pi​)−i=1∑n​pi​log(qi​)(离散)
当这两个离散分布是相同的,或者这两个连续分布是“几乎处处“”相同时,KL散度是为0的。KL散度并不是对称的,对于某些分布P和Q的DKL(P∣∣Q)≠DKL(Q∣∣P)D_{KL}(P||Q)\neq D_{KL}(Q||P)DKL​(P∣∣Q)​=DKL​(Q∣∣P)。因此KL散度的选择有很大的影响。

在实际的应用中,若我们的训练数据的上的经验分布表示为pdatap_{data}pdata​(用经验分布来代表实际分布,因为实际分布是不知道的,我们可以用样本经验分布来近似得到),模型分布表示为pmodelp_{model}pmodel​,那么可以通过最小化KL散度来求得模型分布pmodelp_{model}pmodel​,KL散度表示为:DKL(pdata∣∣pmodel)=Ex∼pdata[logpdata−logpmodel]D_{KL}(p_{data}||p_{model})=E_{x\sim p_{data}}[logp_{data}-logp_{model}]DKL​(pdata​∣∣pmodel​)=Ex∼pdata​​[logpdata​−logpmodel​],相当于最小化−Ex∼pdata[logpmodel]-E_{x\sim p_{data}}[logp_{model}]−Ex∼pdata​​[logpmodel​],这是因为经验分布与参数无关, 所以最终的优化目标是模型的分布的熵。这从另外一个KL角度解释了 最大熵模型 的原理。

另外一个概念是 交叉熵 (cross-entropy),表示为熵和KL散度的和的形式:
H(P,Q)=H(P)+DKL(P∣∣Q)=−Ex∼P[logp]+Ex∼P[logp−logq]=−Ex∼P[logq]=−∑i=1npilog(qi)H(P,Q)=H(P)+D_{KL}(P||Q)=-E_{x\sim P}[log p]+E_{x\sim P}[logp-logq]=-E_{x\sim P}[logq]=-\sum_{i=1}^{n}p_ilog(q_i)H(P,Q)=H(P)+DKL​(P∣∣Q)=−Ex∼P​[logp]+Ex∼P​[logp−logq]=−Ex∼P​[logq]=−i=1∑n​pi​log(qi​)(离散)我们可以看见,当PPP为经验分布pdatap_{data}pdata​,QQQ为模型分布pmodel时p_{model}时pmodel​时,以交叉熵作为优化目标与最小化KL散度是等价的,所以交叉熵可以作为损失函数来使用。例如pytorch损失函数值之nn.BCELoss()(为甚么用交叉熵作为损失函数)

概率论与数理统计 浙大 第四版
Deep Learning 伊恩·古德费洛(中文)
Neural Network and Deep Learning ,Michael Nielsen(中文)

熵,KL散度,交叉熵相关推荐

  1. 交叉熵三连(3)——交叉熵及其使用

    相关文章: 交叉熵三连(1)--信息熵 交叉熵三连(2)--KL散度(相对熵) 交叉熵三连(3)--交叉熵及其使用   在神经网络中,我们经常使用交叉熵做多分类问题和二分类的损失函数,在通过前面的两篇 ...

  2. 自信息/熵/联合熵/条件熵/相对熵/交叉熵/互信息及其相互之间的关系

    [深度学习基础]:信息论(一)_自信息/熵/联合熵/条件熵/相对熵/交叉熵/互信息及其相互之间的关系_bqw的博客-CSDN博客 详解机器学习中的熵.条件熵.相对熵和交叉熵 - 遍地胡说 - 博客园

  3. 交叉熵损失函数python_交叉熵损失函数nn.CrossEntropyLoss()

    nn.CrossEntropyLoss() 1.引言 在使用pytorch深度学习框架做多分类时,计算损失函数通常会使用交叉熵损失函数nn.CrossEntropyLoss() 2. 信息量和熵 信息 ...

  4. 信息量-log2P(莫斯编码使用频繁P大的字符编码段信息量少)、信息熵:期望E=-Plog2P、两点分布交叉熵=KL散度=相对熵=-plnp-(1-p)ln(1-p)不对称、JS散度对称

    信息熵为什么要定义成-Σp*log§? 信息熵为什么要定义成-Σp*log(p)? 在解释信息熵之前,需要先来说说什么是信息量. 信息量是对信息的度量,单位一般用bit. 信息论之父克劳德·艾尔伍德· ...

  5. matlab计算kl散度命令,熵,交叉熵,KL散度公式与计算实例

    交叉熵(Cross Entropy)和KL散度(Kullback–Leibler Divergence)是机器学习中极其常用的两个指标,用来衡量两个概率分布的相似度,常被作为Loss Function ...

  6. 交叉熵和mse_交叉熵 相对熵(KL散度/互熵)

    香农熵 熵考察(香农熵)的是单个的信息(分布)的期望:反映了一个系统的无序化(有序化)程度,一个系统越有序,信息熵就越低,反之就越高. 交叉熵 交叉熵考察的是两个的信息(分布)的期望: 交叉熵和熵,相 ...

  7. 数学之美:信息的度量和作用 KL散度 自信息 熵 相对熵 KL divergence entropy

    当上述公式中概率相等时会推出,H刚好等于5比特. 自信息: 一条信息的信息量与该信息的不确定性有关.如果想要搞懂一件非常不清楚的事,就需要了解大量的信息,相反如果一件事我们已经了如指掌,那就不需要太多 ...

  8. 机器学习常见损失函数,二元交叉熵,类别交叉熵,MSE,稀疏类别交叉熵

    一 损失函数介绍 损失函数用于描述模型预测值与真实值的差距大小.一般有有两种常见的算法--均值平方差(MSE)和交叉熵.下面来分别介绍每个算法的具体内容. 1 均值平方差 均值平方差(Mean Squ ...

  9. 最大交叉熵matlab实现,交叉熵算法

    交叉熵损失函数_计算机软件及应用_IT/计算机_专业资料.1.从方差代价函数说起... 演化算法 [C], 王斌; 李元香 4.一种求解抛物型方程的 Monte Carlo 并行算法 [C], 刘芳芳 ...

  10. 相对熵与交叉熵_熵、KL散度、交叉熵

    公众号关注 "ML_NLP"设为 "星标",重磅干货,第一时间送达! 机器学习算法与自然语言处理出品 @公众号原创专栏作者 思婕的便携席梦思 单位 | 哈工大S ...

最新文章

  1. nfs+inotify
  2. 【速看,双100%】剑指 Offer 14- I. 剪绳子 I
  3. 生成随机长度字符串,比如密码等
  4. python selenium iframe怎么定位_python+selenium四:iframe查看、定位、切换
  5. java list 取几个字段组装成map_java.util.concurrent 并发包诸类概览
  6. tomcat直接设置Response的Headers
  7. Lanenet论文解读
  8. IOS 学习笔记(2) 视图UINavigationController
  9. 研发项目wbs分解简单案例_wbs模板(wbs工作分解结构案例)
  10. 02web前端笔试题
  11. IGBT模块测试台原理
  12. Spring Cloud
  13. [激光器原理与应用-14]:激光器企业组织内部结构解剖
  14. [汇总]计算机专业相关证书大全(持续更新...)
  15. 在pdf上进行修改文字,PDF文字修改方法
  16. U3D常用介绍,搭建一个简单的三维效果
  17. AcWing 2048. 干草
  18. 告别windows、拥抱linux,ThinkPad E485安装XUbuntu实录
  19. 猿团专访 |以技术推动发展 msup 成为企业经验智库
  20. 开普互联心系农民 服务三农

热门文章

  1. 新手学单片机如何入手,单片机入门培训课程有哪些?
  2. BigDecimal除法运算出现java.lang.ArithmeticException: Non-terminating decimal expansion; no exact represent
  3. 软件的黑盒白盒测试,软件测试黑盒白盒测试用例
  4. WordPress电商主题框架Storefront 2.5.0发布
  5. Unity3D 弓箭的拋物線轨道(弹道)
  6. Markov chain 整理
  7. HEV并联(IPS) 车辆仿真 simulink stateflow搭建 模型包含工况路普输入,驾驶员模型
  8. [益智]:有一辆火车以每小时15公里的速度离开洛杉矶直奔纽约,另一辆火车以每小时20公里的速度从纽约开往洛杉矶。如果有一只鸟,
  9. 诺贝尔文学奖错失的20位大师
  10. Windows上优秀的命令行(Terminal Emulator)工具推荐