回到逻辑回归中sigmoid函数
g(z)
,我们讨论另一个最小化对数似然函数的方法。
让我们从使用牛顿方法求0点开始。给一个一元函数
f:R↦R
,我们试图去找一个点
θ
使得
f(θ)=0
。其中
θ
是一个实数。牛顿方法将会这样迭代寻找0点:
这个方法的几何阐述是很直接的。从某一初始位置出发,做函数的切线与y轴相交,交点的x值即为下一次画切线的出发点,依次循环直至收敛。下图是整个过程的图示:
牛顿方法是一种快速寻找 f(θ)=0 点的方法,怎样将其应用于最大化对数似然函数上呢?考虑对数似然函数 ℓ 的最大值点对应的一阶导为0,所有我们令 f(θ)=ℓ′(θ) ,然后我们就可以使用同样的算法求得最大值点:
最后在我们的逻辑回归中, θ 是一个向量值,所以我们需要将牛顿算法推广到多元函数的情况:
上式中, ∇θℓ(θ) 是对数函数关于向量 θ 的偏导。而 H−1 是一个n*n的矩阵,称为海森矩阵,它的每一项定义如下:
普遍而言,牛顿方法的收敛速度比梯度下降要快得多,他只需要很少的迭代次数就可以收敛。但需要注意的是牛顿方法每一次迭代的时间成本比梯度下降要大得多,因为它每次都要求海森矩阵。即使如此,在维数n不是特别大的情况下,牛顿方法的表现要好很多。