目录(?)[+]
一个简单的问题描述如下:周长一定,围成怎样的形状能使得面积最大。
公元前212~187年,古希腊数学家阿基米德(Archimedes)就曾证明了已知周长,圆所包围的面积最大的等周问题。这算是一个基本的最优化问题。
最优化方法定义:应用数学的重要研究领域。它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。
简单来说,即以最优化数学模型来解决实际运用中的各种最优化问题。
其中的X为n维向量,为实际运用中的解。
s.t.为英文subject to的缩写,表示受限于。
F(x)称为目标函数,如上式,我们要求f(x)的最小值。
H(x)为等式约束;g(x)为不等式约束。
根据目标函数与约束函数的不同形式,可以把最优化问题分为不同的类型。
1)根据约束函数,可分为:无约束最优化,等式约束最优化,不等式约束最优化。
2)根据目标函数与约束函数类型分类:若f(x),h(x),g(x)都是线性函数,则称为线性规划;若其中至少有一个为非线性函数,则称为非线性规划。
3)另外,对于特殊的f(x),h(x),g(x),还有特殊的最优化问题。
目标函数为二次,约束全为线性:二次规划。
目标函数不是数量函数而是向量函数:多目标规划。
对于无约束的最优化问题,我们通常给定一个初始的可行点x0,由这个可行点出发,依次产生一个可行点列,x1,x2…xk,使得某个xk恰好是问题的一个最优解,或者该点列收敛到最优解。也就是选取一个可行的方向,再往这个方向行进。这种方法称为下降算法。
在迭代中,要求f(xk+1)
在下降算法中,基本的问题有两个:方向与步长。
对于性能的衡量,也有:收敛于不收敛,局部最优与全局最优。
常见的下降算法有:
最速下降法,Newton法,共轭方向法和共轭梯度法,拟Newton法,Powell方向加速法等。
有约束的最优化问题则可以通过拉格朗日乘数转化为无约束最优化问题。
其他一些流行的方法有:
模拟退火,遗传算法,类免疫算法,演化策略,神经网络,支持向量机等。
不同于前一部分通过迭代求解的方法,我们可以通过一些数学知识来直接求解最优化问题的最优点,这种方法称为解析法。比如我们一阶函数求导得极值的方法。
所谓的最优性条件,也就是最优点满足的条件。
不过,一般情况下,很难直接通过最优性条件求解最优化问题。但是最优性条件的研究,对于问题的求解以及判定结束状态都有帮助。
以下面无约束优化的最优性条件为例:
对于:
根据微积分的知识,我们有如下结论:
也就是无约束最优化问题的最优性条件;相应的我们还有等式约束最优化问题,不等式约束最优化问题的最优性条件。
目录(?)[+]
所谓的最优性条件就是最优解的性质。
我们通过最优性条件的研究,能够对于优化的步骤,以及迭代求解时的结束条件有很大帮助。
最优化问题常见的有无约束优化,等式约束优化,不等式约束优化。这里用两篇blog分别讨论等式约束优化与不等式约束最优化的最优性条件。
我们首先讨论等式约束的情况下,其最优解满足怎样的性质。
以下以三维空间为特例,看看最优解有哪些性质。
如上图,X为局部最优解,那么其必在S1与S2的交线D(及可行域)上,并且目标函数与约束函数的 梯度 共面。如果不共面,那么f(x)梯度向可行域D上的投影不为零。于是沿着这个投影移动,可使得目标函数下降,也就不是最优解。
根据共面的条件,我们可以推出:
也就是三维空间的最优性条件。
上述是三维空间上的特殊情况,对于等式约束的一般情况,我们可以通过微积分,来得到关于导函数的一些性质。下面直接写出其完整性质。
一阶必要条件:
上式为必要条件,不是充分条件。
我们可以定义如下的n+l元函数:
称为lagrange函数。也就是把目标函数与约束函数写在一起求解,并用向量的形式来表示。
上式分别对x与lamda求导为零求解后,即为可能极值点。
不过上述的点可能是鞍点,也可能是极值点,具体判断要用到如下的二阶充分条件。
在满足一阶必要条件的前提下,我们现在要判断所得的可能极值点到底是不是极值点,就要用到二阶充分判断条件:
若 函数关于x的Hesse矩阵在约束超曲面的切平面上正定,则x就是严格局部极小点。
在数学中,海森矩阵(Hessian matrix或Hessian)是一个自变量为向量的实值函数的二阶偏导数组成的方块矩阵,此函数如下:
如果f所有的二阶导数都存在,那么f的海森矩阵即:
其中 ,即
小结:等式最优化问题,把约束条件与目标函数写在一起,称为langrang函数,对X,lamda求导取零后,在通过二阶的hesse矩阵是否正定来进一步判断。
目录(?)[+]
KKT条件是不等式约束的最优化问题的最优性条件。
所谓的最优性条件就是最优解的性质。
我们通过最优性条件的研究,能够对于优化的步骤,以及迭代求解时的结束条件有很大帮助。
最优化问题常见的有无约束优化,等式约束优化,不等式约束优化。
上一篇blog讨论过等式约束的最优性条件(http://blog.csdn.net/ice110956/article/details/17557795),这里我们讨论如下的不等式约束最优化,其最优解满足怎样的性质。
我们知道,在最优化求解的过程中,我们常常使用某种逼近的方法,如梯度下降法等等。那么使得目标函数f(x)变小的方向,也就是下降方向。
根据微积分的知识,我们知道,取梯度的反方向,可得下降方向。也就是,P* <0,则P是一个下降方向。
一般来说,对于目标函数,有一定的约束条件,也就是我们的可行域,我们要在可行域允许的范围内求解。我们求解的方向在可行方位内,则称为可行方向。
同样的,根据微积分的知识,我们也可以推导得到P* >0为可行方向。
现在我们要得到即可行,又下降的方向来求解问题,也就是要求得可行下降方向。
综上,可行下降方向p满足条件为:
其中f(x)表法向量,ci(x)表大于零的约束条件法向量。
那么,如果X已经是极值点了呢?
我们把下降方向集合写作S,可行方向集合写作G,如下:
那么,如果当前点是最优点,应该是无处可去的,也就是没有可行下降方向,也就是,如下图:
于是,我们得到最优点的性质:
我们接下来推导如何解上面的集合问题。我们从两个引理出发,能够得到两个解,也就是对应的Fritz-John条件与KT条件。我们先来看Fritz-John条件的推导。
我们看下面这个引理:
设a1,…ar是n维向量,则不存在向量,使得
成立的充要条件是,存在不全为零的非负实数组,使得
这条引理证明略,从几何意义上理解,如下:
如果不存在使得向量ai*d全小于0的向量d,那么ai中不能够全都在某个超平面的一侧。否则,取超平面另一侧的任意一个向量作为d,都能够满足ai*d全小于0.
再看我们上一部分推出的最优解条件:
当x是最优解时,不存在可行的下降方向p,使得
也就是不存在:
把上式中和分别看成Gordan引理中的a1,a2,….,ar,于是存在不全为0的数:,使
这也称为Fritz-John一阶必要条件
完整的定理如下:
x为局部最优解,f(x),c(x)在点x可微,则存在非零向量,使得:
上述Fritz-John条件中,如果lamda0=0,那么所得的点与目标函数无关,这样造成无论什么目标函数,只要约束条件一样,得到的可能极值点也就相同。也就是,这个条件过于宽松了。
于是我们再加一个约束条件,如“有效约束函数的梯度线性无关”,那么lamda0就不会为0了。于是得到了我们如下的KT条件:
还是看一个定理:
已知a1,….,ar和b为n为向量。所有满足:
的向量,同时也满足不等式的充要条件是:存在非负实数,使得。
上式的证明需要用到凸分析的知识,这里我们从几何意义来看。
简单来说就是,所有满足与凸锥B中所有向量点乘大于零的向量,都在凸锥A中;
那么,如果一个向量d,满足,那么b就处于a1与ar之间,也就是。
如上图中d1满足条件,d2不满足条件。
还是两个集合交为空的条件:
当x为最优解,不存在P,使得:
反过来,也就是存在p,使得
根据Farkas定理,约束条件ci(x)组成一个凸锥,f(x)处于这个凸锥之中,也就是:
这也是KT条件。通过下图,我们能够直观地理解:
完整地KT条件如下:
上面的KT条件与Fritz-John条件,只在f(x)的系数上不同。KT条件是Fritz-John条件的特殊情况。
这里略去,上述Fritz-John条件与KT条件得出的是可能的极致点,还要通过二阶的验证才能分辨是否为鞍点。
由于凸规划的良好性质,满足Fritz-John条件或KT条件的点就是其极值点。
PS:据说blog的公式数量与受欢迎程度成反比,不过我今天一口气发了三篇公式的blog。。。
目录(?)[+]
之前的两篇blog讨论了等式最优化的最优性条件和不等式最优化的最优性条件。
(http://blog.csdn.net/ice110956/article/details/17557795 )
(http://blog.csdn.net/ice110956/article/details/17562429 )
关于无约束问题,我们通过最优性条件能够直接求出解,那么这种方法称为解析法。
但是,对于有约束问题的一般情况是,我们很难通过最优性条件来得到最优解。通常情况下,使用KKT条件求解时,我们要求与约束个数同阶的矩阵的逆。我们可以容易验证某个点是否是最优解,但是很难直接求解。
由于无约束的最优化问题我们已经有了许多高效的解法,于是,对于有约束的问题,我们可以转化为求解无约束问题,并且用迭代算法来求解。这么方法由称为序列无约束极小化技术SUMT(SequentialUnconstrained Minimization Technique)
我们根据约束的特点,构造某种惩罚函数,然后加到目标函数中去,将约束问题求解转化为一系列的无约束问题。这种“惩罚策略”,对于无约束问题求解过程中的那些企图违反约束条件的目标点给予惩罚。如下图:
通过上述方法,我们可以把有约束的问题化为无约束问题求解。也就是我们的外罚函数法。
我们改写为无约束规划:
其中,我们设为非常大的数。
那么,当x1,x2不在可行域上时,后一项由于乘了,变为很大的数,对不在可行域上的点加以惩罚,迫使下一次迭代在可行域周围。
也就是,最优化(2)式的前一部分,得到最优解;最优化后一部分,使得解在可行域上。
那么(2)式得到的最优解,会是(1)式的最优解吗?外罚函数收敛吗?考虑到公式的数量与日志受欢迎程度成反比,这里直接给出结论:(2)式收敛,并且最优解为(1)式近似最优解。
我们用迭代算法来求解,这里直接给出迭代结束条件:。
经证明,外罚函数法式收敛的,上式也随着收敛到0.
当我们固定系数时,可求解无约束问题得到当前最优解,我们算出Xk之后,判断是否满足结束条件,满足则终止。否则修改惩罚力度,以xk为下一次初始点,,继续迭代。
步骤如下:
1.由于上述都是近似最优并且近似可行的,近似最优可以接受,但是近似可行在实际运用中让人无法接受。这一点内罚函数可以解决;
2.根据收敛性,越大越好;但是我们直接求解时,用到求导以及hesse矩阵,越大,越趋于病态,也就是不好解,这是乘子法所要解决的问题。
相比于外罚函数法在不可行区域加惩罚,内罚函数法在可行域边界筑起高墙,让目标函数无法穿过,就把目标函数挡在可行域内了。
这种惩罚策略只适用于不等式约束问题,并要求可行域的内点集非空,否则,每个可行点都是边界点,都加上无穷大惩罚,惩罚也就失去意义了。
考虑不等式约束:
当x从可行域
的内部趋近于边界时,则至少有一个ci(x)趋近于零,因此,不难想到可构造如下的增广的目标函数:
称为内罚函数或障碍函数,参数r仍称为罚因子。
上述的内罚函数,当x靠近边界时,会迅速增大,迫使在可行域之内进行求解。
如下图:
同外罚函数法类似,我们考虑用迭代算法来求解。每次变化得到一个罚因子rk,从前一步关于罚因子rk-1的最优解出发,得到下一步关于rk的最优解;当满足条件是,迭代结束,得到近似最优解。
经证明,内罚函数法也是收敛的,迭代结束的条件为
步骤如下:
1) 由于无约束最优化问题的解法目前已有许多很有效的算法,如DFP,BFGS等,所以在求解复杂得多的约束优化问题是,工程技术人员一般乐于采用罚函数法——SUMT外点法和内点法。
2) 内点法适用于解含不等式约束问题,并且每次迭代的点都是可行点,这是设计人员所希望的。但要求初始点为可行域的内点,需要相当的工作量,同时它不能处理等式约束;外点法适于解既含等式约束又含不等式约束的优化问题,初始点可以是可行域之外的点,却不能保证近似最优解是可行的。
3) 罚函数法对于增广的目标函数的Hesse矩阵的条件数随罚因子增大或减小而增大,造成在求解无约束最优化问题时的困难,如何选择罚因子往往进退维谷。如外罚函数法,欲使得无约束问题接近于原约束问题,应该选择尽可能大的罚因子;但为了减轻求解无约束问题的困难,又应选取较小的罚因子,否则增广矩阵病态。这也是罚函数法的固有弱点。
解决这些问题,就要用到乘子法,关于乘子法,慢慢再整理出来。