一件事的信息量是啥东西?公式:信息量= - log2(P) , P是这件事发生的概率
举例:a同学与b同学可以互相通信。双方约定用2进制传递信息。
1.例如:假定a能看到一个随机试验,就是从0-7中任意选一个数。这件事发生抽到了7。
a要把信息7(110)传递给b,a->b。信息量如何计算呢?就是这个二进制110 的长度。所以信息量就是3
计算公式-log2(1/8)=3
2.假定a能看到一个随机试验,就是从0-4中任意选一个数。假定抽到了2
传递的信息就是二进制10,传递的信息长度就是2.
计算公式-log2(1/4)=2,(其中:log2是以2为底的对数,1/4是这件事发生的概率)
进一步理解信息量为何公式是 - log2(P)
其实对于等可能事件,概率就是1/(所有可能数量a)
L= - log2(p)=log2(1/p)=log2(1/(1/a))=log2(a),所以
2^L=a L刚好是a种状态的2进制编码长度。(不知大家是否理解)
举个10进制的案例:
10^x=1000, x刚好是10进制1000个状态的编码长度。3位10进制可以有0-999状态
-----------------
计算上面的熵,熵是信息的期望。
第1种情况的熵为 3*1/8+3*1/8+...=3
第2种情况的熵为 2*1/4+2*1/4+...=2
明显,某个随机事件,事件很多,可能性很多,虽然每个事件概率变小,但是编码变长,熵就越来越大。说明事件很多编码就长。例如从0-1023个数取一个数。熵就很大为10。
为了简化假定一个随机事件S它的每个取值都是一样的概率。s取值为{0,1,2,...,m},m个计算
这样信息量L=- log2(m)
计算熵为 L*(1/m)+L*(1/m)+ ... ,总共m个,化简熵为L
L*(1/m)+L*(1/m)+ ... =L(1/m+1/m+...)=L *(1/m)*m=L
这种情况熵只与编码长度有关。编码越长熵越大。意思是事件S可能性越多,编码就越长,熵越大。假定等可能的。