1、牛顿法与修正牛顿法牛顿法和牛顿法和修正牛顿法修正牛顿法1、思想来源 梯度法相邻两次搜索方向总是相互正交,搜索路线呈锯齿形,使得其在极小点附近,收敛速度越来越慢。人们试图找到这样一种方向:它直接指向最优它直接指向最优点点,使得从任意选定的初始点出发,沿此方向迭代一次就能达到极小点一次就能达到极小点。2、基本思想 在求目标函数在求目标函数 的极小值时,先将它在的极小值时,先将它在 点附近展开点附近展开成泰勒级数的二次函数式,然后求出函数的极小值点,并以此点作成泰勒级数的二次函数式,然后求出函数的极小值点,并以此点作为欲求目标函数的极小值点为欲求目标函数的极小值点 的一次近似值的一次近似值。设目标函
2、数是连续二阶可微的,将函数在点设目标函数是连续二阶可微的,将函数在点 按泰勒级数按泰勒级数展开,并取到二次项:展开,并取到二次项:)(kx)()(21 )()()()()()()()()()()()(kkTkkTkkkxxxHxxxxxfxfxxf)(xf)(kx*x对对x x求导,其极值点必满足一阶导数为零,所以,求导,其极值点必满足一阶导数为零,所以,得到得到 式中式中,为为HessianHessian矩阵的逆矩阵。矩阵的逆矩阵。0)()()()()()()(kkkxHxxxfxxfx)()()(1)()(minkkkxfxHxx1)()(kxH 1 在一般情况下,在一般情况下,不一定是二
3、次函数,因而不一定是二次函数,因而 也不可能是也不可能是 的极值点。的极值点。但是在但是在 点附近,函数点附近,函数 和和 是近似的,所以可以用是近似的,所以可以用 点作为点作为下一次迭代,即得下一次迭代,即得 如果目标函数如果目标函数 是正定二次函数,那么是正定二次函数,那么 是个常矩阵,逼近式是个常矩阵,逼近式1 是准确是准确的。因此由的。因此由 点出发只要迭代一次既可以求点出发只要迭代一次既可以求 的极小点。的极小点。()f x(1)()()1()()()kkKkxxH xf xminx()f x(f x))kx(()x(1)kx()f x()H x()kx()f x2 式与一维搜索公式
4、 比较,则有搜索 方 向 ,步长因子)()()()1(kkkksxx)()()(1)()(kTkkxfxHs1)(k 2)()()1()(1)()()()(kkkkkksxxxfxHs牛顿法的牛顿法的迭代算式迭代算式其中其中 称为称为牛顿方向。牛顿方向。)(kS3 3、迭代步骤、迭代步骤 一一 给定初始点给定初始点 ,计算精度,计算精度,令,令k=0k=0;二二 计算计算 点的梯度点的梯度 、及其逆矩阵及其逆矩阵 。三三 构造搜索方向构造搜索方向)0(x)(kx)()(kxf)()(kxH1)()(kxH)()()(1)()(kkkxfxHs 四四 沿沿 方向进行一维搜索,得迭代点方向进行一维
5、搜索,得迭代点 五五 收敛判断:收敛判断:若若 ,则,则 为近似最优点,迭代停止,为近似最优点,迭代停止,输出最优解输出最优解 和和 终止计算。终止计算。若不满足,令若不满足,令k=k+1,转第二步继续迭代。,转第二步继续迭代。)(ks)()()1(kkksxx)()1(kxf)1(kx)1(minkxx)()()1(minkxfxf)()1(kxf)1(minkxx)()1(kxf)()()1(minkxfxf)1(minkxx)()1(kxf例:例:用牛顿法求函数用牛顿法求函数 的极小值。的极小值。60410)(21212221xxxxxxxf解:解:(1)(1)取初始点取初始点(2)(2
6、)计算牛顿方向计算牛顿方向00)0(x41042102)()0(1221xxxxxxxf2112)(222122212212)0(xfxxfxxfxfxH211231)(1)0(xH68182431410211231 )()()0(1)0()0(xfxHs故故(3)(3)极小值极小值8)(min6868*100)0()0()0(1xfsxx4 4、优缺点、优缺点 数学分析表明,牛顿法具有很好的局部收敛性质,对数学分析表明,牛顿法具有很好的局部收敛性质,对二次函数二次函数来说,仅来说,仅一步一步就达到优化点,就达到优化点,但对一般函数来说,在一定条件下,当初始点的选取但对一般函数来说,在一定条件
7、下,当初始点的选取充分接近目标函数的极小点时,有很快的收敛速度,但若充分接近目标函数的极小点时,有很快的收敛速度,但若初始点选取离最小点比较远,就难保证收敛;初始点选取离最小点比较远,就难保证收敛;牛顿法必须求牛顿法必须求一阶、二阶导数及求逆阵一阶、二阶导数及求逆阵,这对较复杂,这对较复杂的目标函数来说,是较困难的。的目标函数来说,是较困难的。5 5、修正牛顿法、修正牛顿法 当目标函数为非二次函数时,目标函数在 点展开所得的二次函数是该点附近的一种近似表达式,所求的极小点,当然也是近似的,需要继续迭代。但是当目标函数严重非线性时,用式 进行迭代则不能保证一定收敛,即在迭代中可能会出现 ,所得到
8、的下一点不如原来的好。这和初始点的选择是否恰当有很大的关系。)()()()1(kkxfxfkx2 为了克服牛顿法的上述缺陷,可以通过在迭代中引入步长因子和一维搜索加以解决,即令 式中,-一维搜索所得的最优步长因子。因而将 称为牛顿方向。经过这种修改后的算法称为修正牛顿法。也称牛顿方向法or阻尼牛顿法。3)()()(1)()()()1(kkkkkxfxHxx)(k)()()(1)()(kkkxfxHs举例:用修正牛顿法求解下列无约束优化问题,已知解:因为所以22122210422)(.1.0,)1,1(xxxxxxfxT13242121211)()(2121211)(;24)(4222)(;42
9、422)()0(1)0()0(1)0()0()0(2121xfxHsxHxfxHxxxxxf由由修正牛顿法修正牛顿法,得,得带入原函数带入原函数对对 求导求导解得解得代入代入因为因为 故迭代终止;故迭代终止;所以所以最优解最优解为为1012)31(2)1(6)1(4)31(6)()()31(4)1)(31(2)1(2)31()(131131122)1()0()0()1(xfsxx8)(241311311)1()0()0()1(xfsxx1.00|)(|,00)()1()1(xfxf8)(,24min)1(minxfxx6 6、牛顿法的评价、牛顿法的评价由于采用了目标函数的由于采用了目标函数的二
10、阶导数二阶导数信息,收敛速度比梯度法快。信息,收敛速度比梯度法快。牛顿法迭代公式与一般迭代公式的牛顿法迭代公式与一般迭代公式的区别区别在于,在于,没有最优步长没有最优步长因子因子。这使得在接近最优点时,由于步长不能调节,可能会。这使得在接近最优点时,由于步长不能调节,可能会错过最优点,造成算法的稳定性欠佳,甚至造成不能收敛而错过最优点,造成算法的稳定性欠佳,甚至造成不能收敛而导致计算失败。为了克服这一点,提出了导致计算失败。为了克服这一点,提出了修正牛顿法修正牛顿法,它既,它既保持了牛顿法收敛快的特性,有放宽了对初始点选择的要求,保持了牛顿法收敛快的特性,有放宽了对初始点选择的要求,保证每次迭代的结果都是目标函数值下降。保证每次迭代的结果都是目标函数值下降。需要计算需要计算Hessian矩阵矩阵及其及其逆矩阵逆矩阵,内存占用、计算量大;此,内存占用、计算量大;此外二阶导数不存在,或者逆矩阵不存在的情况不能应用。外二阶导数不存在,或者逆矩阵不存在的情况不能应用。祝您成功!祝您成功!