总说
参考的链接:
- https://blog.youkuaiyun.com/tsyccnh
- https://www.zhihu.com/question/41252833/answer/140950659
先理解一下信息熵、交叉熵和相对熵
先找一下交叉熵的定义:
1)信息熵:编码方案完美时,最短平均编码长度的是多少。(第二个链接第三个答案)
2)交叉熵:编码方案不一定完美时(由于对概率分布的估计不一定正确),平均编码长度的是多少。 平均编码长度 = 最短平均编码长度 + 一个增量
3)相对熵:编码方案不一定完美时,平均编码长度相对于最小值的增加值。(即上面那个增量)
(即,相对熵就是信息增益,就是KL散度)
作者:张一山
链接:https://www.zhihu.com/question/41252833/answer/140950659
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
信息熵
对于(1)没啥说的,就是如果某件事情概率已知,那么直接 H(X)=−∑i=1np(xi)log(p(xi))H(X)=-\sum_{i=1}^{n}p(x_i)log(p(x_i))H(X)=−∑i=1np(xi)log(p(xi))。
这个表示,对于事件X只有x1,⋅,xi,⋅,xnx_1, \cdot , x_i, \cdot, x_nx1,⋅,xi,⋅,xn种情况,而xix_ixi发生的概率是p(xi)p(x_i)p(xi),那么直接 −plog(p)-plog(p)−plog(p) OK?
稍微说一下原因,
- 主要是,log(p(xi))log(p(x_i))log(p(xi))代表就是xix_ixi事件的熵,也就是信息量。由于x1x_1x1和x2x_2x2独立同分布,两个同时发生,那么概率是p(x1)p(x2)p(x_1)p(x_2)p(x1)p(x2),信息量应该是累加的,也就是有H(p(x1)p(x2))=H(p(x1)+H(p(x2))H(p(x_1)p(x_2))=H(p(x_1)+H(p(x_2))H(p(x1)p(x2))=H(p(x1)+H(p(x2)), 所以H(x)H(x)H(x)是对数函数。底可以取 2,e,102, e, 102,e,10都行,问题不大。最后,ppp一般是小数,所以既然是信息,那得正数才符合,所以加个
负号
在座的没有意见吧~。。 - 那要表示一个概率分布的熵,肯定是该变量所有可能性的熵的期望值,所以自然就是 H(X)=−∑i=1np(xi)log(p(xi))H(X)=-\sum_{i=1}^{n}p(x_i)log(p(x_i))H(X)=−∑i=1np(xi)log(p(xi))
总结:−plog(p)-plog(p)−p