多絢爛的花,多美妙的季節;
沒有一朵花,能留住它的季節。
我也是一樣,不停地追尋,
我終究要失去的
回到logistic回歸最大似然函數這里,現在我們用牛頓法來最大化這個對數似然函數。
牛頓法求零點
牛頓法本是用來求函數零點的一個方法,一個函數的零點就是指使這個函數等於零那個自變量的取值點。
牛頓法的更新公式為,
\[\begin{equation} \theta :=\theta-\frac{f(\theta)}{f^{\prime}(\theta)} \end{equation} \]
這個更新公式有一個非常自然的解釋,就是在當前近似零點處的切線的零點作為下一輪零點的更好的近似。然后不停重復這個過程來不斷的逼近真實的零點。這個過程如下圖,
牛頓法求極值點
牛頓法是求零點的一個方法,現在求一個函數機智的就是求函數導數的零點,因此就有如下的牛頓法求極值點更新公式,
\[\begin{equation} \theta :=\theta-\frac{\ell^{\prime}(\theta)}{\ell^{\prime \prime}(\theta)} \end{equation} \]
現在我們在logistic回歸中要最大化的那個參數是一個向量。因此牛頓法推廣到高維情形(又叫Newton-Raphson法),就有,
\[\begin{equation} \theta :=\theta-H^{-1} \nabla_{\theta} \ell(\theta) \end{equation} \]
其中,函數 $\ell(\theta) $ 的Hessian矩陣$ H$ 的$ (i,j)$ 元素 定義為,
\[\begin{equation} H_{i j}=\frac{\partial^{2} \ell(\theta)}{\partial \theta_{i} \partial \theta_{j}} \end{equation} \]
牛頓法迭代較少輪數下就能很快收斂,但在每一輪牛頓法一般要比梯度下降法的代價要高得多,因為他要涉及到求階數為特征個數的矩陣逆(特征個數少時,還是很快的)。世上安得兩全法。
剛用牛頓法來求logistic對數似然函數最大值點,相應的方法就叫費希爾得分(Fisher scoring.)。