相关文章:
交叉熵三连(1)——信息熵
交叉熵三连(2)——KL散度(相对熵)
交叉熵三连(3)——交叉熵及其使用
1 信息熵的定义
在维基百科中信息熵的定义如下:
熵:是接受每条消息中包含的信息的平均量,又称为信息熵、信源熵、平均自信息量。这里“消息”代表来自分布或者是数据流中的事件、样本或者特征。熵用于表示不确定性的度量。
在香农的《通信的数学理论》将离散的信号源表示为一个马尔可夫过程并系统给整个过程在某段事件内“生成”的信息量有一个合理的度量,从而做出如下假设:
假设有一个可能事件集合,这些事件发生的概率为 p1,p2,...,pn。这些事情发生的概率事已知的但是不知道其他的信息。我们是否能够找到一种度量,用来测量这些输出中有多少不确定性。
在此基础上如果存在一种度量例如H(p1,p2,...,pn)来计算不确定性,那么H应该具有如下特性:
- 连续性:H应当关于pi连续,也就是对每一个pi都有一个对应的不确定性度量Hi
- 单调性:如果所有的事件概率都相等,即使pi=n1,则H应该是n的单调递增函数。如果事件的可能性相等,那可能事件越多,选择或者说不确定性也越多。
- 可加性:如果一个选择分解为两项连续的选择,原来的信息度量是各个H的加权和。下图中展示了这种说法的含义。左侧的三个概率为分别为:p1=21,p2=31,p3=61。在右侧,我们首先以概率p=21在两种可靠性中做选择,如果发生第二种情况,则继续以后续概率{32,31}做选择,这种情况左边的选择方式和后面的选择方式具有相同的概率值。在这种情况下要求:
H(21,31,61)=H(21,21)+21H(32,31)
基于上述假设中的三条性质能够满足上述三个特性的H如下:
H=−ki=1∑npilogpi
其中K是一个常数用来选择度量单位。
那么形如 H=−∑pilogpi 的量称为概率集p1,p2,...,pn的熵。如果x是一个随机变量,我们将H(x)记为随机变量x的熵,因此x不是一个函数的参数,而是一个数值的记号,用于区分H(y),其中H(y)表示随机变量y的熵。
例如某个信号源随机输出变量x∈{0,1},并且p(x=0)=21同样的p(x=2)=21那么计算信号源某次输出信号输出所携带的信息量为:
H(x)=−21log221−21log221=1 bit
假设这个信号源输出的两个连续信号独立,那么连续输出两个信号所携带的信息量为:
H(x)=−41log241−−41log241−41log241−41log241=2 bit
假设这个信号源输出两个连续信号之间不独立并且第一次输出概率相等都为 21,第二次输出与上一次输出的结果有关,当第一次输出为1,下一次输出为1的概率为41,否则为81,那么连续输出两次所包含的信息量为:
H(x)=H(21,21)+21H(41,43)+21H(81,87)
2 信息熵的性质
- 性质 1:当且仅当所有pi中只有一个取值为单位1,其他的均值为0时,H=0。仅当我们可以确定输出结果的时,H消失。否则H为正数。
- 性质 2:对于某一个时间给定了有n 中可能,当所有的pi都相等(即n1)的时候,H达到最大的值logn。 这种情况就是我们直觉上所感受的最具有不确定性的情形。
- 性质 3:有两个事件x 和 y,如果第一个事件有 m 种可能性,第二个事情有 n 种可能性。设p(i,j) 为事件i和事件j的联合概率。这一联合事件的熵为:
H(x,y)=−i,j∑p(i,j)logp(i,j)
而:
H(x)=−i,j∑p(i,j)logj∑p(i,j)
H(y)=−i,j∑p(i,j)logi∑p(i,j)
容易证明:
H(x,y)≤H(x)+H(y)
当且仅当这些事件独立的时候 p(i,j)=p(i)⋅(j)时等号成立,一个联合事件的不确定性,小于等于各个事件的不确定性之和。
可以理解为,当事件不独立的情况下,事件x携带了事件y中的部分信息,同时事件y 中也携带了事件x中的部分信息,两个事件携带的信息量有一部分重合,因此总的信息量小於单个信息量的累加
- 性质 4:任何使得概率 p1,p2,...,pn趋于相等的改变都会使H增大。因此,如果p1<p2,而且我们使p1增大,p2减小一个相等量,则H增大。
- 性质 5: 和性质3中一样,假定有两个随机事件 x 和随机事件 y,他们不一定相互独立。对于x 可以取到的任意特定值i,存在一个y取值的j的条件概率pi(j),此概率给出如下:
pi(j)=∑jp(i,j)p(i,j)
我们将y的条件熵Hx(y)定义为关于每个值x,y的熵的加权平均,加权值为x值的特定概率。即:
Hx(y)=−i,j∑p(i,j) log pi(j)
用上述公式来度量,当我们已知事件x的时候,事件y的不确定性,可以得到:
H(x,y)=H(x)+Hx(y)
- 性质 6: 根据公式3和公式5可以得到:
H(x)+H(y)≥H(x,y)=H(x)+Hx(y)
因此:
H(y)≥Hx(y)
3 连续分布的熵
对于离散的概率集p1,p2,...,pn的熵定义为:
H=−∑pi log pi
对于一个概率密度函数分布为p(x)的连续分布,可以采用类似方式,将它的熵定义为:
H=−∫−∞∞p(x) log p(x) dx
对于一个n维的分布p(x1,x2,...,xn),有:
H=−∫⋯∫p(x1,...,xn) log p(x1,...,xn) dx1...dxn
如果有两个事件x,y并且这两个事件本身可能是多维的,则p(x,y)的联合熵和条件熵分别为:
H(x,y)=−∫∫ p(x,y) log p(x,y) dx dy
和:
Hx(y)=−∫∫ p(x,y) logp(x)p(x,y)dx dy
Hy(x)=−∫∫ p(x,y) logp(y)p(x,y)dx dy
其中:
p(x)=∫p(x,y) dy
p(y)=∫p(x,y) dx
5 参考内容
[1] 信息熵 维基百科
[2] 通信的数学理论
个人微信公众号:【查叔笔录】