[最优化算法]最速下降法求解无约束最优化问题
2015-11-20 17:28
260 查看
1. 问题描述
最优化问题的一般形式如下所示:对于f:D⊆Rn→R1,求解
minx∈Ωf(x)s.t.{s(x)⩾0h(x)=0
其中f(x)称为优化目标函数,s.t.称为约束条件。对于无约束最优化,没有约束条件要求,即在全部定义域内寻找目标函数最优值。此时,无约束最优化问题简化为如下形式:
minx∈Ωf(x)
针对最优化问题,我们往往不能求出全局最小点,只能求出局部最小点。因此,本文只讨论求目标函数的一个极小值。
2. 数学准备
根据高中数学知识,针对可导函数而言,函数在极值处导数为0。即f′(xk)=0是xk为f(x)的一个极值的必要条件(不是充分条件,因为该点还可能是“驻点”)。因此,我们只需要求解f′(x)=0的根并进行验证就可以了。然而,很多函数的导数可能非常复杂,不易甚至不能求出f′(x)=0的解析解。这里我们设计一种数值计算的算法,通过计算机的迭代计算,求出目标函数的一个极小值,我们称之为“最速下降法”。2.1 梯度
设f:D⊆Rn→R1,且f(x)处处可导,则f(x)在x处的梯度为:∇f(x)=[∂f(x)∂x1,∂f(x)∂x2,⋯,∂f(x)∂xn]
梯度类似于一元函数中的导数。负梯度方向是函数下降最快的方向,称为“最速下降方向”。
2.2 Hessian矩阵
设f:D⊆Rn→R1,且f(x)处处可导,则f(x)在x处的Hessian矩阵为:∇2f(x)=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂2f(x)∂x21∂2f(x)∂x2∂x1⋮∂2f(x)∂xn∂x1∂2f(x)∂x1∂x2∂2f(x)∂x22⋮∂2f(x)∂xn∂x2⋯⋯⋯∂2f(x)∂x1∂xn∂2f(x)∂x2∂xn⋮∂2f(x)∂x2n⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
Hessian矩阵类似于一元函数中的二阶导数。
3. 最速下降法
最速下降法是求解无约束最优化问题的一种数值计算的算法,其基本思想是多次沿某一点的最速下降方向(也就是负梯度方向)进行一维搜索,从而得到函数的一个极小值,因此得名为最速下降法。因为最速下降法是一系列一维搜索的组合,因此要理解最速下降法,必须要掌握一维搜索。有关一维搜索的内容,我会在另外一篇博客上详细介绍。这里,我们仅仅给出一维搜索的定义。
3.1一维搜索
若f(x)具有连续的偏导数,pk是f(x)在xk点的一个下降方向,一维搜索指我们需要求解一个步长tk,使得f(xk+tkpk)=mintf(xk+tpk)xk+1=xk+tkpk
简单的讲,一维搜索就是在搜索方向给定的情况下,求解函数在此方向上的一个极小值。
一维搜索有如下性质:
若f(x)具有连续的偏导数,pk是f(x)在xk点的一个下降方向,按上述一维搜索方法迭代求出点xk+1,则有
∇f(xk+1)Tpk=0
即f(x)在xk+1处点的梯度与xk处的搜索方向pk正交。这个定理很好理解,因为如果两者不正交的话,说明沿次搜索方向函数值还在减小,继续增大步长,一定能得到一个比当前值更小的函数值,与当前值为函数在此方向上的一个极小值矛盾。因此,一维搜索要一直搜索到梯度与当前搜索方向正交的那个点,此点即为极小点。
理解了一维搜索极其性质,我们就容易理解最速下降法的原理了。
3.2 最速下降法的算法流程
最速下降法是指这样的一维搜索的组合:已知目标函数f(x)及其梯度g(x),给定某一点xk,按照该点的负梯度方向进行一维搜索,把该方向上搜索到的极小点作为下一个迭代点xk+1,重复上述步骤,直到找到满足终止精度点,该点即为目标函数的一个极小点。把该算法写成流程图的形式如下所示:
Created with Raphaël 2.1.0Start选定X0,计算f0=f(x0),g0=g(x0), 置k=0做一维搜索确定xk+1,计算f(xk+1),g(xk+1)是否满足终止精度?Endyesno
其中,对于一般的目标函数f(x),通过一维搜索确定xk+1并没有通用的公式可以套用,但是对于特殊的目标函数,例如二次函数f(x)=12xTQx+btx+c,其中Q是正定矩阵,我们可以根据上文所述的一维搜索的性质,推导出一维搜索的递推公式:
xk+1=xk−gTkgkgTkQgkgk
推导过程略。
因此,对于二次函数f(x)=12xTQx+btx+c,其中Q是正定矩阵,最速下降法的算法流程简化为如下形式:
1. 选定x0,计算f0=f(x0),g0=g(x0),置k=0;
2. 计算xk+1=xk−gTkgkgTkQgkgk;
3. 判别,若满足终止精度要求,则停止,否则,置k=k+1,转步2。
3.3 最速下降法的特点
因为最速下降法是按照每一个迭代点的负梯度方向进行搜索,又因为一维搜索的性质,下一迭代点的梯度要与当前搜索方向正交,因此,最速下降法每次的搜索方向都是正交的。从图形上看如下图所示:理论可以证明,最速下降法具有一阶收敛速度,收敛速度慢,且在极小点附近会发生锯齿现象。