[Machine Learning & Algorithm]CAML機器學習系列2:深刻淺出ML之Entropy-Based家族

  聲明:本博客整理自博友@zhouyong計算廣告與機器學習-技術共享平臺,尊重原創,歡迎感興趣的博友查看原文。html

寫在前面

記得在《Pattern Recognition And Machine Learning》一書中的開頭有講到:「機率論、決策論、信息論3個重要工具貫穿着《PRML》整本書,雖然看起來使人生畏…」。確實如此,其實這3大理論在機器學習的每一種技法中,或多或少都會出現其身影(不侷限在機率模型)。算法

《PRML》書中原話:」This chapter also provides a self-contained introduction to three important tools that will be used throughout the book, namely probability theory, decision theory, and information theory. Although these might sound like daunting topics, they are in fact straightforward, and a clear understanding of them is essential if machine learning techniques are to be used to best effect in practical applications.」app

懷念好學生時代:那些年-書本啃過的印記機器學習

本章主要討論《信息論》(Information Theory)中一個很是重要的概念:信息熵,以及機率模型的一個學習準則:最大熵理論ide

基本概念

熵與信息熵

  • 如何理解熵的含義?函數

    天然界的事物,若是任其自身發展,最終都會達到儘量的平衡或互補狀態。舉例:工具

    一盒火柴,(人爲或外力)有序地將其擺放在一個小盒子裏,若是不當心火柴盒打翻了,火柴會「散亂」地灑在地板上。此時火柴雖然很亂,但這是它自身發展的結果。學習

    上面描述的實際上是天然界的熵。在天然界中,熵能夠這樣表述:優化

    熵是描述事物無序性的參數,熵越大則無序性越強。編碼

    那麼,在信息論中,咱們用熵表示一個隨機變量的不肯定性,那麼如何量化信息的不肯定性呢?

  • 信息熵公式定義

    設一次隨機事件(用隨機變量\(X\)表示),它可能會有\(x_1, x_2, x_3, \cdots ,x_m\)共\(m\)個不一樣的結果,每一個結果出現的機率分別爲\(p_1, p_2, p_3, \cdots, p_m\),那麼\(X\)的不肯定度,即信息熵爲:

    $$
    H(X) =\sum_{i=1}^{m} p_i \cdot \log_{2} \frac{1}{p_i} = - \sum_{i=1}^{m} p_i \cdot \log_{2} p_i \qquad (ml.1.2.1)
    $$

    ①. 信息熵的物理意義:

    一個事件(用隨機變量\(X\)表示)可能的變化越多,那麼它攜帶的信息量就越大(與變量具體取值無關,只跟值的種類多少以及發生機率有關)。

    ②. 系統熵舉例:

    對於一個分類系統來講,假設類別\(C\)可能的取值爲\(c_1, c_2, \cdots, c_k\)(\(k\)是類別總數),每個類別出現的機率分別是\(p(c_1),p(c_2), \cdots, p(c_k)\)。此時,分類系統的熵能夠表示爲:

    $$
    H(C) = - \sum_{i=1}^{k} p(c_i) \cdot \log_{2} p(c_i) \qquad (n.ml.1.2.1)
    $$

    分類系統的做用就是輸出一個特徵向量(文本特徵、ID特徵、屬性特徵等)屬於哪一個類別的值,而這個值多是\(c_1, c_2, \cdots, c_k\),所以這個值所攜帶的信息量就是公式\((n.ml.1.2.1)\)這麼多。

 

條件熵

設\(X,Y\)爲兩個隨機變量,在\(X\)發生的前提下,\(Y\)發生所新帶來的熵 定義爲\(Y\)的條件熵(Conditional Entropy),用\(H(Y|X)\)表示,計算公式以下:

$$
H(Y|X) = - \sum_{x_i,y_j}^{m,n} p(x_i,y_j) \cdot log_2 p(y_j|x_i) \qquad(ml.1.2.2)
$$

其物理含義是當變量\(X\)已知時,變量\(Y\)的平均不肯定性是多少。公式\((ml.1.2.2)\)推導以下:

假設變量\(X\)取值有\(m\)個,那麼\(H(Y|X=x_i)\)是指變量\(X\)被固定爲值\(x_i\)時的條件熵;\(H(Y|X)\)時指變量\(X\)被固定時的條件熵。那麼兩者之間的關係時:

$$
\begin{align}
H(Y|X) & = p(x_1) \cdot H(Y|X=x_1) + \cdots + p(x_m) \cdot H(Y|X=x_m) \\
& = \sum_{i=1}^{m} p(x_i) \cdot H(Y|X=x_i)
\end{align} \quad(n.ml.1.2.2)
$$

根據公式\((n.ml.1.2.2)\)繼續推導\(Y\)的條件熵:

$$
\begin{align}
H(Y|X) & = \sum_{i=1}^{m} p(x_i) \cdot H(Y|X=x_i) \\
& = -\sum_{i=1}^{m} p(x_i) \cdot \left( \sum_{j=i}^{n} p(y_j|x_i) \cdot log_2 p(y_j|x_i) \right) \\
& = -\sum_{i=1}^{m} \sum_{j=1}^{n} p(y_j,x_i) \cdot log_2 p(y_j|x_i) \\
& = - \sum_{x_i,y_j}^{m,n} p(x_i,y_j) \cdot log_2 p(y_j|x_i)
\end{align} \qquad\qquad (n.ml.1.2.3)
$$

注:條件熵裏面是聯合機率分佈累加,公式\((n.ml.1.2.3)\)推導過程可參考《第3章:深刻淺出ML之Based-Tree Classification Family》中3.1.2節條件熵部分。

聯合熵

一個隨機變量的不肯定性能夠用熵來表示,這一律念能夠直接推廣到多個隨機變量。

  • 聯合熵計算(Joint Entropy)

    設\(X,Y\)爲兩個隨機變量,\(p(x_i,y_j)\)表示其聯合機率,用\(H(XY)\)表示聯合熵,計算公式爲:

    $$
    H(XY) = - \sum_{i=1}^{m} \sum_{j=1}^{n} p(x_i,y_j) \cdot log_{2} p(x_i,y_j) \qquad(ml.1.2.3)
    $$

    條件熵、聯合熵、熵之間的關係:

    $$
    H(Y|X) = H(X,Y) - H(X) \qquad\qquad(n.ml.1.2.4)
    $$

    公式推導以下:

    $$
    \begin{align}
    H(X,Y) - H(X) & = - \sum_{i=1}^{m} \sum_{j=1}^{n} p(x_i,y_j) \cdot log_2 p(x_i,y_j) + \sum_{i=1}^{m} \underline{p(x_i)} \cdot log_2 p(x_i) \\
    & = - \sum_{i=1}^{m} \sum_{j=1}^{n} p(x_i,y_j) \cdot log_2 p(x_i,y_j) + \sum_{i=1}^{m} \underline{ \left( \sum_{j=1}^{n} p(x_i,y_j) \right) } \cdot log_2 p(x_i) \\
    & = - \sum_{i=1}^{m} \sum_{j=1}^{n} p(x_i,y_j) \cdot \left(log_2 p(x_i,y_j) - log_2 p(x_i) \right) \\
    & = - \sum_{i=1}^{m} \sum_{j=1}^{n} p(x_i,y_j) \cdot log_2 p(y_j|x_i) \\
    & = H(Y|X) \qquad\qquad\qquad\qquad\qquad\qquad (n.ml.1.2.5)
    \end{align}
    $$

  • 聯合熵特色

    • \(H(XY) \geq H(X)\)
      • 聯合系統的熵不小於子系統的熵,即增長一個新系統不會減小不肯定性。
    • \(H(XY) \leq H(X)+H(Y)\)
      • 子系統可加性
    • \(H(XY) \geq 0\): 非負性。

相對熵、KL距離

  • 相對熵概念

    相對熵,又稱爲交叉熵或KL距離,是Kullback-Leibler散度(Kullback-Leibler Divergence)的簡稱。它主要用於衡量相同事件空間裏的兩個機率分佈的差別。簡單介紹其背景:

    根據香農的信息論,給定一個字符集的機率分佈,咱們能夠設計一種編碼,使得表示該字符集組成的(每一個)字符串平均須要的比特數最少(好比Huffman編碼)。假設字符集是\(X\),對\(x \in X\),其出現機率爲\(P(x)\),那麼其最優編碼平均須要的比特數(即每個字符須要的比特數)等於這個字符集的熵(公式見\((ml.1.2.1)\)),即最優編碼時,字符\(x\)的編碼長度等於\(log_2{\frac{1}{P(x)}}\)。

    在一樣的字符集上,假設存在另外一個機率分佈\(Q(x)\)。若是根據\(Q(x)\)分佈進行編碼,那麼表示這些字符就會比理想狀況多用一些比特數。而KL距離就是用來衡量這種狀況下平均每一個字符多用的比特數,可用來度量兩個分佈的距離。

  • KL距離計算公式

    這裏用\(D(P||Q)\)表示KL距離,計算公式以下:

    $$
    D(P||Q) = \sum_{x \in X} P(x) \cdot log_2 \frac{P(x)}{Q(x)} \qquad\qquad(ml.1.2.4)
    $$

    從公式\((ml.1.2.4)\)能夠看出,當兩個機率分佈徹底相同時,KL距離爲0。機率分佈\(P(x)\)的信息熵如公式\((ml.1.2.1)\)所示,說的是若是按照機率分佈\(P(x)\)編碼時,描述這個隨機事件至少須要多少比特編碼。

    所以,KL距離的物理意義能夠這樣表達:

    在相同的事件空間裏,機率分佈爲\(P(x)\)的事件空間,若用機率分佈\(Q(x)\)編碼時,平均每一個基本事件(符號)編碼長度增長了多少比特數。

    經過信息熵可知,不存在其它比按照隨機事件自己機率分佈更好的編碼方式了,因此\(D(P||Q)\)始終是大於等於0的

    雖然KL被稱爲距離,可是其不知足距離定義的3個條件:1) 非負性;2) 對稱性(不知足);3) 三角不等式(不知足)。

  • KL距離示例

    假設有一個字符發射器,隨機發出0和1兩種字符,真實發出的機率分佈爲\(A\)。如今經過樣本觀察,獲得機率分佈\(B\)和\(C\)。各個分佈的具體狀況以下:

    (1). \(A(0) = 1/2, A(1) = 1/2\);

    (2). \(B(0) = 1/4, B(1) = 3/4\);

    (3). \(C(0) = 1/8, C(1) = 7/8\);

    那麼能夠計算出相對熵以下:

    \(D(A||B) = 1/2 \cdot log_2 (\frac{1/2}{1/4}) + 1/2 \cdot log_2 (\frac{1/2}{3/4}) = 1/2 \cdot log_2 (4/3)\)

    \(D(A||C) = 1/2 \cdot log_2 (\frac{1/2}{1/8}) + 1/2 \cdot log_2 (\frac{1/2}{7/8}) = 1/2 \cdot log_2 (16/7)\)

    能夠看到,用\(B和C\)兩種方式進行編碼,其結果都是的平均編碼長度增長了。同時也能發現,按照機率分佈\(B\)進行編碼,要比按照\(C\)進行編碼,平均每一個符號增長的比特數目要少。從分佈熵也能夠看出,實際上\(B\)要比\(C\)更接近實際分佈。
    若是實際分佈爲\(C\),而用\(A\)分佈來編碼這個字符發射器的每一個字符,一樣能夠獲得:

    \(D(C||A) = 1/8 \cdot log_2 (\frac{1/8}{1/2}) + 7/8 \cdot log_2 (\frac{7/8}{1/2}) = 7/8 \log_2{7} - 2 > 0\)

    從示例中,咱們能夠得出結論:對於一個信息源進行編碼,按照其自己的機率分佈進行編碼,每一個字符的平均比特數最少。 這也是信息熵的概念,用於衡量信息源自己的不肯定性。

    此外能夠看出,KL距離不知足對稱性,即\(D(P||Q)\)不必定等於\(D(Q||P)\)。

  • 相對熵應用場景

    • 推薦系統-物品之間類似度

      在使用LDA(Latent Dirichlet Allocation)計算物品之間的內容類似度時,咱們能夠先計算出物品在Topic上的分佈,而後利用兩個物品的Topic(話題)分佈計算物品的類似度。好比,若是兩個物品的Topic分佈類似(處在同一個事件空間),則認爲兩個物品具備較高的類似度,反之則認爲兩個物品的類似度較低。
      這種Topic分佈的類似度能夠利用KL散度來計算:

      $$
      D(P||Q) = \sum_{i \in X} p(x_i) \cdot log_2 {\frac{p(x_i)}{q(x_i)}} \qquad(n.ml.1.2.6)
      $$

      其中\(p\)和\(q\)是兩個分佈,\(X\)爲話題集合,\(x_i\)表示第\(i\)個話題。KL散度越大說明分佈的類似度越低

互信息

若是說相對熵(KL)距離衡量的是相同事件空間裏的兩個事件的類似度大小,那麼,互信息一般用來衡量不一樣事件空間裏的兩個信息(隨機事件、變量)的相關性大小。

  • 互信息計算公式

    設\(X\)和\(Y\)爲兩個離散隨機變量,事件\(Y=y_j\)的出現對於事件\(X=x_i\)的出現的互信息量\(I(x_i,y_j)\)定義爲:

    $$
    I(x_i;y_j) = log_2 {\frac{p(x_i|y_j)}{p(x_i)}} = log_2 {\frac {p(x_i,y_j)}{p(x_i)p(y_j)}} \qquad(ml.1.2.5)
    $$

    對於事件\(X\)和\(Y\)來講,它們之間的互信息用\(I(X;Y)\)表示,公式爲:

    $$
    I(X;Y) = \sum_{i=1}^{m} \sum_{j=1}^{n} p(x_i,y_j) \cdot log_2 {\frac{p(x_i,y_j)}{p(x_i)p(y_j)}} \qquad(ml.1.2.6)
    $$

    公式解釋:
    互信息就是隨機事件\(X\)的不肯定性(即熵\(H(X)\)),以及在給定隨機變量\(Y\)條件下的不肯定性(即條件熵\(H(X|Y)\))之間的差別,即

    $$
    I(X;Y) = H(X) - H(X|Y) \qquad(n.ml.1.2.7)
    $$

    互信息與決策樹中的信息增益等價: 互信息 \(\Longleftrightarrow\) 信息增益.

    所謂兩個事件相關性的量化度量,就是在瞭解了其中一個事件\(Y\)的前提下,對消除另外一個事件\(X\)不肯定性所提供的信息量。

  • 互信息與其它熵之間的關係

    • \(H(X|Y) = H(X,Y) - H(Y)\)
    • \(I(X;Y) = H(X) + H(Y) - H(X,Y)\)
    • \(I(X;Y) = H(X) - H(X|Y)\)
    • \(I(X;X) = H(X)\)
  • 互信息應用場景
    • 機器學習-<feature,label>之間相關性
      • 計算隨機事件之間(不一樣的事件空間)的相關性

最大熵模型(Maximum Entropy Model)

最大熵原理

在介紹最大熵模型以前,咱們先了解一下最大熵原理,由於最大熵原理是選擇最優機率模型的一個準則

  • 最大熵原理

  在機率模型空間集合中,在知足給定約束條件的前提下,使信息熵最大化獲得的機率模型,就是最優的模型。

理解最大熵原理一般用約束條件來肯定機率模型的集合。

  • 假設離散隨機變量\(X\)的機率分佈是\(P(X)\),其信息熵可用公式\((ml.1.2.1)\) 表示,而且熵知足如下不等式:

    $$
    0 \leq H(X) \leq log_2 |X| \qquad\quad(ml.1.2.7)
    $$

    其中,\(|X|\)是\(X\)的取值個數,當且僅當\(X\)的分佈是均勻分佈時右邊的等號才成立。也就是說,當\(X\)服從均勻分佈時,熵最大。

    根據最大熵原理學習機率模型堅持的原則:首先必須知足已有的事實,即約束條件;但對不肯定的部分不作任何假設,堅持無偏原則。最大熵原理經過熵的最大化來表示等可能性。

  • 最大熵原理舉例(本示例來自《統計學習方法》第6章-李航老師)

    問題:假設隨機變量\(X\)有5個取值\(\{A,B,C,D,E\}\), 要估計各個取值的機率\(P(A),P(B),P(C),P(D),P(E)\)。

    首先這些機率只知足如下約束條件:

    $$
    P(A) + P(B) + P(C) + P(D) + P(E) = 1 \qquad(exp.ml.1.2.1)
    $$

    知足這個約束條件的機率分佈有無窮多個,可是在沒有任何其它信息的狀況下,根據最大熵原理和無偏原則,選擇熵最大時對應的機率分佈,即各個取值機率相等是一個不錯的機率估計方法。即有:

    $$
    P(A) = P(B) = P(C) = P(D) = P(E) = \frac{1}{5} \qquad(exp.ml.1.2.2)
    $$

    等機率堅持了最大熵的無偏原則,由於沒有更多信息,此種判斷是合理的。

    如今從先驗知識中獲得一些信息:\(A和B\)的機率值之和知足如下條件:

    $$
    P(A) + P(B) = \frac{3}{10} \qquad(exp.ml.1.2.3)
    $$

    一樣的,知足公式\((exp.ml.1.2.1)和(exp.ml.1.2.3)\)兩個約束條件的機率分佈仍有無窮多個。在缺乏其它信息的狀況下,堅持無偏原則,獲得:

    $$
    \begin{align}
    P(A) = P(B) = \frac{3}{20} \qquad (exp.ml.1.2.4) \\
    P(C) = P(D) = P(E) = \frac{7}{30} \qquad (exp.ml.1.2.5)
    \end{align}
    $$

    還能夠繼續按照知足約束條件下的求等機率的方法估計機率分佈。以上機率模型學習的方法正是遵循了最大熵原理。

 

最大熵模型定義

最大熵原理是統計學習的通常原理,將它應用到分類問題中,即獲得最大熵模型。

  • 最大熵模型引入

    訓練數據集:\(D=\{(x^{(1)},y^{(1)}), (x^{(2)},y^{(2)}), \cdots, (x^{(N)},y^{(N)})\}\),學習的目標是:用最大熵原理選擇最優的分類模型。

    假設分類模型是一個條件機率分佈\(P(y|x), x \in X \subseteq R^n\)表示輸入(特徵向量),\(y \in Y\), \(X\)和\(Y\)分別是輸入(特徵向量)和輸出(標籤)的集合。這個模型表示的是對於給定的輸入\(x\),以條件機率\(P(y|x)\)計算獲得標籤\(y\)。

    • 首先,考慮模型應知足的條件

      給定訓練集,能夠計算獲得經驗聯合分佈\(P(x,y)\)和邊緣分佈\(P(x)\)的經驗分佈,分別以\(\tilde{P}(x,y)\)和\(\tilde{P}(x)\)表示,即:

      $$
      \begin{align}
      \tilde{P}(x=\tilde{x}, y = \tilde{y}) &= \frac{freq(x=\tilde{x}, y = \tilde{y})}{N} \qquad(1)\\
      \tilde{P}(x=\tilde{x}) &= \frac{freq(x=\tilde{x})}{N} \qquad\qquad\;(2)
      \end{align} \qquad(ml.1.2.8)
      $$

      其中,\(freq(x=\tilde{x}, y=\tilde{y})\)表示訓練集中樣本\((\tilde{x}, \tilde{y})\)出現的頻數,\(freq(\tilde{x})\)表示訓練集中輸入\(\tilde{x}\)(向量)出現的頻數,\(N\)表示訓練集容量。

    • 特徵函數(Feature Function)

      定義特徵函數 \(f(x,y)\)用於描述輸入\(x\)和輸出\(y\)之間知足的某一種事實:

      $$
      f(x,y) = \begin{cases}
      \displaystyle 1, &x與y知足某一事實; \\
      0, & 其它
      \end{cases} \qquad\qquad(ml.1.2.9)
      $$

      這是一個二值函數(也能夠是任意實值函數),當\(x\)與\(y\)知足這個事實時取值爲1,不然爲0.

      ①. 特徵函數\(f(x,y)\)關於經驗分佈\(\tilde{P}(x,y)\)的指望值,用\(E_{\tilde{P}}(f)\)表示以下:

      $$
      E_{\tilde{P}} = \sum_{x,y} \tilde{P}(x,y) \cdot f(x,y) \qquad\qquad(n.ml.1.2.8)
      $$

      ②. 特徵函數\(f(x,y)\)關於模型\(P(y|x)\)與經驗分佈\(\tilde{P}(x)\)的指望值,用\(E_P(f)\)表示以下:

      $$
      E_P(f) = \sum_{x,y} \tilde{P}(x) \cdot P(y|x) \cdot f(x,y) \qquad(n.ml.1.2.9)
      $$

      ③. 若是模型可以獲取訓練數據中足夠的信息,那麼就能夠假設這兩個指望值相等。即:

      $$
      \sum_{x,y} \tilde{P}(x,y) \cdot f(x,y) = \sum_{x,y} \tilde{P}(x) \cdot P(y|x) \cdot f(x,y) \qquad(n.ml.1.2.10)
      $$

      注:公式\((n.ml.1.2.10)\)是頻率學派-點估計求參數套路,之因此假設相等,是由於有\(p(x,y)=p(y|x) \cdot p(x)\)

      咱們將公式\((n.ml.1.2.10)\)做爲機率模型學習的約束條件。假若有\(n\)個特徵函數\(f_{i} (x,y), i=1,2, \cdots, n\),那麼就有\(n\)個約束條件。

  • 最大熵模型定義

    假設知足全部約束條件的模型集合爲:

    $$
    \mathcal{C} = \{P \in \mathcal{P} | E_{P}(f_i) = E_{\tilde{P}}(f_i), i=1,2, \cdots, n\} \qquad (ml.1.2.10)
    $$

    定義在條件機率分佈\(P(y|x)\)上的條件熵爲:

    $$
    H(P) = - \sum_{x,y} \tilde{P}(x) \cdot P(y|x) \cdot \log {P(y|x)} \qquad (ml.1.2.11)
    $$

    模型集合\(\mathcal{C}\)中條件熵\(H(P)\)最大的模型稱爲最大熵模型。

    注:最大熵模型中\(\log\)是指以\(e\)爲底的對數,與信息熵公式中以2爲底不一樣。本文如無特殊說明,\(\log\)均指天然對數。

最大熵模型參數學習

最大熵模型學習過程即爲求解最大熵模型的過程,最大熵模型的學習問題能夠表示爲帶有約束的最優化問題

  • 示例:學習《最大熵原理》示例中的最大熵模型

    爲了簡便,這裏分別以\(y_1,y_2,y_3,y_4,y_5\)表示\(A,B,C,D和E\),最大熵模型學習的最優化問題能夠表示爲:

    $$
    \begin{align}
    & min \quad -H(P) = \sum_{i=1}^{5} P(y_i) \cdot log{P(y_i)} \\
    & s.t. \quad P(y_1) + P(y_2) = \tilde{P}(y_1) + \tilde{P}(y_2) = \frac{3}{10} \\
    & \qquad \sum_{i=1}^{5} P(y_i) = \sum_{i=1}^{5} \tilde{P}(y_i) = 1
    \end{align} \qquad\quad (exp.ml.1.2.5)
    $$

    提示:這裏面沒有特徵\(x\)和特徵函數\(f_i(x,y)\)的約束。

    將帶約束優化問題轉化爲無約束優化問題:引入拉格朗日乘子\(w_0,w_1\),定義朗格朗日函數:

    $$
    L(P,w) = \sum_{i=1}^{5} P(y_i) log{P(y_i)} + w_1 \left( P(y_1) + P(y_2) - \frac{3}{10} \right) + w_0 \left(\sum_{i=1}^{5} P(y_i) - 1 \right) \;(exp.ml.1.2.6)
    $$

    根據拉格朗日對偶性,能夠經過求解對偶最優化問題獲得原始最優化問題的解,因此求解(對偶問題):\(\max_{w} \min_{P} L(P,w) \)。求解過程以下:

    首先求解\(L(P,w)\)關於\(P\)的極小化問題。爲此,固定\(w_0,w_1\),求偏導數:

    $$
    \begin{align}
    & \frac{\partial L(P,w)}{\partial P(y_1)} = 1 + log_2 P(y_1) + w_1 + w_0 \\
    & \frac{\partial L(P,w)}{\partial P(y_2)} = 1 + log_2 P(y_2) + w_1 + w_0 \\
    & \frac{\partial L(P,w)}{\partial P(y_3)} = 1 + log_2 P(y_3) + w_0 \\
    & \frac{\partial L(P,w)}{\partial P(y_4)} = 1 + log_2 P(y_4) + w_0 \\
    & \frac{\partial L(P,w)}{\partial P(y_5)} = 1 + log_2 P(y_5) + w_0 \\
    \end{align}
    $$

    令各偏導數等於0,可解得:

    $$
    \begin{align}
    & P(y_1) = P(y_2) = e^{-w_1 - w_0 - 1} \\
    & P(y_3) = P(y_4) = P(y_5) = e^{-w_0 -1}
    \end{align}
    $$

    因而,極小化結果爲:

    $$
    \min_{P} \; L(P,w) = L(P_w, w) = -2 e^{-w_1 - w_0 - 1} -3 e^{-w_0 - 1} - \frac{3}{10} w_1 - w_0
    $$

    下面再求解對偶函數\(L(P_w,w)\)關於\(w\)的極大化問題:

    $$
    \max_{w} \; L(P_w, w) = -2 e^{-w_1 - w_0 - 1} -3 e^{-w_0 - 1} - \frac{3}{10} w_1 - w_0 \qquad(exp.ml.1.2.7)
    $$

    分別求\(L(P_w,w)\)對\(w_0,w_1\)的偏導數,並令其爲0,獲得:

    $$
    \begin{align}
    & e^{-w_1 - w_0 - 1} = \frac{3}{20} \\
    & e^{-w_0 - 1} = \frac{7}{30}
    \end{align}
    $$

    因而獲得所求的機率分佈爲:

    $$
    \begin{align}
    & P(y_1) = P(y_2) = \frac{3}{20} \\
    & P(y_3) = P(y_4) = P(y_5) = \frac{7}{30}
    \end{align}
    $$

  • 最大熵模型學習通常流程

    對於給定的訓練\(D=\{(x^{(1)},y^{(1)}), (x^{(2)},y^{(2)}), \cdots, (x^{(N)},y^{(N)})\}\)以及特徵函數\(f_i(x,y),i=1,2,\cdots,n\),最大熵模型的學習等價於帶約束的最優化問題:

    $$
    \begin{align}
    & \max_{P \in \mathcal{C}} \quad H(P) = -\sum_{x,y} \tilde{P}(x) \cdot P(y|x) \cdot log P(y|x) \\
    & s.t. \quad E_P(f_i) = E_{\tilde{P}} (f_i), \; i=1,2,\cdots,n \\
    & \qquad \sum_{y} P(y|x) = 1
    \end{align} \qquad\quad(ml.1.2.12)
    $$

    按照最優化問題的習慣思路,將求最大值問題改寫爲求等價的最小值問題,即:

    $$
    \begin{align}
    & \min_{P \in \mathcal{C}} \quad -H(P) = \sum_{x,y} \tilde{P}(x) \cdot P(y|x) \cdot log P(y|x) \\
    & s.t. \quad E_P(f_i) - E_{\tilde{P}} (f_i) = 0, \; i=1,2,\cdots,n \\
    & \qquad \sum_{y} P(y|x) = 1
    \end{align} \qquad\quad(ml.1.2.13)
    $$

    求解約束最優化問題\((ml.1.2.13)\)所得出的解,就是最大熵模型學習的解。

    將約束最優化的原始問題轉換爲無約束最優化的對偶問題。具體推導過程以下:

    • 首先,引入拉格朗日乘子\(w_0,w_1,\cdots,w_n\),定義拉格朗日函數\(L(P,w)\)

      表達式爲:

      $$
      \begin{align}
      L(P,w) & = -H(P) + w_0 \cdot \left( 1- \sum_{y} P(y|x) \right) + \sum_{i=1}^{n} w_i \cdot \left( E_{\tilde{P}}(f_i) - E_P (f_i) \right) \\
      & = \sum_{x,y} \tilde{P}(x) \cdot P(y|x) \cdot log {P(y|x)} + w_0 \cdot \left( 1- \sum_{y} P(y|x) \right) \\
      & \qquad + \sum_{i=1}^{n} w_i \cdot \left(\sum_{x,y} \tilde{P}(x,y) \cdot f_i(x,y) - \sum_{x.y} \tilde{P}(x) \cdot P(y|x) \cdot f_i(x,y) \right)
      \end{align} \quad(ml.1.2.14)
      $$

      最優化的原始問題是:

      $$
      \min_{P \in \mathcal{C}} \max_{w} L(P,w) \qquad\qquad(ml.1.2.15)
      $$

      對偶問題是:

      $$
      \max_{w} \min_{P \in \mathcal{C}} L(P,w) \qquad\qquad(ml.1.2.16)
      $$

      通俗的講,由_最小最大問題_轉化爲_最大最小問題_。

      因爲最大熵模型對應的朗格朗日函數\(L(P,w)\)是參數\(P\)的凸函數,因此原始問題\((ml.1.2.15)\)的解與對偶問題\((ml.1.2.16)\)的解是等價的。所以,能夠經過求解對偶問題來獲得原始問題的解。

    • 其次,求對偶問題\((ml.1.2.16)\)內部的極小化問題\(\min_{P \in \mathcal{C}} L(P,w)\)

      \(\min_{P \in \mathcal{C}} L(P,w)\)是乘子\(w\)的函數,將其記做:

      $$
      \Psi(w) = \min_{P \in \mathcal{C}} L(P,w) = L(P_w, w) \qquad(ml.1.2.17)
      $$

      \(\Psi(w)\)稱爲對偶函數(\(Latex: \Psi\) = \Psi)。將其解記做:

      $$
      P_w = arg \min_{P \in \mathcal{C}} L(P,w) = P_w (y|x) \qquad(n.ml.1.2.11)
      $$

      具體地,固定\(w_i\),求\(L(P,w)\)對\(P(y|x)\)的偏導數:

      $$
      \begin{align}
      \frac{\partial L(P,w)} {\partial P(y|x)} & = \sum_{x,y} \tilde{P}(x) \cdot \left(logP(y|x) + 1 \right) - \sum_{y} w_0 - \sum_{x,y} \left( \tilde{P}(x) \cdot \sum_{i=1}^{n} w_i \cdot f_i(x,y) \right) \\
      & = \sum_{x,y} \tilde{P}(x) \cdot \left(logP(y|x) + 1 - w_0 - \sum_{i=1}^{n} w_i \cdot f_i(x,y) \right) \qquad(n.ml.1.2.12)
      \end{align}
      $$

      令偏導數等於0,在\(\tilde{P}(x) > 0\)的狀況下,求得:

      $$
      P(y|x) = \exp {\left( \sum_{i=1}^{n} w_i \cdot f_i(x,y) + w_0 - 1 \right)} = \frac {\exp \left(\sum_{i=1}^{n} w_i \cdot f_i(x,y) \right)} {\exp(1-w_0)} \quad(n.ml.1.2.13)
      $$

      因爲 \(\sum_{y} P(y|x) = 1\),可得:

      $$
      P_w (y|x) = \frac{1}{Z_w(x)} \exp \left(\sum_{i=1}^{n} w_i \cdot f_i(x,y) \right) \qquad\quad(n.ml.1.2.14)
      $$

      其中,

      $$
      Z_w(x) = \sum_{y} \exp \left(\sum_{i=1}^{n} w_i \cdot f_i(x,y) \right) \qquad\quad(n.ml.1.2.15)
      $$

      \(Z_w(x)\)稱爲歸一化因子;\(f_i(x,y)\)是特徵函數;\(w_i\)是第\(i\)個參數(特徵權值)。公式\((n.ml.1.2.14)\)、\((n.ml.1.2.15)\) 表示的模型\(P_w = P_w(y|x)\)就是最大熵模型(\(w\)是最大熵模型中的參數向量)。

    • 最後,求解對偶問題外部的極大化問題

      對偶問題外部極大化表達式:

      $$
      \max_{w} \Psi(w) \qquad\qquad(ml.1.2.18)
      $$

      將其解記做\(w^@\),即: \(w^@ = arg \max_{w} \Psi(w)\)。

      也就是說,能夠應用最優化算法求對偶函數\(\Psi(w)\)的極大化,獲得\(w^@\),用其表示\(P^@ = P_{w^@} = P_{w^@}(y|x)\)是學習到的最優模型(最大熵模型)。

      最大熵模型的學習歸結爲對偶函數\(\Psi(w)\)的極大化。

對偶函數極大化與極大似然估計等價

從最大熵模型的學習過程能夠看出,最大熵模型是由\(n.ml.1.2.14\)和\(n.ml.1.2.15\)表示的條件機率分佈。下面證實:對偶函數的極大化等價於最大熵模型的極大似然估計

  • 對偶函數極大化=極大似然估計

    已知訓練數據的經驗機率分佈\(\tilde{P}(x,y)\),條件機率分佈分佈\(P(y|x)\)的對數似然函數表示爲:

    $$
    L_{\tilde{P}}(P_w) = \log \prod_{x,y} P(y|x)^{\tilde{P}(x,y)} = \sum_{x,y} \tilde{P}(x,y) \cdot \log P(y|x) \qquad(ml.1.2.19)
    $$

    條件機率分佈\(P(y|x)\)是最大熵模型(公式\((n.ml.1.2.14)和n(.ml.1.2.15)\))時,對數似然函數\(L_{\tilde{P}}(P_w)\)爲:

    $$
    \begin{align}
    L_{\tilde{P}}(P_w) & = \sum_{x,y} \tilde{P}(x,y) \cdot \log P(y|x) \\
    & = \sum_{x,y} \left (\tilde{P}(x,y) \cdot \sum_{i=1}^{n} w_i f_i(x,y)\right) - \sum_{x,y} \tilde{P}(x,y) \cdot log Z_w(x) \\
    & = \sum_{x,y} \left (\tilde{P}(x,y) \cdot \sum_{i=1}^{n} w_i f_i(x,y)\right) - \sum_{x} \tilde{P}(x) \cdot log Z_w(x)
    \end{align} \quad(ml.1.2.20)
    $$

    再看對偶函數\(\Psi(w)\),由公式\((ml.1.2.14)\)和公式\((ml.1.2.17)\)可得:

    $$
    \begin{align}
    \Psi(w) & = \sum_{x,y} \tilde{P}(x) \cdot P_w(y|x) \cdot \log P_w(y|x) \\
    & \qquad\quad + \sum_{i=1}^{n} w_i \cdot \left(\sum_{x,y} \tilde{P}(x,y) f_i(x,y) - \sum_{x,y} \tilde{P}(x) P_w(y|x)f_i(x,y) \right) \\
    & = \sum_{x,y} \tilde{P}(x,y) \sum_{i=1}^{n} w_i f_i(x,y) + \sum_{x,y} \tilde{P}(x)P_w(y|x) \left(\underline{log P_w(y|x) - \sum_{i=1}^{n} w_i f_i (x,y)}\right) \\
    & = \sum_{x,y} \tilde{P}(x,y) \sum_{i=1}^{n} w_i f_i(x,y) - \sum_{x,y} \tilde{P}(x) P_w(y|x) \cdot \underline{\log Z_w(x)} \\
    & = \sum_{x,y} \tilde{P}(x,y) \sum_{i=1}^{n} w_i f_i(x,y) - \sum_{x} \tilde{P}(x) \log Z_w(x)
    \end{align} \quad(ml.1.2.21)
    $$

    其中, 第二步推導第三步中用到了:

    $$
    \sum_{i=1}^{n} w_i \cdot f_i(x,y) = \log P_w(y|x) \cdot Z_w(x) \qquad(n.ml.1.2.16)
    $$

    根據公式\((n.ml.1.2.14)\)獲得。在最後一步用到了\(\sum_{y} P(y|x) = 1\)的性質。即:

    $$
    \begin{align}
    \sum_{x,y} \tilde{P}(x) P_w(y|x) \log Z_w(x) & = \sum_{x} \tilde{P}(x) \left( \sum_{y} P_w(y|x) \right) \log Z_w(x) \\
    & = \sum_{x} \tilde{P}(x) \log Z_w(x)
    \end{align} \qquad(n.ml.1.2.17)
    $$

    比較公式\((ml.1.2.20)\)和\((ml.1.2.21)\),能夠發現:

    $$
    \Psi(w) = L_{\tilde{P}}(P_w) \qquad\qquad(ml.1.2.22)
    $$

    即對偶函數\(\Psi(w)\)等價於對數似然函數\(L_{\tilde{P}}(P_w)\),因而最大熵模型學習中的對偶函數極大化等價於最大熵模型的極大似然估計的結論得以證實。

    總結:最大熵模型的學習問題就轉化爲具體求解對數似然函數極大化或對偶函數極大化的問題。

    能夠將最大熵模型寫成更爲通常的形式:

    $$
    \begin{align}
    P_w(y|x) &= \frac{1}{Z_w(x)} \cdot \exp \left(\sum_{i=1}^{n} w_i \cdot f_i(x,y)\right) \\
    Z_w(x) &= \sum_{y} \exp \left(\sum_{i=1}^{n} w_i \cdot f_i(x,y)\right)
    \end{align} \qquad(ml.1.2.23)
    $$

    這裏,\(x \in R^n\)爲輸入(向量),\(y \in \{1,2, \cdots, K\}\)爲輸出,\(w \in R^n\)爲權值向量,\(f_i(x,y), i=1,2, \cdots, n\)爲任意實值特徵函數。

    小結:

    ①. 最大熵模型與LR模型有相似的形式,它們又稱爲對數線性模型(Log Linear Model)。

    ②. 模型學習就是在給定的訓練數據條件下對模型進行極大似然估計或正則化的極大似然估計。

相關文章
相關標籤/搜索