目录
5.1原问题primal 的 拉格朗日对偶问题 diality 的形式
凸优化基础知识
1.AI问题是什么?
总的而言:AI问题 = 模型 + 优化(训练)--------等价于------- 程序 = 数据结构 + 算法
模型举例: XGBOOST,SVM等
优化举例: SGD/GD EM等
2.对于常见的优化问题,我们可以写成什么形式?
需要注意的是:该形式指的是一般化的优化问题,并不是特指凸优化问题。
另外,我们习惯上对于【限制条件】用小于等于号,大家可以理解为【求最小值的限制条件是小于等于】。
3.针对一般的优化问题,我们从哪几个方向思考?
我们针对以下四个方向思考:标准形式 =》判断4个方面(凸性、连续性、约束性、光滑性);其中最重要的是函数的凸性,针对非凸函数的处理我们主要采用三种处理方式: 1、简单问题:暴力求解 2、可找到对偶问题:Relax放松约束,由对偶问题来近似(可能可以求出最优解)。 3、算法求解:比如采用SGD,这种方法一般都是找的局部最优解。
| 方面1 | Convex(凸函数) | Non-convex(非凸函数) |
| 凸性 | 一般可以获得全局最优解 | 一般只能获得局部最优解,一般由其对偶问题(例如拉格朗日)近似或全局最优求解。 |
| 方面2 | continuous(连续) |
discrete(离散的) |
| 连续性 |
| 方向3 | constrained(有约束条件) | un-constrained(无约束条件) |
| 约束性 | 转化为无约束(比如利用拉格朗日对偶duality转化) | 更容易处理 |
| 方向4 | smooth(光滑) | non-smooth(非光滑) |
| 光滑性 | 例如加了L1正则项后,非光滑;但是产生更多稀疏参数。 |
4.什么样的问题是凸优化问题?
4.1凸优化问题需要同时满足以下两个条件:
- 定义域:定义域为凸集。(后面4.2讲解如何判断)
- 优化函数(objective):优化函数为凸函数。(后面4.3讲解如何判断)
(思考:不满足凸优化问题,就不能采用凸优化只是去解决? 答:不是的,不满足可以寻找其对偶问题,如果对偶问题是凸优化问题呢?)
(对偶问题是什么?答:对偶问题你可以理解为 【函数图像=原问题(primal objective)】在湖面中的 【镜像=对偶dual问题】;其中求解函数图像的最小值====求解镜像的最大值,这里的等于是约等于,可能存在gap)
4.2.如何判断定义域是不是凸集合?
凸集的数学定义: 对任意的,如果可以推出
那么我们就称
是一个凸集。
凸集的直观理解: 到底指的是x,y线段(不是射线、线)上任意一点。(图中会证明)
非凸集举例:
4.3怎么判断目标函数是不是凸函数呢?
凸函数的数学定义: 函数的定义域为凸集,对于定义域内任意 ,函数满足:
,则称函数为凸函数。
凸函数的直观理解:记符号 ,
,下面证明为什么B在A的正上方,这不不是证明是否是凸函数喔,只是证明B在任何情况下都和A处于同一条垂直线,并未说明A和B的大小关系。
那么如何证明A,B之间的大小关系呢?或者说如何说明一个函数的B一定大于等于A,也就是B>=A时为凸函数。
如果采用定义判断,我们的确不好判断,因此我们采用它的充要条件进行等价判断。
主要有两种判断方法:
- 一阶凸性条件 判断法:充要条件(不常用)
- 二阶凸性条件 判断法:充要条件(最常用)
一阶凸性条件的数学条件:右图是非正式的证明,直观的理解
待补充正式的证明:【-------------------------------------------】
二阶凸性条件的数学条件:常用。
注意:多元函数的二阶导数为 海森矩阵 ,里面的0的意思是:要求目标函数的海森矩阵为半正定矩阵。(
意思不同)
预备知识:
5. 利用拉格朗日对偶性duality来解决非凸问题
利用对偶性本质是是对原问题进行 relax ,简化求解过程,但是不代表一定可以找到全局最优解,这在学术界依然是一个开放性问题。
5.1原问题primal 的 拉格朗日对偶问题 diality 的形式
如何证明拉格朗日对偶是一个对偶问题。
上面介绍了,如何证明拉格朗日对偶条件是一个对偶条件。
5.2 拉格朗日强对偶怎么证明(不完全版本)
1、 slater's conditious(强对偶充要条件)
上面说了拉格朗日弱对偶一定会发生,但是什么情况下是强对偶呢?
利用 slater's conditious :如果满足原问题是凸优化问题(前提),并且至少存在绝对一个绝对可行点(什么叫绝对可行点,就是一个可以让所有不等式约束都不取等号的可行点),且满足等式约束,那么就具有强对偶性。这个条件就是传说中的Slater’s condition。
2、对偶问题互补松弛性(complementary slackness)
这是kkt条件中的一部分,也是保证了对偶问题的最优解(x和值)对应原问题的最优解。 个人感觉是必要条件
6.接下来的一篇博客将证明常见的凸集 和 凸函数。