从凸优化到SVM

开个新坑,总结下最近看的凸优化的东西,主要来自于CS229的讲义。前半部分介绍凸优化的问题定义,后半部分介绍对偶问题和KKT条件,并使用SVM作为例子,展示凸优化在机器学习中的应用。这部分也是SVM理论部分不太好理解的部分,希望我能把它梳理清楚明白。

 

 

凸函数

 

介绍凸函数之前,首先介绍凸集。函数必须定义在凸集上,才能有后续是否是凸函数的讨论。

 

凸集

 

若集合$C$中任取两个元素$x$和$y$,对于任意$\theta \in [0,1]$且$\theta \in \mathbb{R}$,都有下面的不等式成立,则集合$C$是凸集:

 

这句话翻译成不严谨的几何描述,就是在集合$C$中任取两点画一条线段,那幺线段上的所有点都必须在$C$内,如下图所示。为何是这样呢?设$t = \theta x + (1-\theta) y$,稍作变形,可以得到,$t – y = \theta(x-y)$。这说明,$t-y$和$x-y$两个向量共线,也就是这三点共线。由$\theta$的取值范围,进一步知道,$t$在两点之间。这样,我们就把上面抽象的式子和下面直观的图建立了联系。

 

 

下面不加证明给出几个特殊的凸集:

$\mathbb{R}^n$
$\{ x; \Vert x\Vert_p \le 1\}$,可以用范数的三角不等式证明
凸集的交集

凸函数

 

与凸集的定义相类似,如果一个函数$f$定义在凸集上,而且对于其定义域上的任意两个变量取值$x$和$y$,对于任意$\theta \in [0,1]$且$\theta \in \mathbb{R}$,都有下式成立,则函数$f$是凸函数:

发表评论

电子邮件地址不会被公开。 必填项已用*标注