一些凸优化的基本概念(2017-12-20发布于知乎)

本文参考了[原创]关于 最优化/Optimization 的一些概念解释的基础上加入了一些新东西

参考了牛顿法与拟牛顿法学习笔记中的部分内容

 

 

[1]关于 凸

顾名思义,凸就是曲线是一个山谷形状,凹就是曲线是山峰形状。

凸函数是一个凸子集 [公式] (区间)上的实值函数 [公式] ,如果在其定义域 [公式]

上的任意两点 [公式] ,以及 [公式] ,有

[公式]

也就是说,一个函数是凸的当且仅当上境图(在函数图像上方的点集)为一个凸集

如果对于任意的 [公式] 有

[公式]

,函数 [公式] 是严格凸的。

[2]搜索方向

在最优化领域,我们经常会遇到“在某个方向上进行搜索”的说法,例如,使用共轭方向法来寻找最优解的过程中,我们会在共轭方向上进行搜索,那么,这个“方向”到底指的是什么呢?

对一维空间中的方向,我们可能有一种模糊的概念:就像是面前有一条笔直的路,我们沿着它走下去,想要寻找梦中的那个美丽佳人,但是我们不知道她在哪里,于是只能一边走,一边看,有时步子迈大点,有时步子迈小点。这就是一个“在一维方向上进行搜索”的例子。

然后推广到二维平面上:我们可以先在水平方向上移动一段距离,再在垂直方向上移动一段距离,综合起来看,你就可以在在二维平面上移动到任意的地方了。单独看水平或者垂直方向上你的移动,那就是在一个“方向”上的搜索。

假设有一个函数:

[公式]

其自变量为 n 维的,即:

[公式]

我们已知了X的初始点 [公式] ,现在还有一个实数a,以及一个搜索方向 d (取direction之意),那么,什么才算是在方向 d 上对目标函数的搜索呢?其实就是求函数值:

[公式]

并且判断该函数值是否满足一定的条件(例如,不断地减小),如果不满足,就调整搜索方向,并再次计算、并判断的过程。

有了这个概念,我们就可以在N维空间中,沿某一个方向作搜索(尽管我们在几何上想像不出来>三维的空间是什么样子的,但是这并不影响我们定义它)。

以三维的一个例子说明。设

[公式] 初始位置为 [公式] , [公式] , [公式]

沿着d方向迈一步,步长为a

[公式] +0.5 [公式] = [公式]

[公式]

[公式]

可见函数在d方向发生位移a后增大了。若要让函数减小,那么可以沿着d的反方向 [公式] 进行尝试。

 

[3]Hessian矩阵

函数的二阶导数矩阵[公式] ,通常这样表示

因为连续函数的二阶混合偏导数与求导次序无关,所以这个矩阵是对称的。即是说

[公式]

所以这个矩阵是对称矩阵,行数和列数都是变量的个数 n

[4]线搜索方法

一维搜索,又可以叫线搜索,针对的是单峰区间或单峰函数,每次都是沿着x轴走,用于寻找函数在某一区间之内的极值点。

所谓单峰,顾名思义,你可以在头脑中形成这样一种情景:函数的图形画出来就像一个山峰一样,并且只有一个峰。

但是显然,很多函数并不是单峰的。尽管如此,只要我们确定这个函数在某一区间内是单峰的,那么我们仍然可以使用一维搜索技术来寻找极值点。

[5]信赖域方法

为函数划定一个边界,在这个边界(定义域)内,寻找函数的极值点。

信赖域方法根据一定的原则,直接确定位移 ,同时,与一维搜索不同的是,它并没有先确定搜索方向。如果根据“某种原则”确定的位移能使目标函数值充分下降,则扩大信赖域;若不能使目标函数值充分下降,则缩小信赖域。如此迭代下去,直到收敛。就找到了极值点。

[6]共轭梯度法

共轭方向法是介于最速下降法牛顿法之间的一种存在——它的收敛速度(二阶收敛)比最速下降法(线性收敛)快,同时它的计算量又比牛顿法要小,因此它的存在是有意义的。

需要注意,共轭方向法可以不使用目标函数的一阶导数信息(当然也可以使用)。所以,如果目标函数的一阶导数不容易求的话,共轭方向法可能就可以派上用场了。

共轭方向法的显著特征就是:两次搜索方向之间是有关联的,这种关联就是“共轭”。

[7]牛顿法

假设 [公式] 为凸函数且连续二阶可微,那么可以构造以下迭代格式:

[公式] 来逼近函数的极小值。

[8]拟牛顿法

牛顿法虽然收敛速度快,但是计算过程需要计算目标函数的hessian矩阵。不仅计算复杂度大,而且可能因为矩阵不是正定导致牛顿法失效。为了解决这两个问题,拟牛顿法出现了。

基本思想:不计算hessian阵,直接构造出可以近似hessian阵的对称正定阵,在这个条件下求解。涉及的算法包括:DFP算法,BFGS算法,L-BFGS算法。

[9]最速下降法

以负梯度方向作为极小化方法的下降方向的方法。(一句话概括)

[10]最小二乘法

在做数据建模或者曲线拟合的时候,我们通常会用到最小二乘法。假设作为数学模型的函数为 [公式] ,其中 S 为参数集向量(即一系列的参数), x 为自变量。在这种情况下,为了求出 S ,需要对下式进行极小化:

[公式]

对已知的一个数据集 xi(i=1,2,⋯,n) ,能极小化该式的 S 就是最优参数。

换个角度说,就是要拟合曲线的误差越小越好。

[11]单纯形法

一种解线性规划问题的办法。通过画单纯性表,做矩阵初等行变换,变到最后可能求出最优解,也可能不行。

猜你喜欢

转载自www.cnblogs.com/earsonlau/p/11360877.html
今日推荐