Day 8
拟牛顿法总结
前几日因西安连日阴雨,略感冒,延迟至今天更新拟牛顿法
拟牛顿法
关于之前的牛顿法以及具体推导,请参考 Day 7最优化导论(Machine Learning)牛顿法特辑以及python代码实现
传统的牛顿法是一种具有较高实用性的优化问题求解方法,若牛顿法收敛,则收敛阶数至少为2,但当目标函数为一般的非线性函数时,牛顿法不能保证从任意起始点x(0)收敛到函数的极小点
[即,如果初始点x(0)不足够接近极小点,则牛顿法有可能不具有下降特性]
牛顿法的基本思路是在每次迭代中,利用二次型函数来局部近似目标函数f并求解近似函数的极小点作为下一次迭代,迭代公式为:
x(k+1) = x(k) - F(x(k))^-1*g(k)
修正后的牛顿法迭代公式为:
x(k+1) = x(k) - åkF(x(k))^-1*g(k)
步长为åk = arg minå>=0 f(x(k) - åF(x(k))^-1*g(k))
合理的确定步长,使得f(x(k+1)) < f(x(k))通过在方向-F(x(k))^-1*g(k)上进行一维搜索,即可确定åk
其一维搜索过程实际上就是求一元实值函数øk(å)=f(x(k)-åF(x(k))^-1*g(k))的极小点
*拟牛顿法的思路
因为牛顿法的缺陷是必须计算黑塞矩阵F(x(k))和求解方程F(x(k))d(k)=-g(k)[即:d(k)=-F(x(k)^-1*g(k)) ]为避免F(x(k))^-1这种矩阵求逆运算,可通过设计F(x(k))^-1的近似矩阵来代替它,这就是拟牛顿法的思路
F(x(k))^-1的近似矩阵随着迭代的进行而不断更新,使其至少拥有F(x(k))^-1的部分性质,为分析近似矩阵所应该具有的关于F(x(k))^-1的性质,引入等式:
x(k+1)=x(k) - åHkg(k)