本文将介绍信息量,熵,交叉熵,相对熵的定义,以及它们与机器学习算法中代价函数的定义的联系。转载请保留原文连接:http://www.cnblogs.com/llhthinker/p/7287029.htmlhtml
信息的量化计算:算法
解释以下:机器学习
信息量的大小应该能够衡量事件发生的“惊讶程度”或不肯定性:函数
若是有⼈告诉咱们⼀个至关不可能的事件发⽣了,咱们收到的信息要多于咱们被告知某个极可能发⽣的事件发⽣时收到的信息。若是咱们知道某件事情⼀定会发⽣,那么咱们就不会接收到信息。 也就是说,信息量应该连续依赖于事件发生的几率分布p(x) 。所以,咱们想要寻找⼀个基于几率p(x)计算信息量的函数h(x),它应该具备以下性质:学习
又由于若是两个不相关事件是统计独⽴的,则有p(x, y) = p(x)p(y)。根据不相关事件几率可乘、信息量可加,很容易想到对数函数,看出h(x)⼀定与p(x)的对数有关。所以,有优化
知足上述性质。编码
对于一个随机变量X而言,它的全部可能取值的信息量的指望就称为熵。熵的本质的另外一种解释:最短平均编码长度(对于离散变量)。spa
离散变量:.net
连续变量:htm
现有关于样本集的2个几率分布p和q,其中p为真实分布,q非真实分布。按照真实分布p来衡量识别一个样本的熵,即基于分布p给样本进行编码的最短平均编码长度为:
若是使用非真实分布q来给样本进行编码,则是基于分布q的信息量的指望(最短平均编码长度),因为用q来编码的样原本自分布p,因此指望与真实分布一致。因此基于分布q的最短平均编码长度为:
上式CEH(p, q)即为交叉熵的定义。
将由q获得的平均编码长度比由p获得的平均编码长度多出的bit数,即便用非真实分布q计算出的样本的熵(交叉熵),与使用真实分布p计算出的样本的熵的差值,称为相对熵,又称KL散度。
KL(p, q) = CEH(p, q) - H(p)=
相对熵(KL散度)用于衡量两个几率分布p和q的差别。注意,KL(p, q)意味着将分布p做为真实分布,q做为非真实分布,所以KL(p, q) != KL(q, p)。
Ref:
《模式识别与机器学习》1.6节
http://blog.csdn.net/rtygbwwwerr/article/details/50778098
https://www.zhihu.com/question/41252833