天天看點

logistic回歸和最大熵

回顧發現,李航的《統計學習方法》有些章節還沒看完,為了記錄,特意再水一文。

0 - logistic分布

如《統計學習方法》書上,設X是連續随機變量,X服從logistic分布是指X具有以下分布函數和密度函數:

F(x)=P(X≤x)=11+e−(x−μ)/γ

f(x)=F′(x)=e−(x−μ)/γ1+e−(x−μ)/γ

其中 μ 是位置參數, γ 是形狀參數,logistic分布函數是一條S形曲線,該曲線以點 (μ,12) 為中心對稱,即:

F(−x+μ)−12=−F(x−μ)+12

γ 參數越小,那麼該曲線越往中間縮,則中心附近增長越快

logistic回歸和最大熵

圖0.1 logistic 密度函數和分布函數

1 - 二項logistic回歸

我們通常所說的邏輯回歸就是這裡的二項logistic回歸,它有如下的式子:

hθ(x)=g(θTx)=11+e−θTx

這個函數叫做logistic函數,也被稱為sigmoid函數,其中 xi∈Rn,yi∈{0,1} 且有如下式子:

P(y=1|x;θ)=hθ(x)

P(y=0|x;θ)=1−hθ(x)

logP(y=1|x;θ)1−P(y=1|x;θ)=θTx

即緊湊的寫法為:

p(y|x;θ)=(hθ(x))y(1−hθ(x))1−y

基于 m 個訓練樣本,通過極大似然函數來求解該模型的參數:

L(θ)==∏i=1mp(y(i)|x(i);θ)∏i=1m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)

将其轉換成log最大似然:

l(θ)==logL(θ)∑i=1my(i)logh(x(i))+(1−y(i))log(1−h(x(i)))

而該sigmoid函數的導數為: g′(z)=g(z)(1−g(z)) ,假設 m=1 (即随機梯度下降法),将上述式子對關于 θj 求導得:

logistic回歸和最大熵

ps:上述式子是單樣本下梯度更新過程,且基于第 j 個參數(标量)進行求導,即涉及到輸入樣本x的第 j 個元素xj

而關于參數 θ 的更新為: θ:=θ+α∇θl(θ)

ps:上面式子是加号而不是減号,是因為這裡是為了最大化,而不是最小化

通過多次疊代,使得模型收斂,并得到最後的模型參數。

2 - 多項logistic回歸

假設離散型随機變量 Y 的取值集合為1,2,...,K,那麼多項logistic回歸模型為:

P(Y=k|x)=e(θk∗x)1+∑K−1k=1e(θk∗x),k=1,2,...K−1

而第 K 個機率為:

P(Y=K|x)=11+∑K−1k=1e(θk∗x)

這裡 x∈Rn+1,θk∈Rn+1 ,即引入偏置。

3 - softmax

logistic回歸模型的代價函數為:

J(θ)=−1m[∑i=1my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]

而softmax是當多分類問題,即 y(i)∈{1,2,...,K} 。對于給定的樣本向量 x ,模型對每個類别都會輸出一個機率值 p(y=j|x) ,則如下圖:

logistic回歸和最大熵

其中 θ1,θ2,...θk∈Rn+1 都是模型的參數,其中分母是為了歸一化使得所有機率之和為1.

進而softmax的代價函數為:

J(θ)==−1m⎡⎣∑i=1m∑j=1K1{y(i)=j}logeθTjx(i)∑Kl=1eθTlx(i)⎤⎦−1m⎡⎣∑i=1m∑j=1K1{y(i)=j}[logeθTjx(i)−log∑l=1KeθTlx(i)]⎤⎦

其中, p(y(i)=j|x(i);θ)=eθTjx(i)∑Kl=1eθTlx(i) 該代價函數關于第j個參數的導數為:

∇θjJ(θ)====−1m∑i=1m1{y(i)=j}[eθTjx(i)∗x(i)eθTjx(i)−eθTjx(i)∗x(i)∑Kl=1eθTlx(i)]−1m∑i=1m1{y(i)=j}[x(i)−eθTjx(i)∗x(i)∑Kl=1eθTlx(i)]−1m∑i=1mx(i)(1{y(i)=j}−eθTjx(i)∑Kl=1eθTlx(i))−1m∑i=1mx(i)[1{y(i)=j}−p(y(i)=j|x(i);θ)]

ps:因為在關于 θj 求導的時候,其他非 θj 引起的函數對該導數為0。是以 ∑Kj=1 中省去了其他部分

ps:這裡的 θj 不同于邏輯回歸部分,這裡是一個向量;

4 - softmax與logistic的關系

将邏輯回歸寫成如下形式:

J(θ)==−1m[∑i=1my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]−1m⎡⎣∑i=1m∑j=011{y(i)=j}logp(y(i)=j|x(i);θ)⎤⎦

可以看出當k=2的時候,softmax就是邏輯回歸模型

參考資料:

[] 李航,統計學習方法

[] 周志華,機器學習

[] CS229 Lecture notes Andrew Ng

[] ufldl

[] Foundations of Machine Learning

繼續閱讀