牛顿法是另外一种常见的获取参数的极大似然值的方法,如图所示,
当参数需要收敛到与x值相交的地方。如果选择从
开始,计算
处的切线,切线与x轴相交于,根据导数的定义,可以得到:
因此:
求似然函数L(Q),为得到似然函数的最大值,令
,求此时的Q取值,则:
在实现该方法时,Q的初始值对结果影响并不大,一般取
。实验证明牛顿法是一种很快的收敛算法,其收敛速度为二次收敛。一般不考虑常量因子,在每次迭代后,误差的都会数量级的降低。例如,第一次迭代为0.1,第二次就会达到0.01,第三次就会达到0.001......后一次迭代是前一次的误差的平方。在逻辑回归中,对于规模合适的样本集,特征在几十到几百维,迭代10几次,就可以收敛。
上面的例子中Q只是一组数字,在一般化的牛顿法中,Q是一个向量。因此:
加号后面是梯度。H为海森矩阵,表示为:
由于每次迭代都需要计算一次海森矩阵,当样本数和特征维数特别大时,计算代价很大。在特征维数和样本数比较合理的时候,用该方法比较合适。一般几十到几百维特征可以选择用该方法。