优化:梯度下降法、牛顿法、共轭梯度法

  • 时间:
  • 浏览:4
  • 来源:uu快3棋牌_uu快3讨论群_规律

假设亲们要求f(x)的最小值,首先用泰勒级数求得其二阶近似 

显然, 当f(x) 是有有一一三个白 标量函数时,Jacobi矩阵是有有一一三个白 向量,即f(x)的梯度,此时Hesse 矩阵是有有一一三个白 二维矩阵;当f(x)是有有一一三个白 向量值函数时,Jacobi 矩阵是有有一一三个白 二维矩阵,Hesse 矩阵是有有一一三个白 三维矩阵。

显然这里x是自变量,x^(k)是常量,求解近似函数phi(x)的极值,即令其倒数为0,很容易得到 

函数z=f(x)在点P(x,y)的梯度的方向与过点的等高线f(x,y)=c在这点的法线的有有一一三个白 方向相同,且从数值较低的等高线指向数值较高的等高线,而梯度的模等于函数在这一法线方向的方向导数。这一法线方向要是方向导数取得最大值的方向。

已经 目标函数是有有一一三个白 凸优化疑问,没办法 梯度下降法获得的局部最优解要是全局最优解,理想的优化效果如下图,值得注意其他的是,每一次迭代的移动方向都与出发点的等高线垂直: 

一维搜索方法要是,大致还可不可不还可以分为试探法和函数逼近法(插值法)。当然,这并就有方法就有求得即小的的近似值。

怎样让,极小化上述二次函数,若依次沿着d^(1)和d^(2)进行一维搜索,则经过两次迭代必达到极小点。

亲们在来看共轭方向的几何意义。 

前面提到过二次函数 

 

的等值面f(x,y)=c是有有一一三个白 以x-为中心的椭球面。设x^(1)为此椭球面边缘的其他,则x^(1)处的法向量为 

 

将其中里面一项记作 

 

即由x(1)指向椭圆面中心x-的向量。 

下面,设d^(1)为此椭球面在x(1)处的切向量,已经 切向量d^(1)与法向量delta f(x(1))正交,即 

试探法包括0.618法、Fibonacci法、进退法、平分法等。

对于包含n个变量的标量函数,其梯度表示为 

共轭梯度法的基本思想是把共轭性与最速下降法相结合,利用已知点处的梯度构造一组共轭方向,并沿这组方向进行搜索,求出目标函数的极小点。根据共轭方向的基本性质,这一方法具有二次终止性。



此外,已经 初始值离局部极小值太远,泰勒展开并非要对原函数进行良好的近似,意味着 牛顿法已经 不收敛。

亲们给出阻尼牛顿法的计算步骤,我我实在阻尼牛顿法相较原始牛顿法要是增加了沿牛顿方向的一维搜索: 

即利用一阶的梯度信息找到函数局部最优解的并就有方法。核心迭代公式为 

怎样让,梯度下降法计算步骤还可不可不还可以概括为 

函数逼近法包括牛顿法、割线法、抛物线法、三次插值法、有理插值法等。

对于二次函数 

 

其中A为n*n的对称正定矩阵,x-为一定点,则函数f(x)的等值面f(x,y)=c是有有一一三个白 以x-为中心的椭球面。

矩阵的条件数:矩阵A的条件数等于A的范数与A的逆的范数的乘积,即cond(A)=‖A‖·‖A^(-1)‖,是用来判断矩阵病态有无 的并就有度量,条件数越大矩阵越病态。

实际上,梯度还还可不可不还可以提供沒有最快变化方向的其他方向上坡度的变化数率,即在二维情况表下,按照梯度方向倾斜的圆在平面上投影成有有一一三个白 椭圆。椭球面的底部形态受 Hesse 矩阵的条件数影响,椭球面越扁,没办法 优化路径都要走很大的弯路,计算数率很低。这要是常说的锯齿疑问( zig-zagging),已经 意味着 收算法敛数率快一点 。

可见,等值面上其他处的切向量与由此点指向极小点的向量是关于A共轭的

其中,pk是第k次迭代时取舍的移动方向,在梯度下降法中,移动的方向设定为梯度的负方向。 

ak是第k次迭代是移动的步长,每次移动的步长还可不可不还可以固定也还可不可不还可以改变。在数学上,步长还可不可不还可以通过line search令导数为零找到该方向上的最小值,怎样让在实际编程时,曾经计算的代价太少,亲们一般还可不可不还可以将它设定位有有一一三个白 常量。

注意,上述算法中均假设采用的精确一维搜索,但实际计算中,精确一维搜索会带来一定困难,代价较大,通常还是采用不精确的一维搜索。但此时(4)中构造的搜索方向已经 就就有下降方向了,防止这一疑问有有有一一三个白 方法。 

其一,当d^(k+1)就有下降方向时,以最速下降方向重新开始英语 。事实上,这也居于疑问,但一维搜索比较粗糙时,曾经重新开始英语 已经 是絮状的,会降低计算数率。 

其二,在计算过程中增加附加的检验,具体细节还可不可不还可以参考陈宝林老师的“最优化理论与方法”的P60 1。

在牛顿法中应用广泛,定义为 



已经 考虑z=f(x,y)描绘的是一座在点(x,y)的厚度为f(x,y)的山。没办法 ,某其他的梯度方向是在该点坡度最陡的方向,而梯度的大小告诉亲们坡度到底有多陡。

显然除了f(x)二次可微外,还要求f(x)的Hesse矩阵可逆。此外,已经 矩阵取逆的计算多样化为 n 的立方,当疑问规模比较大时,计算量很大,防止的方法是采用拟牛顿法,如 BFGS, L-BFGS, DFP, Broyden’s Algorithm 进行近似。

在其他迭代下降算法中,具有有有一一三个白 一同点,要是得到x(k)后,按并就有规则取舍有有一一三个白 方向d(k),再从x(k)除法,沿方向d(k)在直线上求目标函数f(x(k)+lambda*d(k))的的极小点,从而得到x(k)的后继点x(k+1),这里求目标函数在直线上的极小点,称为一维搜索,已经 线搜索,还可不可不还可以归结为单变量lambda的极小化疑问。取舍的lambda还可不可不还可以成为步长。

负梯度方向为最速下降方向

先给出共轭方向的定义: 



前面讲的就有从n维空间到一维空间的映射函数,对于从n维欧式空间变换到m维欧式空间的函数f,也还可不可不还可以表示成由m个实函数组成y=f(x)=[y1(x1,…xn),…ym(x1,…,xn)]T。对于函数f,已经 其偏导数都居于,还可不可不还可以组成有有一一三个白 m行n列的矩阵,即所谓的Jacobi矩阵: 

当A为单位阵时,这有有一一三个白 方向关于A共轭将等价于有有一一三个白 方向正交,可见共轭是正交概念的推广。

此椭球面的底部形态受 Hesse 矩阵的条件数影响,长轴与短轴对应矩阵的最小底部形态值和最大底部形态值的方向,其大小与底部形态值的平方根成反比,最大底部形态值与最小底部形态值相差越大,椭球面越扁。

前面提到的梯度下降法,主要利用的是目标函数的局部性质,具有一定的“盲目性”。 

牛顿法则是利用局部的一阶和二阶偏导信息,去推测整个目标函数的底部形态,进而还可不可不还可以求得近似函数的全局最小值,怎样让将当前的最小值设定为近似函数的最小值。也要是说,牛顿法在二阶导数的作用下,从函数的凸性出发,直接搜索怎样到达极值点,即在取舍方向时,不仅考虑当前坡度有无 够大,前会 考虑走了一步已经 ,坡度有无 会变得更大。 

相比最速下降法,牛顿法包含一定对全局的预测性,收敛性质也更优良。当然已经 牛顿法是二阶收敛的,比梯度下降法收敛的快一点 。

从而得到牛顿法的迭代公式 

共轭梯度法中的核心迭代过程还可不可不还可以采取不同的方案,并就有是直接延续,即老要用d^(k+1)=-g(k+1)+beta_k*d^(k)构造搜索方向;并就有是把n步作为一轮,每搜索一轮已经 ,取一次最速下降方向,开始英语 下一轮,此种策略称为“重置”。 

下面亲们介绍并就有传统的共轭梯度法

函数在某点的梯度是曾经有有一一三个白 向量,它的方向与取得最大方向导数的方向一致,而它的模为方向导数的最大值。

共轭梯度法是介于最速下降法与牛顿法之间的有有一一三个白 方法,它仅需一阶导数信息,但克服了最速下降法收敛慢的缺点,又防止了牛顿法都要存储和计算Hesse矩阵并求逆的缺点。