標籤:

採用牛頓法來最大化對數似然函數

在邏輯回歸中,我們為了尋找最好的參數 	heta 而採用了最大化極大似然函數的方法

l(	heta)=logL(	heta)=sum_{i=1}^{m}{y^{(i)}logh(x^{(i)})+(1-y^{(i)})log(1-h(x^{(i)}))}

同時我們給出了採用梯度上升方法 	heta_{j}:=	heta_{j}+alphacdotfrac{partial}{partial	heta_{j}}l(	heta) 來使得 l(	heta) 最大,這篇論文中我們給出另一種最大化 l(	heta) 的方法


1. Newtons method(牛頓法)

牛頓法中給出了如何計算函數的零點,假設函數為: f:R
ightarrow R 並且希望找到 	heta 使得 f(	heta)=0 ,牛頓法的更新策略如下所示:

	heta:=	heta-frac{f(	heta)}{f^{}(	heta)}

這個我相信大家都學過,這種方法有一個自然的解釋,我們可以認為它是通過在當前猜測θ處與f相切的線性函數逼近函數f,求解線性函數等於零的位置,並且讓下一個猜測θ 是線性函數為零的地方。

2. 基於牛頓法來最大化 l(	heta)

頓法給出了一種求解函數零點的方法,我們應該怎麼來使得 l(	heta) 最大化?

l(	heta) 的極大值點對應 l^{}(	heta)=0 的點,因此我們假設 f(	heta)=l^{}(	heta) ,問題轉化為求 f(	heta) 的零點,那麼更新規則如下:

	heta:=	heta-frac{f(	heta)}{f^{}(	heta)}=	heta-frac{l^{}(	heta)}{l^{}(	heta)}

在邏輯回歸的設定中, 	heta 是一個vector-valued,為了讓Newtons method 能夠一般化到這個設定,我們將其對多維設定進行一般化(稱為Newton-Raphson method):

	heta:=	heta-H^{-1}
abla_{	heta}l(	heta).

其中, 
abla_{	heta}l(	heta)l(	heta) 相對於 	heta_{i} 的偏導數向量;H是一個n-by-n矩陣稱為Hessian矩陣,其中的項為:

H_{ij}=frac{partial^{2}l(	heta)}{partial 	heta_{i}partial 	heta_{j}}

Newtons method通常比梯度下降方法更快,並且需要更少的迭代次數就能夠達到極值點;但是Newtons method每次的迭代計算代價更高,需要計算和轉置Hessian矩陣(n*n),通常n不太大的時候,整體上是比較快的。

當Newtons method應用到最大化邏輯回歸log似然函數,這個方法也被稱為Fisher scoring

推薦閱讀:

2-3 Cost Function-Intuition I
第五章 決策樹
吳恩達機器學習第七周課後感
強化學習(四):動態規劃

TAG:機器學習 |