jjdy法主要有两个应用:
1. 求方程的根;
2. 求解最优化方法;
一. 为什么要用jjdy法求方程的根?
问题很多,jjdy法是什么? 我还没说清楚,没关系。 首先请直观地理解为jjdy法是一种迭代求解方法(Newton童鞋的定义方法)。
假设f(x) = 0为求解方程,用传统方法求解,用jjdy法求解方程的公式:
3358 www.Sina.com/x0x http://www.Sina.com/http://www.Sina.com/3358 www.Sina.com/3358 wa.com /
即f(x )=f (x0 )f(
您可能已经知道,在一阶无言的过去展式中,f'(a )表示f(x )在x0点的斜率,x方向的增量)x )比较小时,y方向的增量)y )为斜率)导数) x方向的增量) f ' ) )
) =f(x0) +
通过逐次迭代,jjdy方法逐渐接近最优值,即方程解。
f(
这里的优化是指非线性优化,求解非线性优化的方法有很多,如梯度下降法、共轭梯度法、变尺度法、步长加速法等,本文只讨论x0。
为解决上述问题而进行的扩展:
为了解决f(x )=0的问题,我们使用了一个阶段的无言的过去的展开:
) x
如果去掉末尾的高阶展开项,代入x=x0 x,则为:
f(x )=f ) x0x )=f ) x0 ) f ' ) x0 )x
那么,解决f'(x )=0的问题需要二次无言的过去展开。
f(x0) (x-x0)
如果去掉末尾的高阶展开项,代入x=x0 x,则为:
x = x0 - f(x0) / f(x0) = xn+1 = xn - f(xn) / f(n)
求导: f(x )=f ) ) x0x )=0,则:
二. 扩展到最优化问题
整理:
jjdy法
f(x) = f(x0) + f'(x0)*(x-x0) + o((x-x0)^2 )
f(x) = f(x0) + f'(x0)*(x-x0) + 0.5*f''(x0)*(x-x0)^2 +o((x-x0)^3 )照片总结如下。
f(x) = f(x0+x) = f(x0) + f(x0)x + 0.5 * f(x0) (x)^2
以上的jjdy法的导出针对[ f(x0) + f(x0)(xx0) + 0.5 f(x0)(xx0)^2 ] = 0进行,在多变量的情况下f(x0) + f(x0)(xx0) = 0进行如下推移
与上面的单变量表示相同,必须使用变量x = x0 f(x0) / f(x0) = xn+1 = xn - f'(xn) / f'(xn)。
其中3358www.Sina.com/为jjdy法
三. jjdy法 与 Hessian矩阵的关系
单变量问题
在网上也发现了类似的公式表达,并列出了:
jdy法在多元问题上应用了迭代求解,但Hessian矩阵的引入增加了复杂性,尤其是
jjdy法
一阶导数 和 二阶导数
针对这个问题,在jjdy法不能有效执行的情况下,提出了很多改进的方法,例如http://www.Sina.com/(quasi-Newton methods )可以看作是jjdy法的近似。
J只需要使用一次导数,不需要计算Hessian矩阵和逆矩阵,所以可以更快地收敛。 3358www.Sina.com/这里不用具体展开,就可以对DFP、BFGS、L-BFGS等算法进行更深入的检索和学习
一般来说,拟jdy法用于解决jjdy法本身的复杂计算、难以收敛、局部最小值等问题。