本站原创文章,转载请说明来自《老饼讲解-机器学习》ml.bbbdata.com
信息量和信息熵是机器学习中一个常用的基本概念,
本文讲解信息量和信息熵的定义的意义
信息与可度量性
信息是一个抽象的概念,但我们隐约可以感觉,信息是有大小之分的,
例如,“小明爱吃榴莲”明显就比“小明爱吃米饭”这件事的信息量更多
并且仔细探究,会发现信息的大小,与事件发生的概率负相关,
即知道一个越小概率的事,获得的信息量越大
既然信息有了大小之分,于是香农(Shannon)决定正式把它量化
信息量需要满足的特性
既然要把信息量化,那么,信息量应该满足什么特性呢?
香农总结,需要满足以下三个特性
1、单调性
从日常直觉总觉来说,概率越小的事情,信息量应该越大
也就是说,信息量应该与事件发生的概率负单调
2、非负性
信息量的最小值应该为0
3、累加性
“小明爱吃米饭”和“小明是小学生”的信息量之和,应该等于“小明是个爱吃米饭的小学生”
也就是两个独立事件各自的信息量之和,需要与这两个独立事件构成的整体事件的信息量相等
信息量的定义与思路
用h来表示信息量的话,由它与概率的负单调性,可以知道,h应该有以下形式:
,其中 F是负单调函数
又由累加性,
两个独立事件的整体事件信息等于两个独立事件的信息和,
可知,h应该满足
也即需要找一个负单调函数F,使它满足
-log刚好满足这条件,于是香农用-log作为F
正式定义信息量为:
本节介绍信息熵的概念和信息熵的应用
信息熵的定义
如果已知 x 有 n 种取值,且知道每种取值的概率,
则定义 x 的信息量期望为信息熵:
信息熵的意义
为什么需要把信息期望单独拎出来作为一个定义?
那是因为我们经常需要使用它,下面我们举两个例子感受一下信息期望的无处不在
好处1:变量的价值
如果有两个变量,
我们只能知道其中一个变量的值,
那么,我们应该选择哪一个呢?
当然是哪个变量获得的信息期望越大,我们就选择哪一个
这时候,我们就需要计算变量的信息期望了,也就是计算信息熵
好处2:总信息量的计算
假设我们有10个字符组成的文本S = AABBBCCCCC
如果我们现在只知道S由ABC组成,
且知道ABC每个字符出现的概率(0.2,0.3,0.5),
但我们不知道S具体的样子,
那么 S是有很多种可能的组合的,在这个条件下,
“S长成AABBBCCCCC这个样子”的信息量是多少?
------------------------------------------------------
我们共有10个字符,“每个字符是什么”是独立的,
因此,S的信息量就等于10个字符各自的信息量之和
又
知道字符是A的信息量为-log(0.2),
知道字符是B的信息量为-log(0.3),
知道字符是C的信息量为-log(0.5),
则有
也就是 各个字符出现的次数*字符的信息量求和
事实上,只要计算出每个字符的信息期望,再乘以字符数就可以了
因为
通过信息熵来计算总信息,明显要简洁得多
End