机器学习理论《统计学习方法》学习笔记:第六章 逻辑斯谛回归与最大熵模型
機器學習理論《統計學習方法》學習筆記:第六章 邏輯斯諦回歸與最大熵模型
- 6 邏輯斯諦回歸與最大熵模型
- 6.1 邏輯斯諦回歸模型
- 6.1.1 邏輯斯諦分布
- 6.1.2 二項邏輯斯蒂回歸模型
- 6.1.3 模型參數估計
- 6.1.4 多項邏輯斯諦回歸
- 6.2 最大熵模型
- 6.2.1 最大熵原理
- 6.2.2 最大熵模型的定義
- 6.2.3 最大熵模型的學習
- 6.2.4 極大似然估計
- 6.3 模型學習的最優化算法
- 6.3.1 改進的迭代尺度法
- 6.3.2 擬牛頓法
6 邏輯斯諦回歸與最大熵模型
邏輯斯諦回歸(logistic regression)是統計學習中的經典分類方法。最大熵是概率模型學習的一個準則,將其推廣到分類問題得到最大熵模型(maximum entropy model)。邏輯斯諦回歸模型與最大熵模型都屬于對數線性模型。
6.1 邏輯斯諦回歸模型
6.1.1 邏輯斯諦分布
邏輯斯諦分布:設XXX是連續隨機變量,XXX服從邏輯斯諦分布是指XXX具有下列分布函數和密度函數:
F(x)=p(X≤x)=11+e?(x?μ)/γF(x)=p(X\le x)={{1}\over{1+e^{-(x-\mu)/\gamma}}}F(x)=p(X≤x)=1+e?(x?μ)/γ1?
f(x)=F′(x)=e?(x?μ)/γγ(1+e?(x?μ)/γ)2f(x)=F^{'}(x)={{e^{-(x-\mu)/\gamma}}\over{\gamma({1+e^{-(x-\mu)/\gamma}}})^2}f(x)=F′(x)=γ(1+e?(x?μ)/γ)2e?(x?μ)/γ?
μ\muμ為位置參數,γ>0\gamma \gt 0γ>0為形狀參數。
邏輯斯諦分布的密度函數f(x)f(x)f(x)和分布函數F(x)F(x)F(x)的圖像如下。
分布函數屬于邏輯斯諦函數,其圖形是一條S形曲線,以點(μ,12)(\mu,{1\over 2})(μ,21?)為中心對稱,即滿足
F(?x+μ)?12=?F(x+μ)+12F(-x+\mu)-{1\over2}=-F(x+\mu)+{1\over2}F(?x+μ)?21?=?F(x+μ)+21?
曲線在中心附近增長速度快,在兩端增長速度慢。形狀參數γ\gammaγ的值越小,曲線在中心附近增長得越快。
6.1.2 二項邏輯斯蒂回歸模型
二項邏輯斯諦回歸模型是一種分類模型,由條件概率分布P(Y∣X)P(Y|X)P(Y∣X)表示,形式為參數化得邏輯斯諦分布。這里,隨機變量XXX取值為實數,隨機變量YYY取值為1或0.通過監督學習的方法來估計模型參數。
邏輯斯諦回歸模型
二項邏輯斯諦回歸模型是如下的條件概率分布:二項邏輯斯諦回歸模型是如下的條件概率分布:二項邏輯斯諦回歸模型是如下的條件概率分布:
P(Y=1∣x)=exp(w?x+b)1+exp(w?x+b)P(Y=1|x)={{exp(w\cdot x+b)}\over{1+exp(w\cdot x+b)}}P(Y=1∣x)=1+exp(w?x+b)exp(w?x+b)?
P(Y=0∣x)=11+exp(w?x+b)P(Y=0|x)={{1}\over{1+exp(w\cdot x+b)}}P(Y=0∣x)=1+exp(w?x+b)1?
x∈Rn是輸入,Y∈{0,1}是輸出,w∈Rn和b∈R是參數,w稱為權值向量,b稱為偏置,w?x是w和x的內積。x\in R^n是輸入,Y\in\{0,1\}是輸出,w\in R^n和b\in R是參數,w稱為權值向量,b稱為偏置,w\cdot x是w和x的內積。x∈Rn是輸入,Y∈{0,1}是輸出,w∈Rn和b∈R是參數,w稱為權值向量,b稱為偏置,w?x是w和x的內積。
有時為了方便,將權值向量和輸入向量加以擴充,仍記作w和x,即w=(w(1),w(2),?,w(n),b)T,x=(x(1),x(2),?,x(n),1)T.此時,邏輯斯諦回歸模型如下:有時為了方便,將權值向量和輸入向量加以擴充,仍記作w和x,即w=(w^{(1)},w^{(2)},\cdots,w^{(n)},b)^T,x=(x^{(1)},x^{(2)},\cdots,x^{(n)},1)^T.此時,邏輯斯諦回歸模型如下:有時為了方便,將權值向量和輸入向量加以擴充,仍記作w和x,即w=(w(1),w(2),?,w(n),b)T,x=(x(1),x(2),?,x(n),1)T.此時,邏輯斯諦回歸模型如下:
P(Y=1∣x)=exp(w?x)1+exp(w?x)P(Y=1|x)={{exp(w\cdot x)}\over{1+exp(w\cdot x)}}P(Y=1∣x)=1+exp(w?x)exp(w?x)?
P(Y=0∣x)=11+exp(w?x)P(Y=0|x)={{1}\over{1+exp(w\cdot x)}}P(Y=0∣x)=1+exp(w?x)1?
現在考察邏輯斯諦回歸模型的特點。一個事件的幾率(odds)是指該事件發生的概率與該事件不發生的概率的比值。如果事件發生的概率是p,那么該事件的幾率是p1?p{p\over{1-p}}1?pp?,該事件的對數幾率(log odds)或logit函數是logit(p)=logp1?plogit(p)=log{p\over{1-p}}logit(p)=log1?pp?,對邏輯斯諦回歸而言:logP(Y=1∣x)1?P(Y=1∣x)=w?xlog{{P(Y=1|x)}\over{1-P(Y=1|x)}}=w\cdot xlog1?P(Y=1∣x)P(Y=1∣x)?=w?x
在邏輯斯諦回歸模型中,輸出Y=1的對數幾率是輸入x的線性函數。或者說,輸出Y=1的對數幾率是由輸入x的線性函數表示的模型,即邏輯斯諦回歸模型。
換一個角度看,考慮對輸入x進行分類的線性函數w?xw\cdot xw?x,其值域為實數域,x∈Rn+1,w∈Rn+1x\in R^{n+1},w\in R^{n+1}x∈Rn+1,w∈Rn+1.通過邏輯斯諦回歸模型的定義式,可以將線性函數w?xw\cdot xw?x轉換為概率:P(Y=1∣x)=exp(w?x)1+exp(w?x)P(Y=1|x)={{exp(w\cdot x)}\over{1+exp(w\cdot x)}}P(Y=1∣x)=1+exp(w?x)exp(w?x)?這時,線性函數的值越接近正無窮,概率值就越接近1;線性函數的值越接近負無窮,概率值就越接近0.
6.1.3 模型參數估計
邏輯斯諦回歸模型學習時,對于給定的訓練數據集
T={(x1,y1),(x2,y2),?,(xn,yn)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\}T={(x1?,y1?),(x2?,y2?),?,(xn?,yn?)}
其中,xi∈Rn,yi∈{0,1}其中,x_i\in R^n,y_i\in\{0,1\}其中,xi?∈Rn,yi?∈{0,1}
可以應用極大似然估計法估計模型參數,從而得到邏輯斯蒂回歸模型。
設:P(Y=1∣x)=π(x),P(Y=0∣x)=1?π(x)P(Y=1|x)=\pi(x),P(Y=0|x)=1-\pi(x)P(Y=1∣x)=π(x),P(Y=0∣x)=1?π(x)
似然函數為:∏i=1N[π(xi)]yi[1?π(xi)]1?yi\prod_{i=1}^N[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}i=1∏N?[π(xi?)]yi?[1?π(xi?)]1?yi?
對數似然函數為:
L(w)=∑i=1N[yilogπ(xi)+(1?yi)log(1?π(xi)]L(w)=\sum_{i=1}^N[y_ilog\pi(x_i)+(1-y_i)log(1-\pi(x_i)]L(w)=i=1∑N?[yi?logπ(xi?)+(1?yi?)log(1?π(xi?)]
=∑i=1N[yilogπ(xi)1?π(xi)+log(1?π(xi))]=\sum_{i=1}^N[y_ilog{{\pi(x_i)}\over{1-\pi(x_i)}}+log(1-\pi(x_i))]=i=1∑N?[yi?log1?π(xi?)π(xi?)?+log(1?π(xi?))]
=∑i=1N[yi(w?xi)?log(1+exp(w?xi))]=\sum_{i=1}^N[y_i(w\cdot x_i)-log(1+exp(w\cdot x_i))]=i=1∑N?[yi?(w?xi?)?log(1+exp(w?xi?))]
對L(w)求極大值,得到w的估計值。對L(w)求極大值,得到w的估計值。對L(w)求極大值,得到w的估計值。
6.1.4 多項邏輯斯諦回歸
二項邏輯斯諦回歸模型是二項分類模型,用于二類分類。可以將其推廣為多項邏輯斯諦回歸模型,用于多分類。假設離散型隨機變量Y的取值集合是{1,2,…,K},那么多項邏輯斯諦回歸模型是:
P(Y=k∣x)=exp(wk?x)1+∑k=1K?1exp(wk?x),k=1,2,?,K?1P(Y=k|x)={{exp(w_k\cdot x)}\over{1+\sum_{k=1}^{K-1}exp(w_k\cdot x)}},k=1,2,\cdots,K-1P(Y=k∣x)=1+∑k=1K?1?exp(wk??x)exp(wk??x)?,k=1,2,?,K?1
P(Y=K∣x)=11+∑k=1K?1exp(wk?x)P(Y=K|x)={{1}\over{1+\sum_{k=1}^{K-1}exp(w_k\cdot x)}}P(Y=K∣x)=1+∑k=1K?1?exp(wk??x)1?
這里,x∈Rn+1,wk∈Rn+1這里,x\in R^{n+1},w_k\in R^{n+1}這里,x∈Rn+1,wk?∈Rn+1
6.2 最大熵模型
6.2.1 最大熵原理
最大熵原理是概率模型學習的一個準則。最大熵原理認為,學習概率模型時,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常用約束條件來確定概率模型的集合,所以,最大熵原理也可以表述為在滿足約束條件的模型集合中,選取熵最大的模型。
假設離散隨機變量XXX的概率分布是P(X)P(X)P(X),則其熵是
H(P)=?∑xP(x)logP(x)H(P)=-\sum_xP(x)logP(x)H(P)=?x∑?P(x)logP(x)
熵滿足下列不等式:
0≤H(P)≤log∣X∣0\le H(P)\le log|X|0≤H(P)≤log∣X∣
式子中,∣X∣|X|∣X∣是XXX的取值個數,當且僅當XXX的分布是均勻分布時,右邊的等號成立。這就是說,當XXX服從均勻分布時,熵最大。
直觀地,最大熵原理認為要選擇的概率模型首先必須滿足已有的事實,即約束條件。在沒有更多信息的情況下,那些不確定的部分都是等可能的。最大熵原理通過熵的最大化來表示可能性。等可能不容易操作,而熵則是一個可優化的數值指標。
概率模型集合圖提供了用最大熵原理進行概率模型選擇的幾何解釋。
概率模型集合ρ\rhoρ可由歐氏空間中的單純形(simplex)表示,如左圖的三角形。一個點代表一個模型,整個單純形代表整個集合。右圖上的一條直線對應于一個約束條件,直線的交集對應于滿足所有約束條件的模型集合。一般地,這樣的模型仍有無窮多個,學習的目的是在可能的模型集合中選擇最優模型,而最大熵原理給出最優模型選擇的一個準則。
6.2.2 最大熵模型的定義
最大熵原理是統計學習的一般原理,將它應用到分類得到最大熵模型。
假設分類模型是一個條件概率分布P(Y∣X)P(Y|X)P(Y∣X).這個模型表示的是對于給定的輸入X,以條件概率P(Y∣X)P(Y|X)P(Y∣X)輸出Y。
給一個訓練集T={(x1,y1),(x1,y1),?,(x1,y1)}T=\{(x_1,y_1),(x_1,y_1),\cdots,(x_1,y_1)\}T={(x1?,y1?),(x1?,y1?),?,(x1?,y1?)}學習的目標是最大熵原理選擇最好的分類模型。
用特征函數f(x,y)f(x,y)f(x,y)描述輸入x和輸出y之間的某一個事實。其定義是
f(x,y)={1,x與y滿足某一事實0,否則f(x,y)= \begin{cases} 1,& \text{x與y滿足某一事實}\\ 0,&\text{否則} \end{cases} f(x,y)={1,0,?x與y滿足某一事實否則?
它是一個二值函數,當x和y滿足這個事實時取值為1,否則取值為0.
最大熵模型
假設滿足所有約束條件的模型為假設滿足所有約束條件的模型為假設滿足所有約束條件的模型為
C≡{P∈P∣Ep~(fi),i=1,2,?,n}C\equiv\{P\in\Rho|E_{\tilde{p}}(f_i),i=1,2,\cdots,n\}C≡{P∈P∣Ep~??(fi?),i=1,2,?,n}
定義在條件概率分布P(Y∣X)上的條件熵為定義在條件概率分布P(Y|X)上的條件熵為定義在條件概率分布P(Y∣X)上的條件熵為
H(P)=?∑x,yP~(x)P(y∣x)logP(y∣x)H(P)=-\sum_{x,y}\tilde{P}(x)P(y|x)logP(y|x)H(P)=?x,y∑?P~(x)P(y∣x)logP(y∣x)
則模型集合C中條件熵H(P)最大的模型稱為最大熵模型,式子中的對數為自然對數。則模型集合C中條件熵H(P)最大的模型稱為最大熵模型,式子中的對數為自然對數。則模型集合C中條件熵H(P)最大的模型稱為最大熵模型,式子中的對數為自然對數。
6.2.3 最大熵模型的學習
最大熵模型的學習過程就是求解最大熵模型的過程。最大熵模型的學習可以形式化為約束最優化問題。
對于給定的訓練數據集T={(x1,y1),(x2,y2),?,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}T={(x1?,y1?),(x2?,y2?),?,(xN?,yN?)}
以及特征函數fi(x,y),i=1,2,?,nf_i(x,y),i=1,2,\cdots,nfi?(x,y),i=1,2,?,n,最大熵模型的學習等價于約束最優化問題:
maxP∈CH(P)=?∑x,yP~(x)P(y∣x)logP(y∣x)max_{P\in C}H(P)=-\sum_{x,y}{\tilde{P}}(x)P(y|x)logP(y|x)maxP∈C?H(P)=?x,y∑?P~(x)P(y∣x)logP(y∣x)
s.t.EP(fi)=EP~(fi),i=1,2,?,ns.t.\space\space\space E_P(f_i)= E_{\tilde{P}}(f_i),i=1,2,\cdots,ns.t.???EP?(fi?)=EP~?(fi?),i=1,2,?,n
∑yP(y∣x)=1\sum_yP(y|x)=1y∑?P(y∣x)=1
6.2.4 極大似然估計
下面證明對偶函數的極大化等價于最大熵模型的極大似然估計。
最大熵模型與邏輯斯諦回歸模型有類似的形式,它們又稱為對數線性模型。模型學習就是在給定的訓練數據下,對模型進行極大似然估計或正則化的極大似然估計。
6.3 模型學習的最優化算法
邏輯斯諦回歸模型、最大熵模型學習歸結為以似然函數為目標函數的最優化問題,通常通過迭代算法求解。從最優化的觀點看,這時的目標函數具有很好的性質。它是光滑的凸函數,因此多種最優化的方法都適用,保證能找到全局最優解。
常用的方法有改進的迭代尺度法、梯度下降法、牛頓法或擬牛頓法。牛頓法或擬牛頓法一般收斂速度更快。
6.3.1 改進的迭代尺度法
改進的迭代尺度法(improved iterative scaling,IIS)是一種最大熵模型學習的最優化算法。
已知最大熵模型為Pw(y∣x)=1Zw(x)(∑i=1nwifi(x,y))P_w(y|x)={{1}\over{Z_w(x)}}(\sum_{i=1}^nw_if_i(x,y))Pw?(y∣x)=Zw?(x)1?(i=1∑n?wi?fi?(x,y))
其中,Zw(x)=∑yexp(∑i=1nwifi(x,y))Z_w(x)=\sum_yexp(\sum_{i=1}^nw_if_i(x,y))Zw?(x)=y∑?exp(i=1∑n?wi?fi?(x,y))
對數似然函數為L(w)=∑x,yP~(x,y)∑i=1nwifi(x,y)?∑xP~(x)logZw(x)L(w)=\sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^nw_if_i(x,y)-\sum_x\tilde{P}(x)logZ_w(x)L(w)=x,y∑?P~(x,y)i=1∑n?wi?fi?(x,y)?x∑?P~(x)logZw?(x)
目標是通過極大似然估計學習模型參數,即求對數似然函數的極大值w^\hat ww^
IIS的想法是:假設最大熵模型當前的參數向量是w=(w1,w2,?,wn)Tw=(w_1,w_2,\cdots,w_n)^Tw=(w1?,w2?,?,wn?)T,希望找到一個新的參數向量w+δ=(w1+δ1,w2+δ2,?,wn+δn)Tw+\delta=(w_1+\delta_1,w_2+\delta_2,\cdots,w_n+\delta_n)^Tw+δ=(w1?+δ1?,w2?+δ2?,?,wn?+δn?)T,使得模型的對數似然函數值增大。如果能有這樣一種參數向量更新的方法 τ:w→w+δ\tau:w\rightarrow w+\deltaτ:w→w+δ,那么就可以重復使用這一方法,直至找到對數似然函數的最大值。
6.3.2 擬牛頓法
總結
以上是生活随笔為你收集整理的机器学习理论《统计学习方法》学习笔记:第六章 逻辑斯谛回归与最大熵模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 零基础实践深度学习之数学基础
- 下一篇: Numpy:高性能科学计算和数据分析的基