習題6.1
題目:確認邏輯斯諦分佈屬於指數分佈族.
答:
先看看指數分佈族的定義
邏輯斯諦迴歸是廣義線性模型的一種,而廣義線性模型與最大熵模型都是源於指數族分佈。
對於二項邏輯斯蒂迴歸模型:
P(Y=1∣x)=1+exp(w⋅x)exp(w⋅x)
P(Y=0∣x)=1+exp(w⋅x)1
(跟上面的指數分佈族公式符號不太一樣,Y是指數分佈族公式符號中的x,x是指數分佈族公式符號η中的一個參數)
則有模型的分佈列爲:
P(Y∣x)=(1+exp(w⋅x)exp(w⋅x))y(1+exp(w⋅x)1)1−y
P(Y∣x)=exp(ylog(1+exp(w⋅x)exp(w⋅x))+(1−y)log(1+exp(w⋅x)1))
取π(x)=1+exp(w⋅x)
P(Y∣x)=exp(ylog(π(x)+1π(x))+(1−y)log(1+π(x)1))
P(Y∣x)=exp(ylog(π(x))−log(π(x)+1))
則有
h(y)=1
T(y)=y
η=log(π(x))
A(η)=log(π(x)+1)=log(exp(η)+1)
得證
對於多項邏輯斯蒂迴歸模型
(多項的感覺有點問題,大家可以一起討論哈)
P(Y=k∣x)=1+∑k=1K−1exp(wk⋅x)exp(wk⋅x),k=1,2,⋯,K−1
P(Y=K∣x)=1+∑k=1K−1exp(wk⋅x)1
則分佈列可以寫爲
P(Y∣x)=(1+∑k=1K−1exp(wk⋅x)exp(wk⋅x))f(y),k=1,2,⋯,K
其中:
f(y)={1,0,y=ky=k
∑k=1Kexp(wk⋅x)=1+∑k=1K−1exp(wk⋅x)
則有P(Y∣x)=exp(f(y)log(1+∑k=1K−1exp(wk⋅x)exp(wk⋅x)))
同理有
h(y)=1
T(y)=f(y)
η=log(1+∑k=1K−1exp(wk⋅x)exp(wk⋅x))
A(η)=0
習題6.2
題目:寫出邏輯斯諦迴歸模型學習的梯度下降算法.
對於邏輯斯諦模型,條件概率分佈如下:
P(Y=1∣x)=1+exp(w⋅x+b)exp(w⋅x+b)
P(Y=0∣x)=1+exp(w⋅x+b)1
對數似然函數爲:
L(w)=∑i=1N[yi(w⋅xi)−log(1+exp(w⋅xi))]
(對數似然函數計算在書的79頁)
對L(w)求 w的導數
∂w∂L(w)=∑i=1N[xi⋅yi−1+exp(w⋅xi)exp(w⋅xi)⋅xi]
則
∇L(w)=[∂w(0)∂L(w),…,∂w(m)∂L(w)]
算法流程:
(1)選取初值w0,取k=0
(2)計算L(wk)
(3)更新w,w(k+1)=w(k)+λk∇L(wk)
(4)轉(2)同時k=k+1,直到L(w)的變化範圍在可接受範圍內。
習題6.3
題目:寫出最大熵模型學習的DFP算法.(關於一般的DFP算法參見附錄B)
這個解答可以參考:https://blog.csdn.net/xiaoxiao_wen/article/details/54098476
參考
指數分佈族
指數分佈族筆記
指數分佈族相關公式推導