参考资料:
1.凌青老师的凸优化课(b站)
2.Stephen Boyd的《凸优化》中译本(清华大学出版社)
文章目录
- 什么是优化(Optimization)
- 优化问题的数学表达形式
- 举例1
- 举例2(数据拟合问题)
- 优化问题的分类
- 线性规划、非线性规划
- 凸规划、非凸规划
- 其他分类
什么是优化(Optimization)
优化(optimization)又叫数学规划(Mathematical Programming)。
优化:从一个可行解的集合中,寻找出最优的元素。
三要素缺一不可:可行解的集合、寻找的方法、有最优的元素。
优化问题的数学表达形式
其中:
称为优化变量(Optimization Variable),是一个向量
称为目标函数(Objective Function),它是一个n维空间到1维空间的映射,即 。
是一组不等式约束(Inequality Constraint),
我们的目标是找到一个 ,是一个最优解(Optimal)。
如果是一个Optimal,那么它等价于:
存在任意向量 ,满足所有的约束条件 的情况下,有:
上面集合称为可行解集(feasible set)。
最优解同样可能存在最优解集,即不止有一个最优解。
举例1
以一元函数举例,图:
求[-1,1]区间内函数最小值。
转化为优化问题:
目标函数:
可行解集:
求最优解(解得 )
举例2(数据拟合问题)
有一组样本点(二维坐标系为例),需要拟合出一条线。
我们设这条线为一个二项式 ,各项的系数a、b、c为待估参数,设为向量。
目标函数:,为各样本点。
求最优解,这是一个典型的最小二乘问题。
优化问题的分类
线性规划、非线性规划
若优化问题中,目标函数和约束函数 都是线性函数,即对任意的 和 ,都有:
那么这样的优化问题称为线性规划。
如果 中有一个不是线性函数,那么该问题称为非线性规划。
给个线性规划的图例:
图中的五边形是由5个线性函数构成的可行解集,因为约束函数都是线性函数,所以可行解集一定长成这样的五边形形状。
同时,目标函数也是一个线性函数,我们把目标函数放在空间中,它就会以不同的等高线呈现来表示它的值。
如果箭头方向为下降的方向,那么它的最优解就在标出的黑点上。
凸规划、非凸规划
曾经人们把线性规划和非线性规划问题定义成简单问题和困难问题,后面发现把凸规划定义成简单问题,非凸规划定义成困难问题更好。
任意的线性规划问题一定是凸规划。凸规划可看成线性规划的扩展。
如果目标函数和约束函数都是凸函数,即对任意的 和 ,且满足 ,下列不等式成立:
这样的函数即为凸函数。
目标函数和约束函数都是凸函数的问题就是凸规划问题,也叫凸优化问题。
以上可见凸性是较线性更为一般的性质。因为它只需要满足不等式就行了。仅仅加上了一个α和β的取值限制。
其他分类
①光滑优化问题、非光滑优化问题
光滑和非光滑针对目标函数而言。
光滑函数意味目标函数在定义域上所有点都可微。
②连续优化问题、非连续优化问题
正对可行域而言。
如果可行域是连续的,为连续优化问题(如上面的五边形图)。
可行域是离散的,即为非连续优化问题。离散问题一般都是困难问题。
③单目标问题、多目标问题
对于多目标问题,比如我们想要优化两个目标函数:
这就是多目标问题。
对于,我们常可画出两个函数值的曲线:
这条线又称帕累托曲面(Pareto front),我们难以找到一个点让两者最优,一般需要找个折中点。
所以我们一般需要将两者取加权,将多目标转化成单目标问题:
这只是一种解决方法,可能不一定有效。