机器学习(5)之牛顿算法

1. 牛顿迭代算法简介



    设r是

java 牛顿算法和单变量求解_人工智能

的根,选取


java 牛顿算法和单变量求解_人工智能_02作为r的初始近似值,过点


java 牛顿算法和单变量求解_java 牛顿算法和单变量求解_03


做曲线


java 牛顿算法和单变量求解_java 牛顿算法和单变量求解_04

的切线L,L的方程为

java 牛顿算法和单变量求解_java 牛顿算法和单变量求解_05

,求出L与x轴交点的横坐标

java 牛顿算法和单变量求解_java 牛顿算法和单变量求解_06


称x


1


为r的一次近似值。


过点


java 牛顿算法和单变量求解_牛顿迭代法_07


做曲线


java 牛顿算法和单变量求解_java 牛顿算法和单变量求解_04

的切线,并求该切线与x轴交点的横坐标

java 牛顿算法和单变量求解_人工智能_09

,称

java 牛顿算法和单变量求解_迭代_10


为r的二次近似值。重复以上过程,得r的近似值序列,其中,


java 牛顿算法和单变量求解_牛顿迭代_11


称为r的


java 牛顿算法和单变量求解_人工智能_12

次近似值,上式称为 牛顿迭代公式。     用牛顿迭代法解非线性方程,是把非线性方程

java 牛顿算法和单变量求解_人工智能

线性化的一种近似方法。把

java 牛顿算法和单变量求解_牛顿迭代法_14

在点

java 牛顿算法和单变量求解_人工智能_02的某邻域内展开成泰勒级数


java 牛顿算法和单变量求解_java 牛顿算法和单变量求解_16

,取其线性部分(即泰勒展开的前两项),并令其等于0,即

java 牛顿算法和单变量求解_牛顿迭代法_17

,以此作为非线性方程

java 牛顿算法和单变量求解_人工智能

的近似方程,若

java 牛顿算法和单变量求解_人工智能_19

,则其解为

java 牛顿算法和单变量求解_java 牛顿算法和单变量求解_06

, 这样,得到牛顿迭代法的一个迭代关系式

java 牛顿算法和单变量求解_牛顿迭代_11


 


 


 


 

牛顿方法应用于机器学习:

java 牛顿算法和单变量求解_人工智能_22

 

java 牛顿算法和单变量求解_java 牛顿算法和单变量求解_23


 


 


 


 


 


2. 一般初始化为0

2. 在Logistic的应用

    在Logistic回归中,我们要使得对数最大似然值最大,即

java 牛顿算法和单变量求解_牛顿迭代法_24

为0时的Θ,根据上述推论,更新规则如下: 

    

java 牛顿算法和单变量求解_人工智能_25

   牛顿方法的收敛速度:二次收敛

   每次迭代使解的有效数字的数目加倍:假设当前误差是0.01,一次迭代后,误差为0.001,再一次迭代,误差为0.0000001。该性质当解距离最优质的足够近才会发现。

3. 牛顿方法的一般化

Θ是一个向量而不是一个数字,一般化的公式为:

java 牛顿算法和单变量求解_牛顿迭代法_26

 

java 牛顿算法和单变量求解_java 牛顿算法和单变量求解_27

是目标函数的梯度,H为Hessian矩阵,规模是n*n,n为特征的数量,它的每个元素表示一个二阶导数:

java 牛顿算法和单变量求解_牛顿迭代_28


上述公式的意义就是,用一个一阶导数的向量乘以一个二阶导数矩阵的逆

优点:若特征数和样本数合理,牛顿方法的迭代次数比梯度上升要少得多

缺点:每次迭代都要重新计算Hessian矩阵,如果特征很多,则H矩阵计算代价很大