1.推导 牛顿法和拟牛顿法是求解无约束最优化问题的常用方法,它们比梯度下降收敛更快。考虑同样的一个无约束最优化问题:
文章图片
【最优化算法(二)(牛顿法)】其中f(x)具有二阶连续偏导数的性质,如果k次迭代值为
文章图片
,则可进行二阶泰勒展开:
文章图片
上述公式里面的值不解释了,就是一阶导和二阶导(也称海塞矩阵
文章图片
在此点的值),函数有极值的必要条件就是在极值点处一阶导数为0。牛顿法的每次迭代就是让一阶导为零,即满足:
文章图片
而上式根据泰勒一阶导等于:
文章图片
根据这一步就能得到迭代公式:
文章图片
2.对比 为什么牛顿法更快呢?我和网上其他的想的不太一样,我认为是因为每次迭代,牛顿法都能找到当前的极小值,而不是单纯找到当前下降最快的部分,直接走到当前能走的最低点,在下一次迭代中,换一个点继续求解。
3.拟牛顿法 拟牛顿法就是对牛顿法的计算上加以简化,因为牛顿法每次会求海塞矩阵的逆矩阵,比较麻烦,所以它会用一个近似矩阵G(x)替代H(x)的逆矩阵,所以拟牛顿法不需要二阶导数的信息,有时比牛顿法更为有效。 常用的拟牛顿实现方法有DFP和BFGS.。具体的推导有兴趣可以见统计学习方法P220,这个算法我用得不多,所以没有细究。