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


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

寫在前面

記得在《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.”

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

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

基本概念

熵與信息熵

  • 如何理解熵的含義?

    自然界的事物,如果任其自身發展,最終都會達到盡可能的平衡或互補狀態。舉例:

    一盒火柴,(人為或外力)有序地將其擺放在一個小盒子里,如果不小心火柴盒打翻了,火柴會“散亂”地灑在地板上。此時火柴雖然很亂,但這是它自身發展的結果。

    上面描述的其實是自然界的熵。在自然界中,熵可以這樣表述:

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

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

  • 信息熵公式定義

    設一次隨機事件(用隨機變量\(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)。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM