信息论模型——熵、互信息

版权声明:本文为博主jmh原创文章,未经博主允许不得转载。 https://blog.csdn.net/jmh1996/article/details/84862513

前言

在机器学习以及神经网络里面,我们经常会遇到“熵”、“互信息”、“条件熵”,“最大熵”等字眼,尤其是最大熵模型 在自然语言处理中用处可谓是超级大。这些概念都是信息论里面的东西,因此它们都被统一称为信息论模型。
这篇博客就是专门来研究一下信息论模型,先介绍基本概念,下篇博客介绍最大熵模型。

熵的定义

信息量

记离散型随机变量 X X ,取 x k x_{k} 的概率为 p k p_{k} .即:
P ( X = x k ) = P { w X ( w ) = x k } = p k P(X=x_{k})=P\{w|X(w)=x_{k}\}=p_{k}
这是随机变量的标准定义。
那么定义事件 A k = { w X ( w ) = x k } A_{k}=\{w|X(w)=x_{k}\} 的信息量为:
I ( A k ) = l o g ( 1 p k ) = l o g ( p k ) I(A_{k})=log(\frac{1}{p_{k}})=-log(p_{k})
很明显 I ( A k ) I(A_{k}) 是一个只跟事件 A k A_{k} 发生的概率大小有关的量,它与对应的随机变量取什么值是无关的。

信息量 I ( A k ) I(A_{k}) 衡量了当事件 A k A_{k} 发生时,所带来的信息量的多少。这是什么意思呢?可以直观理解为这个事件发生了会引起人们的多大关注度。如果这个事件的概率越小,那它发生后,往往会引起举世关注,例如 “太阳从西边升起” 啊。
但是,如果一个事件的概率本来就很大,那么它发生后,人民关注的会很少,例如 “太阳从东边升起”。

信息量的性质有:

  1. I ( A k ) = 0 , P ( A k ) = 1 I(A_{k})=0,若P(A_{k})=1
  2. I ( A k ) > = 0 , 0 < = P ( A k ) < = 1 I(A_{k})>=0,若0<= P(A_{k})<=1
  3. I ( A k ) < I ( A i ) P ( A k ) < P ( A i ) I(A_{k})<I(A_{i}),若P(A_{k})<P(A_{i})

信息熵

信息量的期望,就是定义为信息熵啦。
对于离散型随机变量 X X ,且 P ( X = x k ) = p k P(X=x_{k})=p_{k}

定义信息熵 H ( X ) H(X) 为该随机变量的某个函数的数学期望:
H ( X ) = E [ l o g ( p k ) ] = k = 1 n p k l o g ( p k ) H(X)=E[-log(p_{k})]=-\sum ^{n}_{k=1}p_{k}log(p_{k})
其实就是信息量的平均值。
当随机变量 X X 是连续型的时候,若它的概率密度函数为 f ( x ) f(x) ,分布函数为 F ( x ) F(x) ,那么定义它 X X 的连续信息熵为:
H ( X ) = E [ l o g ( f ( x ) Δ x ) ] = + l o g ( f ( x ) Δ x ) f ( x ) d x H(X)=E[-log(f(x)\Delta x)]=\int^{+\infty} _{-\infty}-log(f(x)\Delta x)f(x)dx
于是
H ( X ) = + ( l o g ( f ( x ) ) + l o g ( Δ x ) ) f ( x ) d x = H(X)=-\int^{+\infty} _{-\infty}(log(f(x))+log(\Delta x))f(x)dx=
+ l o g ( f ( x ) ) f ( x ) d x + l o g ( Δ x ) f ( x ) d x = h ( X ) l o g ( Δ x ) -\int^{+\infty} _{-\infty}log(f(x))f(x)dx-\int^{+\infty}_{-\infty} log(\Delta x)f(x)dx=h(X)-log(\Delta x)
h ( X ) = + l o g ( f ( x ) ) f ( x ) d x h(X)=-\int^{+\infty} _{-\infty}log(f(x))f(x)dx
可以看到,连续型随机变量的信息熵不是标准意义上的信息熵,因为它会在最后面带上一个小尾巴。于是为了讨论分别,我们下面都以离散型随机变量为讨论对象。

那么信息熵反映了什么呢? 信息熵其实刻画了某个随机变量的离散程度,它是随机变量的一个数字特征,是和数字变量的均值、方差类似的数字特征。如果随机变量取各个值的概率都基本相等,那么这个随机变量的随机性就很高。

信息熵的性质:

  1. 与随机变量能够取什么值没有关系,只与随机变量的概率有关。
  2. 对于离散型随机变量当且仅当某个 p k = 1 p_{k}=1 时, H ( X ) = 0 H(X)=0 。否则 H ( X ) H(X) 非负。
  3. 对于离散型随机变量当仅当 p 1 = p 2 = = p n = 1 n p_{1}=p_{2}=\dots =p_{n}=\frac{1}{n} 时, H ( X ) H(X) 取得最大值。此时 H ( X ) = k = 1 n 1 n l o g ( 1 n ) = l o g ( 1 n ) = l o g ( n ) H(X)=-\sum ^{n}_{k=1}\frac{1}{n}log(\frac{1}{n})=-log(\frac{1}{n})=log(n) 。此时 H ( X ) = k = 1 n 1 n l o g ( 1 n ) = l o g ( 1 n ) = l o g ( n ) H(X)=-\sum ^{n}_{k=1}\frac{1}{n}log(\frac{1}{n})=-log(\frac{1}{n})=log(n)

在机器学习以及深度学习中,我们一般不关注某个随机变量的信息熵到底多大,而是更大的关注什么时候取得最大。

互信息

互信息定义为信息熵减去条件熵,它衡量了两个随机变量的相关关系,注意不仅仅是线性相关,还有其他的相关关系,这里的相关关系特值与两个随机变量独立相对立。

假设 X , Y X,Y 是两个离散型随机变量,他们的联合概率分布为 p ( x , y ) p(x,y) ,给定 y y ,随机变量X的条件概率为 p ( x y ) p(x|y)
那么给定 Y = y Y=y ,随机变量X的条件熵为 H ( X Y = y ) = x p ( x y ) l o g ( p ( x y ) ) H(X|Y=y)=-\sum_{x}p(x|y)log(p(x|y))
而给定 Y Y ,随机变量 X X 的条件熵定义为
H ( X Y ) = y H ( X Y = y ) = y p ( y ) x p ( x y ) l o g ( p ( x y ) ) = y x p ( x , y ) l o g p ( x y ) H(X|Y)=\sum _{y} H(X|Y=y)=-\sum _{y} p(y)\sum_{x}p(x|y)log(p(x|y))=-\sum_{y} \sum_{x}p(x,y)log p(x|y)

注意体会一下条件熵的含义:如果X和Y独立,显然给定Y的条件下是不会影响X的随机程度的。因此有 H ( X Y ) = H ( X ) H(X|Y)=H(X)
同时有 H ( X , Y ) = H ( X Y ) + H ( Y ) H(X,Y)=H(X|Y)+H(Y)

对于随机变量 X , Y X,Y ,他们的互信息定义为:
I ( X , Y ) = H ( X ) H ( X Y ) = H ( Y ) H ( Y X ) = H ( X ) + H ( Y ) H ( X , Y ) I(X,Y)=H(X)-H(X|Y)=H(Y)-H(Y|X)=H(X)+H(Y)-H(X,Y)
互信息的信息:

  1. 两个随机变量,相互独立,那么他们的互信息为0。
  2. 两个随机变量存在可逆变换使得 Y = g ( X ) Y=g(X) ,那么他们的互信息就是 H ( X ) H(X) H ( Y ) H(Y) ,在这个情况下 Y Y 是随机变量 X X 的函数,而 X X 是随机变量 Y Y 的函数,他们的熵其实也是相等的。
    3.两个随机变量,他们的互信息越大,说明相关性就越强。

看到这,就不禁让人很激动呀。
想想我们的神经网络,给定输入特征向量 X X ,可以把它看做一个随机向量;我们希望神经网络是一个函数 f f ,它把 X X 映射到 Y Y 去。很明显,我们是希望 X X Y Y 是强关联的,因为我们想给定输入 X X 就有唯一确且的输出 Y Y 。于是只要模型 f f 足够好,那么 I ( X , Y ) I(X,Y) 就会特别大,当 f f 好到能够建立 X X , Y Y 之间的一一映射时, I ( X , Y ) I(X,Y) 达到最大。于是我们就可以把目标函数设置为最大化 I ( X , Y ) I(X,Y)

猜你喜欢

转载自blog.csdn.net/jmh1996/article/details/84862513