码迷,mamicode.com
首页 > 编程语言 > 详细

凸优化之优化、对偶、KKT-七月算法(julyedu.com)4 月机器学习算法班学习笔记

时间:2016-05-07 01:09:08      阅读:823      评论:0      收藏:0      [点我收藏+]

标签:

优化

一般优化问题的基本形式

minimizef0(x),xRn

s.t.fi(x)0,i=1?m

s.t.hj(x)=0,j=1?n

定义域为技术分享

m=n=0
时,约束优化问题退化成无约束优化问题

注意:这是是优化问题的一般形式,对

fi(x)
hi(x)
无特殊要求。就是并不要求这些函数一定可导,也不要求只有一个极值点,就是啥要求都没。

凸优化的基本形式

minimizef0(x),xRn

s.t.fi(x)0,i=1?m

s.t.hj(x)=0,j=1?n

fi(x)
为凸函数,
hi(x)
为仿射函数时,该优化问题就是凸优化问题。
凸优化在有一般优化为题的基础增加了对
fi(x)
hi(x)
的要求。

但是凸优化具有一个很好的性质
- 凸优化问题的局部最优解同时也是全局最优解

共轭函数

定义
技术分享

共轭函数是凸函数

当我们把

x
f(x)
都看成定值,而
y
看成变量,则
yTx?f(x)
可以看做关于的
y
的仿射变换(用人话说就是一条直线or平面,更高维就是一个超平面)。
超平面本身就是一个凸函数。另外
yTx?f(x)|xdomf
是一个关于
y
的超平面的集合。
而共轭函数技术分享的几何意义就求直线集合上确界,也就是逐点求最大,这个实际上是一个保凸运算。因此共轭函数还是一个凸函数

对偶问题

拉格朗日函数

一般优化问题

minimizef0(x),xRn

s.t.fi(x)0,i=1?m

s.t.hj(x)=0,j=1?n

该问题的拉格朗日函数为

L(x,λ,v)=f0(x)+λifi(x)+vihi(x)

当将

x
固定,那么拉格朗日函数就是关于
λ
v
的仿射函数

拉格朗日对偶函数

技术分享

可以看出拉格朗日对偶函数是对关于

λ
v
的仿射函数进行逐点球最小。

注意:即便原问题不是凸的,拉格朗日对偶函数也一定是凹的

可以发现拉格朗日对偶函数和共轭函数是具有十分相似特性。两者都是固定原问题的变量,而且都是逐点求最值。不同的是共轭函数是求上确界,而拉格朗日函数是求下确界

KKT条件

技术分享

技术分享

无约束/约束优化问题的必要条件对比

一般无约束问题 有约束优化问题
一般无约束问题(非凸),导数(梯度)等于0只是一阶必要条件,也就是说极值点一定满足梯度等于0,但是反过来满足梯度等于0的点不一定是局部极值点 一般有约束的问题(非凸),一阶KKT条件变成一阶必要条件,也就是说极值点一定满足KKT

也就是说,KKT条件就是对于只有等式约束下的拉格朗日乘子法的泛化,无约束优化问题的KKT调节是没有条件4和5的约束。条件4和5是针对不等式约束的

小结

一般优化问题,可以通过拉个朗日对偶或共轭函数的手段,将一般优化问题转化为一个对偶的凸优化问题。求一个凸优化问题的全局最优解是比直接求原问题的最优解要简单得到。我们可以通过KKT条件来找出对偶问题的局部最优解,也就是全局最优解了。

凸优化之优化、对偶、KKT-七月算法(julyedu.com)4 月机器学习算法班学习笔记

标签:

原文地址:http://blog.csdn.net/zhzhji440/article/details/51335597

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!