邏輯迴歸與最大熵模型

本文爲《統計學習方法》第6章筆記。

概論

邏輯迴歸與最大熵模型都屬於對數線性模型,邏輯迴歸求解似然函數的極大值,得到參數w,最大熵模型先轉對偶問題,求得條件概率模型,也是通過極大值求解得到w。涉及到最優化算法的部分都比較晦澀,由於本人理解得也不深刻,這裏就不詳細展開了。

邏輯迴歸模型

邏輯斯蒂分佈

設X爲連續隨機變量,服從邏輯斯蒂分佈的分佈函數和密度函數分別爲:
F(x)=P(X \leq x)=\frac{1}{1+e^{-(x-u)/\gamma}}\\ f(x)=F'(x)=\frac{e^{-(x-u)/\gamma}}{\gamma(1+e^{-(x-u)/\gamma})^2}

二項邏輯斯蒂迴歸模型

條件概率分佈爲:
P(Y=1|x)=\frac{exp(w \odot x+b)}{1+exp(w \odot x+b)}\\ P(Y=0|x)=\frac{1}{1+exp(w \odot x+b)}
將b擴充到w向量內,1擴充到x向量內,則方程簡化爲
P(Y=1|x)=\frac{exp(w \odot x)}{1+exp(w \odot x)}\\ P(Y=0|x)=\frac{1}{1+exp(w \odot x)}
機率:事情發生與不發生的概率之比。
對數機率logit(p)=log\frac{p}{1-p}
對邏輯迴歸而言,對數機率爲w\odot x

模型參數估計

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}
對數似然函數爲:
L(w)=\sum_{i=1}^N [y_ilog\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 \odot x_i)-log(1+exp(w \odot x_i))]
對L(w)求極大值,得到w的估計值。一般使用梯度下降或擬牛頓法(代碼中常見的BFGS算法)

多項邏輯斯蒂迴歸

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

最大熵模型

假設離散隨機變量X的概率分佈爲P(X),則其熵爲:
H(P)=-\sum_x P(x)logP(x)
熵滿足不等式:
0 \leq H(p) \leq log|X|
|X|爲X的取值個數,當X服從均勻分佈時,熵最大。
熵最大原理:最好的模型是熵最大的模型。在沒有更多信息時,不確定的部分都是等概率的。
給定訓練數據集,聯合經驗分佈和邊緣經驗分佈爲:
\widetilde P(X=x,Y=y)=\frac {v(X=x,Y=y)}{N}\\ \widetilde P(X=x)=\frac {v(X=x)}{N}\\ v(X=x,Y=y)表示訓練數據中(x,y)出現的頻次,v(X=x)表示x出現的頻次
用特徵函數f描述x和y之間的某一個事實:
f(x,y)= \left\{\begin{array}\\ 1,x與y滿足某一個事實\\ 0,其他 \end{array}\right.
f關於聯合經驗分佈的期望值爲:
E_{\widetilde P}(f)=\sum_{x,y}\widetilde P(x,y)f(x,y)
f關於邊緣經驗分佈及模型P(Y|X)的期望爲:
E_P(f)=\sum_{x,y}\widetilde P(x)P(y|x)f(x,y)
如果模型能夠獲取數據中的信息,那麼2個期望值應該相等
E_{\widetilde P}(f)=E_P(f)
定義在P(Y|X)上的條件熵爲:
H(P)=-\sum_{x,y}\widetilde P(x)P(y|x)logP(y|x)
滿足所有約束的模型集合C爲:
C \equiv {P \in \rho|E_{\widetilde P}(f_i)=E_P(f_i),i=1,2,...n}
模型集合C中條件熵最大的模型成爲最大熵模型,公式中對數爲自然對數。
在約束條件下的求解,需要用到拉格朗日函數,然後轉對偶問題,這裏略去推導過程(可自行查詢資料),對偶問題爲:
max_w min_{P \in C} L(P,w)
先求得min_{P \in C} L(P,w)的解爲
P_w(y|x)=\frac{1}{Z_w(x)}exp(\sum_{i=1}^n w_if_i(x,y))\\ Z_w(x)=\sum_y exp(\sum_{i=1}^n w_if_i(x,y)) ,稱爲規範化因子
再求極大化問題,得到參數w的解。這需要用到最優化算法,常見的有改進的迭代尺度法(IIS)、梯度下降法、牛頓法、擬牛頓法(典型如BFGS)
這裏稍微做點介紹:
IIS思路:假設w+\delta能使得模型的似然函數增大,則更新w\rightarrow w+\delta
IIS最後求解的方程爲:
\sum_ {x,y}\widetilde P(x)P_w(y|x) f_i(x,y)exp(\delta_i f^{\#}(x,y))=E_{\widetilde P}(f_i) -----------(1)\\ f^{\#}(x,y)=\sum_i f_i(x,y),表示特徵在(x,y)出現的次數
如果f^{\#}(x,y)是常數M(對任何x,y),則:
\delta_i=\frac{1}{M}log\frac{E_{\widetilde P}(f_i)}{E_{P}(f_i)}
如果不是常數,可以通過牛頓法求解:
g(\delta_i)=0表示以上(1)式,則:
\delta_i^{k+1}=\delta_i^k-\frac{g(\delta_i^k)}{g'(\delta_i^k)}
擬牛頓法思路:牛頓法需要求解黑塞矩陣H的逆,較爲麻煩,擬牛頓法考慮用一個n階矩陣逼近H(BFGS算法)或H的逆(DFP算法)
BFGS算法更新逼近矩陣:
B_{k+1}=B_k+\frac{y_ky_k^T}{y_k^T\delta_k}-\frac{B_k\delta_k\delta_k^TB_k}{\delta_k^TB_k\delta_k}\\ y_k=g_{k+1}-g_k , \delta_k=w^{k+1}-w^k \\ 其中B_k用於逼近H

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章