主动学习--信息熵
主动学习–信息熵
一、信息熵是什么?
首先我们得知道,信息量和信息熵不是同一个东西,信息量是对信息的度量,就跟时间的度量是秒一样,当我们考虑一个离散的随机变量x的时候,我们观察到的这个变量的一个具体值的时候,我们接收到了多少信息呢?多少信息用信息量来衡量,我们接受到的信息量跟具体发生的事件有关。信息的大小又跟随机事件的概率有关。越小概率的事情发生了产生的信息量越大,如某地产生了地震(料想不到);越大概率的事情发生了产生的信息量越小,如太阳从东边升起来了(肯定发生,总所周知,就没什么信息量)。这很好理解!
那信息熵又有什么不同呢?信息熵又被称为香农熵,是香农提出的,用于解决信息的量化度量问题的。
直观解释:
若不确定性越大,则信息量越大,熵越大
若不确定性越小,则信息量越小,熵越小
信息熵认为一条信息的信息量大小和它的不确定性有直接的关系。可以认为信息量的度量就等于不确定性的多少。信息熵是消除不确定性所需信息量的度量,也即未知事件可能含有的信息量。
在信息论中,熵被用来衡量一个随机变量出现的期望值。他代表了在接受之前,信息传输过程中损失的信息量,又被成为信息熵。信息熵也称信源熵、平均自信量。
二、信息熵数学解释
一个离散型随机变量X的熵H(X)的定义为:
其中X表示随机变量,随机变量的取值为(x1,x2,…,xn),p(xi))表示事件xi发生的概率,且有∑p(xi)=1。
首先定义事件xi的信息量为其发生概率对数的负数,记为I(xi),有:
I(xi)=−log(p(xi))
由该定义可得,H(x)为随机变量X的平均信息量(即期望,期望等于试验中每次可能的结果乘以其结果概率的综合)
为什么I(xi)=−log(p(xi))可以表示为事件xi的信息量?
事件xi的信息量大小和它发生的概率(不确定性)有直接的关系。比如说,要搞清楚一件非常不确定的事,或是一无所知的事情(即:信息量小),就需要了解大量的信息。相反,如果对某件事已经有较多了解,我们不需要太多的信息就能把它搞清楚。即信息量函数应该与事件概率成单调递减关系。同时,两个独立事件xi,xj(满足p(xi,xj)=p(xi)∗p(xj)信息量大小应等于各自信息量之和。那么同时符合以上要求的是I(xi)=−logp(xi)。 (取log原因: p(xi,xj)=p(xi)∗p(xj),info(xi,xj)=info(xi)+info(xj),也就是只有对数能使其相加。)
三、例子
赌马比赛里,有4匹马{A,B,C,D},获胜的概率分别为1/2,1/4,1/8,1/8 。
那么接下来我们将获胜视为一个随机变量X∈{A,B,C,D}。由于信息不明确,所以这里我们采用提问的手段来确定随机变量X的取值情况。
我们准备了四个问题:A获胜了吗?B获胜了吗?C获胜了吗?我们通过最多这三个问题就可以得到我们想要的答案。
- 当X=A,那么需要问1次,p( A )=1/2;也可以将这句解读为有1/2的机率提问一个问题即可得到答案。
- 当X=B,那么需要问2次,p( B )=1/4;表示有1/4的机率问3个问题即可得到答案。
- 当X=C,那么需要问3次,p( C )=1/8;表示有1/8的机率问3个问题即可得到答案。
- 当X=D,那么需要问3次,p( D )=1/8;表示有1/8的机率问3个问题即可得到答案。
在这种文法下,那么X取值的二元问题数量(期望)为:
根据信息熵的定义,会得到(这里取以2为底):
这也就验证了上述的概念:H(x)为随机变量X的平均信息量(即期望,期望等于试验中每次可能的结果乘以其结果概率的综合)
值得一提的是:
- 对数的底数可以是任意数,但是只有在取 2 的时候,信息熵的单位才是bit。
- 当事件的概率都相同时,信息熵最大。
四、信息熵的特性
- 单调性,及发生概率越高的事件,其所携带的信息熵越低。极端案例就是最开始提到的”太阳从东方升起“,因为为确定事件,所以不懈怠任何信息量。从信息论的角度,认为这句话没有消除任何不确定性。
- 非负性,即信息熵不能为负。如果这句话正确就是,当你得知某个信息后,却增加了不确定性是不合逻辑的。
- 累加性,即多随机事件同时发生存在的总不确定性的亮度可以表示为各个不确定性的亮度的和。公式就是如下:
事件X=A,Y=B同时发生。
两个事件相互独立
信息熵就是:
根据这非负性,我们就能够理解表达式前面的 负号(概率是小数,从对数后面提出去就会有个负号,负负得正。)
五、信息熵的应用
在 主动学习 中的样例选择度量主要分为2种:1)不确定性度量;2)差异性度量或代表性度量。而样例的不确定性一般可通过 计算其信息熵 获得。
待续。。。。。
- 算法模板——splay区间反转 1
- 3223: Tyvj 1729 文艺平衡树
- 1212: [HNOI2004]L语言
- POJ 2942Knights of the Round Table(tarjan求点双+二分图染色)
- 算法模板——平衡树Treap
- Java并发编程
- 算法模板——线段树2(区间加+区间乘+区间求和)
- 1798: [Ahoi2009]Seq 维护序列seq
- 【LeetCode 389】 关关的刷题日记30 Find the Difference
- 1708: [Usaco2007 Oct]Money奶牛的硬币
- 1856: [Scoi2010]字符串
- 【LeetCode 409】 关关的刷题日记31Longest Palindrome
- Git的奇技淫巧?
- 3224: Tyvj 1728 普通平衡树
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法