凸优化
1、无约束优化问题
1)为什么要做优化问题?
2)如何优化?
方法一:无约束优化直接分析法
泰勒级数展开(标量):
泰勒级数展开(矢量):
无约束优化直接分析法的缺陷:
1、可能这个函数就不可导
2、函数可以求导,但是变量很多,求不出导数为0的x
3、就算求出了解,但是这个解可能是个集合
方法二:无约束优化迭代法
无约束优化迭代法的基本结构
无约束优化迭代的方法:
第一种:梯度下降法,沿负梯度方向,只使用了一阶导数:搜索比较慢,等值线上显示为Z型走法,轨迹是相互正交的。
第二种:牛顿法。在一阶导数的基础上考虑了二阶导数,性能会更好一点。涉及到了海森矩阵求逆,可能不可逆,比如半正定或者半负定,要做适当修正。等值线上走的是直的。
第三种:拟牛顿法。使用梯度信息去生成对于海森逆矩阵的连续低秩估计。收敛速度比牛顿法相当,但是计算复杂度低很多。
2、有约束优化问题
1)凸集
凸集:简单理解为集合中任意的两个点的连线,均在集合内。
2)凸函数
凸函数判定的两个方法:
方法一:一阶充要条件
方法二:二阶充要条件
总结:
这两种判别方法在判别一个问题是否为凸问题时,往往不能有效的得到结果,因为对于某些问题,他们的一阶导和二阶导并不好求,因此便引出了我们的凸优化问题
2)凸优化问题
(1)概述
如果一个实际的问题可以被表示成凸优化问题,那么我们就可以认为其能够得到很好的解决。常用的解决凸问题的算法有等式优化、内点法等。
对于一个实际问题,如果不能确定其是否为凸函数,便涉及到本章的凸优化的一些方法,比如KKT条件,对偶法等。
如果这个问题是凸问题,那么这些方法解出的极值点就是全局的极值点,如果这个问题不是凸问题,那么这些方法解出的极值点很可能是局部极小点。
(2)KKT条件
KKT条件的基本思想是如何将约束优化问题转化为无约束优化问题。