zoukankan      html  css  js  c++  java
  • 信息论随笔2: 交叉熵、相对熵

    接上文:信息论随笔1

    参考以下:

    如何通俗的解释交叉熵与相对熵; https://www.zhihu.com/question/41252833/answer/108777563

    https://blog.csdn.net/qq547276542/article/details/78370245

    交叉熵

    一个变量X,可能有多种取值,每个取值结果对应一个事件,对于一个随机事件x,其真实概率分布为p(x),从数据中得到的概率分布为q(x),则交叉熵为:

     ( H(p, q) = -sumlimits_{x} p(x)log_{2}q(x) )

    交叉熵反映的是概率分布q所估计的变量X的信息量;

    相对的,真实分布p所表达的变量X的真实信息量是信息熵H(X),但这里我们在讨论的是对同一个变量X的p、q两种概率分布所带来的信息量差异,因而只将p、q当做变量,信息熵用H(p)表示;

    相对熵

    根据Gibbs' inequality可知,( H(p, q) >= H(p) ),当q为真实分布p时取等号;

    由概率分布q估计所多出来的冗余信息量,即为相对熵:

    ( D(p||q) = H(p,q) - H(p) = sumlimits_{x} p(x)log_{2}frac{p(x)}{q(x)} )

    相对熵又称KL散度;

    相对熵也用来衡量相关性,但和变量的互信息不同,它用来衡量两个取值为正数的函数的相似性。在这里,它描述q分布与p分布的相似性;

    因为( H(p,q)=H(p)+D_{KL}(p||q) ),真实分布的信息熵H(p)固定不变,因而交叉熵可以用做机器学习中的损失函数;

    例子:

    含有4个字母(A,B,C,D)的数据集中,真实分布p=(1/2, 1/2, 0, 0),即A和B出现的概率均为1/2,C和D出现的概率都为0。计算H(p)为1,即只需要1位编码即可识别A和B。如果使用分布Q=(1/4, 1/4, 1/4, 1/4)来编码则得到H(p,q)=2,即需要2位编码来识别A和B(当然还有C和D,尽管C和D并不会出现,因为真实分布p中C和D出现的概率为0);
    多出来的这1位编码就是分布Q估计所引入的冗余信息量即相对熵;
     
  • 相关阅读:
    Firebird开源管理工具
    ionic3使用echarts
    ionic3安卓平台引用高德地图
    ionic3安卓版release发布
    sequelize的get/post方法例子
    sequelize查询数据的日期格式化
    sequelize的mssql配置
    cordova插件列表
    ionic3使用cordova创建自定义插件
    koa2+log4js+sequelize搭建的nodejs服务
  • 原文地址:https://www.cnblogs.com/ZisZ/p/9083914.html
Copyright © 2011-2022 走看看