为什么信息熵要定义成-Σp*log(p)?

如果仅仅只为了表征不确定性,可以有很多种定义方法,比如1/∏pi 也可以啊,定义成这种形式好处何在?
关注者
650
被浏览
41,082

24 个回答

我从一个非常直观的角度来解释一下熵的定义为什么如题主所示。

第一,假设存在一个随机变量x,可以问一下自己当我们观测到该随机变量的一个样本时,我们可以接受到多少信息量呢?毫无疑问,当我们被告知一个极不可能发生的事情发生了,那我们就接收到了更多的信息;而当我们观测到一个非常常见的事情发生了,那么我们就接收到了相对较少的信息量。因此信息的量度应该依赖于概率分布p(x)所以说熵h(x)的定义应该是概率的单调函数。

第二,假设两个随机变量xy是相互独立的,那么分别观测两个变量得到的信息量应该和同时观测两个变量的信息量是相同的,即:h(x+y)=h(x)+h(y)。而从概率上来讲,两个独立随机变量就意味着p(x,y)=p(x)p(y)所以此处可以得出结论熵的定义h应该是概率p(x)log
函数。因此一个随机变量的熵可以使用如下定义:
\[h(x)=-log_2p(x)\]
此处的负号仅仅是用来保证熵(即信息量)是正数或者为零。而log函数基的选择是任意的信息论中基常常选择为2,因此信息的单位为比特bits;而机器学习中基常常选择为自然常数,因此单位常常被称为nats)。

最后,我们用熵来评价整个随机变量x平均的信息量,而平均最好的量度就是随机变量的期望,即熵的定义如下:
H[x]=-\sum_xp(x)log_2p(x)

总的来说,题主给出的定义符合第一点(单调性),但是不符合第二点。

以上内容参考自Bishop 的著作《Pattern Recognition and Machine Learning》
这涉及到信息熵的公理化问题。下图选自T. Cover和J. Thomas的Elements of Information Theory一书里的习题。对于给定的离散随机变量的泛函,如果满足规范化、连续性和组合法则这三条,就一定只能是香农定义的形式。