1. 程式人生 > >資訊理論模型——熵、互資訊

資訊理論模型——熵、互資訊

前言

在機器學習以及神經網路裡面,我們經常會遇到“熵”、“互資訊”、“條件熵”,“最大熵”等字眼,尤其是最大熵模型 在自然語言處理中用處可謂是超級大。這些概念都是資訊理論裡面的東西,因此它們都被統一稱為資訊理論模型。
這篇部落格就是專門來研究一下資訊理論模型,先介紹基本概念,下篇部落格介紹最大熵模型。

熵的定義

資訊量

記離散型隨機變數 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)