回到邏輯迴歸中sigmoid函數g(z) ,我們討論另一個最小化對數似然函數的方法。
讓我們從使用牛頓方法求0點開始。給一個一元函數f:R↦R ,我們試圖去找一個點θ 使得f(θ)=0 。其中θ 是一個實數。牛頓方法將會這樣迭代尋找0點:
θ:=θ−f(θ)f′(θ).
這個方法的幾何闡述是很直接的。從某一初始位置出發,做函數的切線與y軸相交,交點的x值即爲下一次畫切線的出發點,依次循環直至收斂。下圖是整個過程的圖示:
牛頓方法是一種快速尋找f(θ)=0 點的方法,怎樣將其應用於最大化對數似然函數上呢?考慮對數似然函數ℓ 的最大值點對應的一階導爲0,所有我們令f(θ)=ℓ′(θ) ,然後我們就可以使用同樣的算法求得最大值點:
θ:=θ−ℓ′(θ)ℓ′′(θ).
最後在我們的邏輯迴歸中,θ 是一個向量值,所以我們需要將牛頓算法推廣到多元函數的情況:
θ:=θ−H−1∇θℓ(θ).
上式中,∇θℓ(θ) 是對數函數關於向量θ 的偏導。而H−1 是一個n*n的矩陣,稱爲海森矩陣,它的每一項定義如下:
Hij=∂2ℓ(θ)∂θi∂θj.
普遍而言,牛頓方法的收斂速度比梯度下降要快得多,他只需要很少的迭代次數就可以收斂。但需要注意的是牛頓方法每一次迭代的時間成本比梯度下降要大得多,因爲它每次都要求海森矩陣。即使如此,在維數n不是特別大的情況下,牛頓方法的表現要好很多。