最优化算法(二):牛顿法

1.推导

       牛顿法和拟牛顿法是求解无约束最优化问题的常用方法,它们比梯度下降收敛更快。考虑同样的一个无约束最优化问题:

                                                                                min_{x\in R^{n}}f(x)

       其中f(x)具有二阶连续偏导数的性质,如果k次迭代值为x^{(k)},则可进行二阶泰勒展开:

                                                    f(x)=f(x^{(k)})+g_{k}^{T}(x-x^{(k)})+1/2H(x^{(k)})(x-x^{(k)})^{2}

      上述公式里面的值不解释了,就是一阶导和二阶导(也称海塞矩阵H(X)在此点的值),函数有极值的必要条件就是在极值点      处一阶导数为0。牛顿法的每次迭代就是让一阶导为零,即满足:

                                                                                 f^{'}(x^{(k+1)})=0

       而上式根据泰勒一阶导等于:

                                                                  f^{'}(x^{(k+1)})=g_{k}+H(x-x^{(k)})=0

       根据这一步就能得到迭代公式:

                                                                           x^{(k+1)}=x^{(k)}-H^{-1}_{k}g_{k}

2.对比

     为什么牛顿法更快呢?我和网上其他的想的不太一样,我认为是因为每次迭代,牛顿法都能找到当前的极小值,而不是单纯找到当前下降最快的部分,直接走到当前能走的最低点,在下一次迭代中,换一个点继续求解。

3.拟牛顿法

    拟牛顿法就是对牛顿法的计算上加以简化,因为牛顿法每次会求海塞矩阵的逆矩阵,比较麻烦,所以它会用一个近似矩阵       G(x)替代H(x)的逆矩阵,所以拟牛顿法不需要二阶导数的信息,有时比牛顿法更为有效。 常用的拟牛顿实现方法有DFP和BFGS.。具体的推导有兴趣可以见统计学习方法P220,这个算法我用得不多,所以没有细究。

猜你喜欢

转载自blog.csdn.net/qq_38593211/article/details/81432053