信息量为什么要表示成对数的形式——问题整理

简介: 信息量为什么要表示成对数的形式——问题整理

零、问题引入


有人问一件事发生后所携带的信息量为什么要表示成事件发生概率的对数的形式,我在上通信原理时,ppt上是这样的


0a2653c851af460fa595bd959398a8f1.png


一、香农的信息论


香农指出:“人们只有在两种情况下有通信的需要。其一,是自己有某种形式的消息要告知对方,而估计对方不知道这个消息;其二,是自己有某种疑问要询问对方,而估计对方能做出一定的解答。”


所谓的信息,就是**以前不知道现在知道的事实,**如果某件事以前就知道,当别人再告诉你时,你会忽略,这件事对你的认知没有任何影响,这就不叫信息,反之,如果某件事以前你不知道,有人告诉你了,你现在知道了,那么对你而言,这件事就是信息。

我们看下用概率描述信息量的重要性质:


1.事件发生的概率越低,信息量越大;

2.事件发生的概率越高,信息量越低;

3.多个事件同时发生的概率是多个事件概率相乘,总信息量是多个事件信息量相加。

通过前两点,我们知道信息量,信息量和概率之间一定是减函数的关系,第三点要求确定了对数关系:

y=log2xy=log2⁡x


这里的对数关系以及上述第三点其实非常好理解,即两件事情的信息量之和等于两件事情同时发生的信息量:


x1和x2同时发生的概率:P(x1,x2)=P(x1)×P(x2)

x1和x2的总信息量:log2(P(x1)P(x2))=log2P(x1)+log2P(x2)


由此确定的信息量描述为:


I(x)=−log2P(x)I(x)=−log2⁡P(x)


也许看起来好像香农是拍脑袋拍出对数关系的,但不管怎样,这个式子能完美诠释他想要诠释的一切,这就是他天才的地方。这个式子简单,优美,是的,非常简单,就像E=mc2E=mc2一样简单,优美。


既然有了一件事发生的信息量的数学描述,给出事件确实发生后信息量的数学期望就简单了,它便可以被描述为:


H(X)=E(I(X))=∑ni−P(xi)log2P(xi)H(X)=E(I(X))=∑in−P(xi)log2⁡P(xi)


这很好理解,事件发生的形式拥有不同的概率,每种可能性发生后的信息量乘以它发生的概率,将其加起来,就是事件发生后总信息量的数学期望。


以上就是关于信息的数学描述,首先我们要明白用对数可以定义一件特定事件发生后的信息量,其次我们要知道一个事件按照不同概率的特定形式发生后的信息量的数学期望。

 

0a2653c851af460fa595bd959398a8f1.png


接下来我来针对这些数学式子做一个现代解释。


二、信息的二进制解释


现代计算机科学强调一切都是比特(bit),那么如果我们想描述一个信息,显而易见的形式当然是bit。所谓的信息量就是用多少bit可以描述一个事件。这件事不妨反过来理解,我来理一下:


1个bit可以描述2个事件

2个bit可以描述4个事件

3个bit可以描述8个事件;

n个bit可以描述m个事件;


现在我们来看下n和m的关系:


m=2nm=2n

n=log2mn=log2⁡m


我把式子整理一下就清晰了:


n=−log21mn=−log2⁡1m


0a2653c851af460fa595bd959398a8f1.png


此处,mm中可能性提出负号整理之后变成了1m1m的概率,符合香农的公式形式和含义从这个二进制的意义上去理解信息论中信息量的式子,是不是更简单呢。


0eacb84100b54626af849e6b562bf92a.png


不仅仅是帮助理解信息论,其实本节的内容连同香农的信息论可以指导如何用最短的bit来编码特定的信息,比如霍夫曼编码,出现概率越大的字符编码长度越短,详情请自行百度。


三、为什么第三点的要求就能确定对数形式?


多个事件同时发生的概率是多个事件概率相乘,总信息量是多个事件信息量相加。


给出数学解释

0a2653c851af460fa595bd959398a8f1.png0eacb84100b54626af849e6b562bf92a.png


相关文章
|
7月前
|
机器学习/深度学习 人工智能 算法
【代数学作业1完整版-python实现GNFS一般数域筛】构造特定的整系数不可约多项式:涉及素数、模运算和优化问题
【代数学作业1完整版-python实现GNFS一般数域筛】构造特定的整系数不可约多项式:涉及素数、模运算和优化问题
144 0
|
7月前
|
机器学习/深度学习
R语言使用 LOWESS技术图分析逻辑回归中的函数形式
R语言使用 LOWESS技术图分析逻辑回归中的函数形式
|
7月前
|
算法
R语言非参数PDF和CDF估计、非参数分位数回归分析间歇泉、GDP增长数据
R语言非参数PDF和CDF估计、非参数分位数回归分析间歇泉、GDP增长数据
R语言笔记丨因子、数据框基础知识
R语言笔记丨因子、数据框基础知识
|
算法 Python
算法创作|华氏温度与摄氏温度的转换问题
算法创作|华氏温度与摄氏温度的转换问题
154 0
|
算法 Java 网络架构
代码随想录训练营day27| 39. 组合总和 40.组合总和II 131.分割回文串
代码随想录训练营day27| 39. 组合总和 40.组合总和II 131.分割回文串
|
数据可视化 数据挖掘 Python
答读者问:R语言批量做一元线性回归的简单小例子
答读者问:R语言批量做一元线性回归的简单小例子
|
机器学习/深度学习 算法 数据挖掘
机器学习:感知机+代码实现(原始+对偶形式)
机器学习:感知机+代码实现(原始+对偶形式)
334 0
机器学习:感知机+代码实现(原始+对偶形式)
|
机器学习/深度学习 算法 数据挖掘
特征工程入门:应该保留和去掉那些特征
特征工程入门:应该保留和去掉那些特征
216 0
特征工程入门:应该保留和去掉那些特征
|
传感器 机器学习/深度学习 运维
多变量时间序列数据集整理和对应标准化处理代码合集
# 前言 最近在做多变量时间序列异常检测相关的工作,顺带也整理了目前市面上比较常用的五个多变量时间序列异常检测数据集,测试集都有标好的label,这五个数据集应该是在这个领域最为常用benchmark的数据集,整理主要来自于很多顶会的对比实验。 本文主要介绍五个数据集的具体信息和对应的标准化处理,并给出处理的代码和最终标准化的格式。 tips:作为一个写了四五年博客的职场小白来说,准备从今天开
3576 1

热门文章

最新文章