李航-統計學習方法-筆記-6:邏輯斯諦回歸與最大熵模型


邏輯斯諦回歸(logistic regression)是統計學習中的經典分類方法。最大熵模型是概率模型學習的一個准則,將其推廣到分類問題得到最大熵模型(maximum entropy model)。邏輯斯諦回歸模型與最大熵模型都屬於對數線性模型。

邏輯斯諦回歸

邏輯斯諦分布 :設\(X\)是連續隨機變量,\(X\)服從邏輯斯諦分布,則具有以下分布函數和密度函數。其中\(\mu\)為位置參數,\(\gamma>0\)為形狀參數。

\[F(x) = P( X \leqslant x) = \frac{1}{1 + e^{-(x-\mu)/\gamma}} \]

\[f(x) = F'(x)= \frac{e^{-(x-\mu)/\gamma}}{\gamma (1 + e^{-(x-\mu)/\gamma})^2} \]

\(F(x)\)屬於logistic函數,其圖形是一條S形曲線,該曲線以點\((\mu, \frac{1}{2})\)為中心對稱。

\[F(\mu+x) + F(\mu-x) = 2 \times \frac{1}{2} \]

曲線在中心附近增長速度較快,在兩端增長速度較慢。形狀參數\(\gamma\)的值越小,曲線在中心附近增長越快。

\(\mu=0, \gamma=1\)時,\(F(x)\)變成sigmoid函數。

二項邏輯斯諦回歸模型(binomial logistic regression model)
是一種分類模型,由條件概率分布\(P(Y | X)\)表示,形式化為參數化的logistic分布。這里,隨機變量\(X\)取值為實數,隨機變量\(Y\)取值為1或0。

\[P(Y=1 \ | \ x) = \frac{exp(w \cdot x)}{1 + exp(w \cdot x)} \]

\[P(Y=0 \ | \ x) = \frac{1}{1 + exp(w \cdot x)} \]

logistic回歸比較兩個條件概率值的大小,將實例\(x\)分到概率值較大的那一類。

考慮logistic回歸模型的特點。一個事件的幾率(odds)是指該事件發生的概率與該事件不發生的概率的比值。若事件發生概率為\(p\),則該事件的幾率是\(\frac{p}{1-p}\),對數幾率是\(\log \frac{p}{1-p}\),對logistic回歸而言:

\[\log \frac{P(Y=1 \ | \ x)}{1 - P(Y=1 \ | \ x)} = w \cdot x \]

輸出\(Y=1\)的對數幾率是由輸入\(x\)的線性函數表示的模型。

考慮對輸入\(x\)進行分類的線性函數\(w \cdot x\),通過logistic回歸模型可將其轉為概率。

\[P(Y=1 \ | \ x) = \frac{exp(w \cdot x)}{1 + exp(w \cdot x)} \]

這時,線性函數的值接近正無窮,概率值越接近1,線性函數的值越接近負無窮,概率值越接近0(如圖6.1)。這樣的模型就是logistic回歸模型。

模型參數估計
學習logistic回歸模型時,可以應用極大似然估計法估計模型參數。
\(P(Y = 1 \ | \ x) = \pi(x), P(Y = 0 \ | \ x) = 1 - \pi(x)\)

似然函數為$$\prod_{i=1}^{N} [\pi(x_i)]^{y_i} [1 - \pi(x_i)]^{1 - y_i}$$

對數似然函數為$$\begin{split} L(w) &= \sum_{i=1}^{N} [y_i \log \pi(x_i) + (1 - y_i) \log(1 - \pi(x_i))] \ &= \sum_{i=1}^{N} [y_i \log \frac{ \pi(x_i)}{(1 - \pi(x_i))} + \log(1 - \pi(x_i)) ] \ &= \sum_{i=1}^{N} [y_i (w \cdot x_i) - \log(1 + exp(w \cdot x_i)) ]\end{split}$$

(將上式第一行取反,即為交叉熵損失函數)

\(L(w)\)求極大,得到\(w\)的估計值\(\hat{w}\)。問題變成以對數似然函數為目標的最優化問題,logistic回歸學習中通常采用梯度下降法及擬牛頓法。

多項邏輯斯諦回歸(multi-nominal logistic regression model)
推廣到多分類,假設離散型隨機變量\(Y\)的取值集合是\(\{1, 2, ..., K\}\),那么多項logistic回歸模型是

\[P(Y = k \ | \ x) = \frac{exp(w_k \cdot x)}{1 + \sum_{k=1}^{K-1}exp(w_k \cdot x)}, k = 1, 2, ..., K-1 \]

\[P(Y = K \ | \ x) = \frac{1}{1 + \sum_{k=1}^{K-1}exp(w_k \cdot x)} \]

最大熵模型

最大熵原理
最大熵原理是概率模型學習的一個准則,認為在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。

通常用約束條件來確定概率模型的集合,所以最大熵原理可表述為“在滿足約束條件的模型集合中選取熵最大的模型”。

\[H(P) = - \sum_{x} P(x) \log P(x), \\ 0 \leqslant H(P) \leqslant \log |X| \]

\(|X|\)\(X\)的取值個數,當且僅當\(X\)是均勻分布時,不等式右邊的等號成立,熵最大。

最大熵原理認為要選擇的概率模型首先必須滿足已有的事實,即約束條件。在沒有更多信息的情況下,那些不確定的部分是“等可能的”,等概率表示了對事實的無知。因為沒有更多信息,這種判斷是合理的,“等可能”不易操作,可通過“熵最大”來表示。

最大熵模型
最大熵原理是統計學習的一般原理,將它應用到分類得到最大熵模型。

給定訓練數據,可以確定聯合分布\(P(X, Y)\)的經驗分布和邊緣分布\(P(X)\)的經驗分布,分別以\(\tilde{P}(X, Y)\)\(\tilde{P}(X)\)表示

\[\tilde{P}(X = x, Y = y) = \frac{v(X=x, Y=y)}{N} \]

\[\tilde{P}(X = x) = \frac{v(X=x)}{N} \]

其中\(v(X=x, Y=y)\)表示訓練數據中樣本\((x, y)\)出現的頻數,\(v(X=x)\)表示訓練數據中輸入\(x\)出現的頻數,\(N\)表示訓練樣本容量。

用特征函數\(f(x, y)\)描述\(x\)\(y\)之間的某一事實,它是一個二值函數(一般地,特征函數可以是任意實值函數)。

\[f(x, y) = \left\{\begin{matrix} 1, & x與y滿足某一事實\\ 0, & 否則 \end{matrix}\right.\]

特征函數\(f(x, y)\)關於經驗分布\(\tilde{P}(X, Y)\)的期望值,用\(E_{\tilde{P}}(f)\)表示。

\[E_{\tilde{P}}(f) = \sum_{x, y} \tilde{P}(x, y) \ f(x, y) \]

特征函數\(f(x, y)\)關於模型\(P(Y \ | \ X)\)與經驗分布\(\tilde{P}(X)\)的期望值,用\(E_{P}(f)\)表示。

\[E_P(f) = \sum_{x, y} \tilde{P}(x) \ P(y \ | \ x) \ f(x, y) \]

如果模型能夠獲取訓練數據中的信息,那么就可以假設這里兩個期望值相等,即

\(E_P(f) = E_{\tilde{P}}(f), \tag{6.10}\)

\[\sum_{x, y} \tilde{P}(x) \ P(y \ | \ x) \ f(x, y) = \sum_{x, y} \tilde{P}(x, y) \ f(x, y), \tag{6.11} \]

將式(6.10)或式(6.11)作為模型學習的約束條件,假如有\(n\)個特征函數\(f_i(x, y), i=1, 2, ..., n\),那么就有n個約束條件。

最大熵模型的定義
假設滿足所有約束條件的模型集合為:

\[\mathcal{C} \equiv \{P \in \mathcal{P} \ | \ E_P(f_i) = E_{\tilde{P}}(f_i), i = 1, 2, ..., n\} \]

定義在條件概率分布\(P( Y \ | \ X)\)上的條件熵為:

\[H(P) = - \sum_{x, y} \tilde{P}(x) \ P( y \ | \ x) \log P(y \ | \ x) \]

則模型集合\(\mathcal{C}\)中條件熵\(H(P)\)最大的模型稱為最大熵模型。式中的對數為自然對數。

最大熵模型的學習

最大熵模型的學習等價於以下約束最優化問題:

\[\max_{P \in \mathcal{C}} H(P) = - \sum_{x, y} \tilde{P}(x) \ P( y \ | \ x) \log P(y \ | \ x) \]

\[\begin{split} s.t. \ \ & E_P(f_i) = E_{\tilde{P}} (f_i), \ \ i = 1, 2, ..., n \\ & \sum_y P( y \ | \ x) = 1\end{split}\]

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

\[\min_{P \in \mathcal{C}} - H(P) = \sum_{x, y} \tilde{P}(x) \ P( y \ | \ x) \log P(y \ | \ x) \]

\[\begin{split} s.t. \ \ & E_P(f_i) - E_{\tilde{P}} (f_i) = 0, \ \ i = 1, 2, ..., n \\ & \sum_y P( y \ | \ x) = 1\end{split}\]

定義拉格朗日函數\(L(P, w)\)

\[\begin{split} L(P, w) = &- H(P) + w_0 (1 - \sum_y P( y \ | \ x)) +\\ & \sum_{i=1}^{n} w_i (E_P(f_i) - E_{\tilde{P}} (f_i)) \end{split} \tag{6.17}\]

最優化的原始問題為:

\[\min_{P \in \mathcal{C}} \max_{w} L(P, w), \tag{6.18} \]

對偶問題是:

\[\max_{w} \min_{P \in \mathcal{C}} L(P, w), \tag{6.19} \]

由於拉格朗日函數\(L(P, w)\)\(P\)的凸函數,原始問題(6.18)的解與對偶問題(6.19)的解是等價的。這樣,可以通過求解對偶問題(6.19)來求解原始問題(6.18)。

首先求解對偶問題(6.19)內部的極小化問題\(\min_{P \in \mathcal{C}} L(P, w)\),得到的函數是\(w\)的函數,將其記作:

\[\Psi(w) = \min_{P \in \mathcal{C}} L(P, w) = L(P_w, w), \tag{6.20} \]

\(\Psi(w)\)稱為對偶函數,同時,將其解記作

\[P_w = \arg \min_{P \in \mathcal{C}} L(P, w) = P_w( y \ | \ x) \]

具體地,求\(L(P, w)\)\(P( y \ | \ x)\)的偏導數,另偏導數等於0,解得

\[P( y \ | \ x) = exp(\sum_{i=1}^{n} w_i \ f_i(x, y) + w_0 - 1) = \frac{exp(\sum_{i=1}^{n} w_i \ f_i(x, y))}{exp( w_0 - 1)} \]

由於$ \sum_y P( y \ | \ x) = 1$,得

\[P_w( y \ | \ x) = \frac{exp(\sum_{i=1}^{n} w_i \ f_i(x, y))}{Z_w(x)}, \tag{6.22} \]

\[Z_w(x) = \sum_y exp(\sum_{i=1}^{n} w_i \ f_i(x, y)), \tag{6.23} \]

之后求解對偶問題(6.19)外部的極大化問題\(\max_w \Psi(w)\),將其解記為\(w^*\),即\(w^* = \arg \max_w \Psi(w)\),可以應用最優化算法求解得到\(w^*\),代入\(P_w( y \ | \ x)\)得到\(P_{w^*}( y \ | \ x)\),即學習到的最優模型(最大熵模型)。

極大似然估計

從以上最大熵模型學習中可以看出,最大熵模型是由式(6.22)、式(6.23)表示的條件概率分布。下面證明對偶函數的極大化等價於最大熵模型的極大似然估計。

已知訓練數據的經驗概率分布\(\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) \log P( y \ | \ x) \]

當條件概率分布$ P( y \ | \ x)\(是最大熵模型(6.22)和(6.23)時,對數似然函數\)L_{\tilde{P}}(P_w)$為:

\[\begin{split}L_{\tilde{P}}(P_w) &= \sum_{x, y} \tilde{P}(x, y) \log P( y \ | \ x) \\ &= \sum_{x, y} \tilde{P}(x, y) \sum_{i=1}^{n} w_i \ f_i(x, y) - \sum_{x, y} \tilde{P}(x, y) \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{split} \]

再看對偶函數\(\Psi(w)\),由式(6.17)及式(6.20)可得

\[\begin{split} \Psi(w) =& \sum_{x, y} \tilde{P}(x) \ P_w( y \ | \ x) \log P_w(y \ | \ x) \\ &+ \sum_{i=1}^{n} w_i (\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)) \\ =& \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) (\log P_w(y \ | \ x) - \sum_{i=1}^{n} w_i f_i(x, y)) \\ =& \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) \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{split}\]

可以發現\(L_{\tilde{P}}(P_w) = \Psi(w)\),對偶函數等價於對數似然函數,證明最大熵模型學習中的對偶函數極大化等價於最大熵模型的極大似然估計。

這樣,最大熵模型的學習問題轉換為具體求解對數似然函數極大化或對偶函數極大化的問題。

\[P_w( y \ | \ x) = \frac{exp(\sum_{i=1}^{n} w_i \ f_i(x, y))}{Z_w(x)} \]

\[Z_w(x) = \sum_y exp(\sum_{i=1}^{n} w_i \ f_i(x, y)) \]

最大熵模型表現為以上形式,與logistic回歸模型有類似的形式,它們又稱對數線性模型。

模型學習的最優化算法

logistic回歸模型,最大熵模型的學習以似然函數為目標函數的最優化問題,通常通過迭代算法求解。從最優化觀點看,這時的目標函數具有很好的性質,它是光滑的凸函數,因此多種最優化方法都使用,保證能找到全局最優解。

常用的方法有改進的迭代尺度法梯度下降法牛頓法或擬牛頓法。牛頓法或擬牛頓法一般收斂速度更快。


免責聲明!

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



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