凸优化

凸优化

1、无约束优化问题
1)为什么要做优化问题?

 

2)如何优化?

方法一:无约束优化直接分析法

 

泰勒级数展开(标量):

 

泰勒级数展开(矢量):

 

无约束优化直接分析法的缺陷:

1、可能这个函数就不可导

2、函数可以求导,但是变量很多,求不出导数为0的x

3、就算求出了解,但是这个解可能是个集合

方法二:无约束优化迭代法

无约束优化迭代法的基本结构

 

无约束优化迭代的方法:

第一种:梯度下降法,沿负梯度方向,只使用了一阶导数:搜索比较慢,等值线上显示为Z型走法,轨迹是相互正交的。

第二种:牛顿法。在一阶导数的基础上考虑了二阶导数,性能会更好一点。涉及到了海森矩阵求逆,可能不可逆,比如半正定或者半负定,要做适当修正。等值线上走的是直的。

第三种:拟牛顿法。使用梯度信息去生成对于海森逆矩阵的连续低秩估计。收敛速度比牛顿法相当,但是计算复杂度低很多。

2、有约束优化问题
1)凸集

凸集:简单理解为集合中任意的两个点的连线,均在集合内。

 

2)凸函数

 

凸函数判定的两个方法:

方法一:一阶充要条件

 

方法二:二阶充要条件

 

总结:

这两种判别方法在判别一个问题是否为凸问题时,往往不能有效的得到结果,因为对于某些问题,他们的一阶导和二阶导并不好求,因此便引出了我们的凸优化问题

2)凸优化问题

(1)概述

如果一个实际的问题可以被表示成凸优化问题,那么我们就可以认为其能够得到很好的解决。常用的解决凸问题的算法有等式优化、内点法等。

对于一个实际问题,如果不能确定其是否为凸函数,便涉及到本章的凸优化的一些方法,比如KKT条件,对偶法等。

如果这个问题是凸问题,那么这些方法解出的极值点就是全局的极值点,如果这个问题不是凸问题,那么这些方法解出的极值点很可能是局部极小点。

(2)KKT条件

KKT条件的基本思想是如何将约束优化问题转化为无约束优化问题。

 

原文地址:https://www.cnblogs.com/yongfuxue/p/10038584.html