机器学习第四课:SVM前置知识点(凸优化问题)

内容主要来源于 大数据文摘

1 高数教材中拉格朗日乘子法的泛化

1.1 高数教材中的拉格朗日乘子法

我们大学时讲了这个计算条件极值的方法,运用拉格朗日乘数法(乘子法)

{minf(x)s.t.hi(x)=0i=1,2...,n

第一行就是目标函数,第二行是约束函数。我们就是想在h(x)=0一系列函数的约束下,求f(x)的最小值。我们可以用(1)式中的方法求解
min[f(x)+i=1nλihi(x)](1)

这当然是个很简单的事件了。但是这是绝对是个特例。你看啊,上面的约束条件都是等式,但事实上很多情况都是不等式。这就是我们的拉格朗日乘数法(乘子法)的扩展KKT问题。

1.2 KKT(Karush–Kuhn–Tucker conditions)问题

在1.1中,约束机制的泛化了的就是KKT。KKT的名字让人的意思不明所以,其实就是一般约束优化问题极值点一阶必要条件:
如果 x 是约束条件的局部最小,那么有如下条件

s.t.gi(x)=0i=1,2...,ps.t.hj(x)0j=1,2...,qf(x)=i=1pμigi(x)+j=1qλjhj(x)λj0j=1,2...,qλjhj(x)=0j=1,2...,q

因为可以利用正负号更改最大最小,大于等于号,所以上式基本可以表达所有情况。
但一定要注意大于号的方向。
那么这就是变成解 x 的行为。(同时也要注意,上式仅仅是必要条件。)
为什么”极值点’一阶‘必要条件”?在第三个式子解出的 x 是驻点,我们同时需要判断二阶Hassion矩阵。这个式子是怎么来?还得从凸函数好好说起。

2 凸函数

我按照点集的观点重新审视下点线面。初中时,遇到一种四边形的说法“凸四边形”,“凹四边形”。老师讲凸四边形就是“四个角都凸出来的,如平行四边形梯形等;凹四边形就是有角凹进去了的四边形,如下图”。
机器学习第四课:SVM前置知识点(凸优化问题)_第1张图片

这么说的确很容易理解,但不是数学语言。详细描述这个问题很复杂,可以先从点集入手。

2.1 仿射,凸集

基础:过两点 x1,x2 的直线表示为 x=θx1+(1+θ)x2,θR ,即 Ax=b 的解。我们借助直线定义仿射。

如果一个集合 CRn 是仿射的,则过C中两点间的直线(注意不是线段)也在C中,例如上面的 x=θx1+(1+θ)x2,θR 注意 CR

如果一个集合 CRn 是凸的,则过C中两点间的线段(注意不是直线段)也在C中。即对于任意 x1,x2C ,有 x=θx1+(1+θ)x2,1θ0 注意 CR
下图中左边是凸的,右边不是凸的
机器学习第四课:SVM前置知识点(凸优化问题)_第2张图片

2.2 凸函数

  • 凸集合交集是凸集
  • 凸函数的定义是根据凸集来的:
    f(x)是凸函数,则有
    f(λx1+(1λ)x2)λf(x1)+(1λ)f(x2)

    f称为I上的凸函数,当且仅当其上境图(在函数图像上方的点集)为一个凸集
  • 凸函数与我们以前接触的函数不一样。因为是翻译问题,数学上的因为形状凹下去,所以将Convex翻译为凹函数,但Convex Set又叫凸集合来定义的。这里有必要把老版本翻译的凹函数凸过来。

2.3凸函数的性质

  • 一元二阶可微的函数在区间上是凸的,当且仅当它的二阶导数是非负的;这可以用来判断某个函数是不是凸函数。如果它的二阶导数是正数,那么函数就是严格凸的,但反过来不成立。根据上节课的经验,当一元变为多元时,可以判断Hassion矩阵是否正定。
  • 保凸运算(这个很重要)
    1. f是凸函数,自变量的线性组合,f(Ax+b)也是凸函数
    2. f1,,fm 为凸函数, w1,,wm0 ,则 mi=1wifi 也是凸函数
    3. f1,,fm 为凸函数,逐点最大 f(x)=sup{f1(x),,fm(x)} 也是凸函数。这条性质跟实际应用时可以给正则化一个解释。加了正这则化的凸函数也是凸函数,所以正则化对原函数的解题方法无影响。
    4. g,h为凸函数,扩展的h非递减(这条性质很重要)。则f(x)=h(g(x))也是凸函数。
  • 对于凸函数f的 α 水平子集 Sα={x|f(x)a} 是凸集。水平子集是凸集的函数不一定是凸函数。这样的函数称为拟凸函数。

2.2 凸优化问题

还是回到上面我们的条件极值问题,我们这里加上几个条件,让它变成的功能强大的函数:

minimizef(x){s.t.gi(x)=0i=1,2...,ps.t.hj(x)0j=1,2...,q

但我们做了额外要求:
1. 目标函数是凸函数我们的目标函数f(x)是凸函数
2. 不等式约束函数也是凸函数,这里要注意不等号的方向。有些数不等号方向不同,这里一定要注意。这条要求的实质条件是 围成的可行域交集是个凸集。由于具有不同的形式,在后面推导KKT的过程会有不同。
3. 等式约束(这里的 gj(x) )必须是仿射的。
这就是在一个凸集上极小化一个凸的目标函数问题。
凸优化问题的局部最优等于全局最优
我们费尽心思搞的凸优化形式,目的就是就求目标函数在可行域上的的极值。这里是可行域,因为还会有正无穷或负无穷(但我们视为可行域是空的,如求y=x的极值)。

凸优化里面,KKT不仅仅是必要条件,而是充分必要条件
具体原因还得详细解释下KKT的由来。

3 KKT(Karush–Kuhn–Tucker conditions)问题的解释——对偶问题

3.1 普通的条件极值问题

首先我们不管什么凸函数不凸函数。还是熟悉的条件极值问题。

注意:目标函数*“最小化问题”*与h函数的*“不等号方向”*是配对的;
上面的同样的式子为了普遍性,故意不转化成这种情况。

minimizef(x){s.t.gi(x)=0i=1,2...,ps.t.hj(x)0j=1,2...,q

然后我们用拉格朗日法合并目标函数与约束:
L(x,μ,λ)=f(x)+pi=1μigi(x)+qj=1λjhj(x)
这下我们知道 L(x,μ,λ) 是关于 μ,λ 的仿射函数。
λ0,x0 为一个区域内符合条件的点时,我们取区间D内x的逐点最小值,就是下确界inf,有:
g(μ,λ)=infxDL(x0,μ,λ)=f(x0)+i=1pμigi(x0)+j=1qλjhj(x0)

L(x,μ,λ) 是关于 μ,λ 的仿射函数(我们暂定算凹的),那么 g(μ,λ) 应该算凹(或者仿射)吧,但肯定是非凸的。
我们还知道了 f(x0) 后面的项一个负数,一个零。肯定有
g(μ,λ)f(x0)+i=1pμigi(x0)+j=1qλjhj(x0),g(μ,λ)f(x0)

这样区间内x的最优解 x 肯定有
g(μ,λ)f(x)=p

3.2 对偶问题

那么任意一个相似条件极值(我没说凹凸性)都可以求它的对偶问题,且这个对偶问题是个凸优化问题:

maximizeg(μ,λ)s.t.λ0

设整理这里最优值为 d ,那么 dp

但是当“强对偶”现象情况发生时,等号成立。
什么时候“强对偶”现象发生?
答:原问题是个凸优化问题。。。

在经过一些不重要的证明(我懒不想写)我们得到凸优化求全局极值的充分必要条件就是KKT。。。。

你可能感兴趣的:(机器学习)