信息熵是用来衡量一个随机变量出现的期望值,一个变量的信息熵越大,那么他出现的各种情况也就越多,也就是包含的内容多,我们要描述他就需要付出更多的表达才可以,也就是需要更多的信息才能确定这个变量。在吴军老师的那篇《汉语信息熵和语言模型的复杂度》文章里说,只考虑字频的话英文是4.46比特/字符的信息熵,汉字是9.6比特/字符,直观上很容易理解,英文字母只有26个,所以描述一个字母所需要的信息表示不多,而中文字却很多,就需要更多的信息量才能表示。用点通俗的来讲,信息熵衡量了一个系统的复杂度,比如当我们想要比较两门课哪个更复杂的时候,信息熵就可以为我们作定量的比较,信息熵大的就说明那门课的信息量大,更加复杂。
那么信息熵可以做什么呢,首先信息熵作为衡量一个系统复杂度的表示,在压缩时就相当于一个压缩极限的下限,不同的内容,如果他的信息熵越小,说明信息量越小,也就是压缩后所占的体积能够更小,信息熵在人工智能方面也有很多的应用,其中最有名的就是最大熵原理,保留尽可能大的不确定性而作出最佳的尽量无偏差的决定。
最后来看看信息熵的公式
为什么会有这样的公式呢,很多地方都直接没有说这个问题,这个公式并不是香农随便乱说的,在香农1948年的那篇文章里就可以看到,这个公式是推导出来的。香农说,熵这个公式需要满足这么几条性质,对于随机变量S的取值(s1,s2...sn)发生的概率是(p1,p2...pn),那么
- 信息熵对于pi应该是连续的
- 如果所有的pi都相等,也就是pi=1/n那么信息熵应该是关于n的单调递增函数
-
信息熵是可以分别计算的,如图左,p1=1/2,p2=1/3,p3=1/6,就相当于是首先有两个事件p1=p2=1/2,然后在第二事件又分为p1=2/3,p2=1/3,所以信息熵H(1/2,1/3,1/6)=H(1/2,1/2)+1/2*H(2/3,1/3)
根据这几个性质,香农推导出,信息熵的公式只可能是一种形式
前面有个系数K,因为取不同的log底数影响的只是前面的系数,也就是说不同的底数通过调节前面的系数可以使他们相等,而现在一般而言,也是为了方便是用log的底数一般是取2,并且去掉了前面的系数就变成了之前的公式了。
变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。
对于信息熵的推导规则
设对于某个事件 x, 发生的概率是 p(x), 对应的"信息量"是 I(x).
性质
1. p(x) = 0 => I(x) = +\inf (正无穷大)
2. p(x) = 1 => I(x) = 0
3. p(x)>p(y) => I(x)<I(y)
含义是概率为 0 的事件对应的信息量大, 反之信息量少.
概率老师举的例子是: 皇家马德里与中国队踢, 那么皇马赢的概率...是人都知道...所以没有信息量(=0). 反之若是中国队赢了, 这个信息量就大了.
4. I(x)>=0 信息量总是正的.
5. p(x,y)=p(x)p(y) => I(x,y)=I(x)+I(y)
信息量的叠加性, 知道了两个独立事件的概率, 相当于知道了两方的信息(的和)
由以上性质就能决定出 I(x) = -c*ln(p(x)), 其中 c 是某个正常数, 代入就可验证.
最后的信息熵公式 - sum p[i] * ln(p[i]) 可以看作 ln(p) 的期望, 也就是整个系统的平均信息的多少.
信息增益
通俗地讲,X(明天下雨)是一个随机变量,X的熵可以算出来, Y(明天阴天)也是随机变量,在阴天情况下下雨的信息熵我们如果也知道的话(此处需要知道其联合概率分布或是通过数据估计)即是条件熵。
两者相减就是信息增益!原来明天下雨例如信息熵是2,条件熵是0.01(因为如果是阴天就下雨的概率很大,信息就少了),这样相减后为1.99,在获得阴天这个信息后,下雨信息不确定性减少了1.99!是很多的!所以信息增益大!也就是说,阴天这个信息对下雨来说是很重要的!
所以在特征选择的时候常常用信息增益,如果IG(信息增益大)的话那么这个特征对于分类来说很关键~~ 决策树就是这样来找特征的!作者:Kay Zhou
链接:https://www.zhihu.com/question/22104055/answer/67014456
来源:知乎