• 熵:可以表示一个事件A的自信息量,也就是A包含多少信息。
  • KL散度:可以用来表示从事件A的角度来看,事件B有多大不同。
  • 交叉熵:可以用来表示从事件A的角度来看,如何描述事件B。

一种信息论的解释是:

  • 熵的意义是对A事件中的随机变量进行编码所需的最小字节数
  • KL散度的意义是“额外所需的编码长度”如果我们用B的编码来表示A
  • 交叉熵指的是当你用B作为密码本来表示A时所需要的“平均的编码长度”

一、熵

1.定义

衡量一个事件所包含的信息量

$$S(A)=-\sum_i P_A(x_i)logP_A(x_i)$$

二、交叉熵

1.定义

$$H(A,B)=-\sum_iP_A(x_i)log(P_B(x_i))$$

2.性质

  • 不对称性
  • cross主要是用于描述两个事件之间的相互关系,对自己求交叉熵等于熵。即$H(A,A)=S(A)$,注意只是非负而不一定等于0.

三、KL散度

1.定义

又名“相对熵”,衡量两个事件/分布之间的不同

  KL散度由A自己的熵与B在A上的期望共同决定。当使用KL散度来衡量两个事件(连续或离散),上面的公式意义就是求 A与B之间的对数差 在 A上的期望值。

2.性质

  • 如果$P_A=P_B$,即两个事件分布完全相同,那么KL散度等于0.
  • KL散度是不对称的
  • $D_{KL}(A||B)=-S(A)+H(A,B)$,如果$S(A)$是一个常量,那么$D_{KL}(A||B)=H(A,B)$,也就是说KL散度和交叉熵在特定条件下等级。

3.KL散度 VS 交叉熵

训练数据的分布A是给定的。那么根据我们在第四部分说的,因为A固定不变,那么求$D_{KL}(A||B)$  等价于求$H(A,B)$ ,也就是A与B的交叉熵。得证,交叉熵可以用于计算“学习模型的分布”与“训练数据分布”之间的不同。当交叉熵最低时(等于训练数据分布的熵),我们学到了“最好的模型”。

参考文献:

【1】KL散度 - 搜索结果 - 知乎

最新文章

  1. js性能优化
  2. Flash Decompiler
  3. Web服务器Nginx多方位优化策略
  4. Linux下smokeping网络监控环境部署记录
  5. PHP Simulation HTTP Request(undone)
  6. ASP.NET版Memcached监控工具(转载)
  7. PeopleReady--办公学习类App产品
  8. AngularJS: 自定义指令与控制器数据交互
  9. 一】Maven入门
  10. String类中几个简单的常用方法
  11. python购物淫秽数据分析(2)
  12. evernote
  13. AngularJS中$http服务的简单用法
  14. JS模式---命令模式
  15. php中常用的字符串查找函数strstr()、strpos()实例解释
  16. php 抽象类 静态 单体设计模式
  17. Python 安装 lxml 插件
  18. 20172325 2018-2019-2 《Java程序设计》第五周学习总结
  19. AngularJS中自定义过滤器
  20. C++ 构造与析构的执行顺序

热门文章

  1. 洛谷 题解 P4198 【楼房重建】
  2. Python正则表达式学习与运用
  3. Zabbix的基本功能
  4. MacBook安装WIN7开机黑屏的解决办法
  5. 第02组 Beta冲刺(3/4)
  6. Linux性能优化实战学习笔记:第二十一讲
  7. python总结十一
  8. 【ASP.NET Core分布式项目实战】(五)Docker制作dotnet core控制台程序镜像
  9. MongoDB出现The default storage engine 'wiredTiger' is not available之问题解决
  10. 如何备份开拓者TBQuant的策略文件