支持向量机之对偶学习算法(二)

接上节

这里讲的是支持向量机的拉格朗日

    • 对偶学习算法
      • 拉格朗日对偶性问题
        • 原问题
        • 对偶问题
        • 原始问题与对偶问题的关系
      • KKT条件
    • 对偶学习算法接上
      • 求解colorRedwb
      • 线性可分支持向量机学习算法
      • 支持向量

对偶学习算法

上节的问题是:


minw,b12||w||2
s.t.yi(wxi+b)10i=1,2,...,N

需要求解的是: w,b

构建拉格朗日函数(Lagrange function),设对不等式约束的拉格朗日乘子(Lagrange multiplier)是 αi0,i=1,2,...,N

拉格朗日函数是:


L(w,b,α)=12||w||2Ni=1αiyi(wxi+b)+Ni=1αi

其中, α=(α1α2,α3,...,αN)T 为拉格朗日乘子向量。

拉格朗日对偶性问题

原问题

假设 f(x),ci(x),hj(x)Rn


minxϵRnf(x)
s.t.ci(x)0i=1,2,...,k
hj(x)=0,j=1,2,...,l

称此约束最优化问题为原始最优化问题或者原始问题.

对于广义拉格朗日函数(generalized Lagrange function):
L(x,α,β)=f(x)+ki=1αici(x)+lj=1βjhj(x)

这里 x=(x(1),...,x(n))TϵRnαi,βjαi0
考虑关于函数
θP(x)=maxα,β,αi0L(x,α,β)

下标 P 表示原问题
对于某个违反约束条件的 x ,存在 i 使得 ci(w)0 或者存在 j 使得 hj(w)0 ,就可是 θP(x) 趋向于无穷大。
也就是说:
当存在 i 使 ci(x)0 ,令 αi 无穷大,其他的 α==0 .
当存在 j 使得 hj(x)0 存在 βj 使得 βjhj(x) 无情大,其他的 β==0
上面两个情况都可能使得 θP(x) 无穷大

x 满足约束条件则 θP(x)=f(x)
即:



考虑极小化问题


minxθP(x)=minxmaxα,β;αi0L(x,α,β)

minxmaxα,β;αi0L(x,α,β)广

原始问题的最优值: p=minxθP(x)

对偶问题

定义 :


θD(α,β)=minxL(x,α,β)

在考虑极大化问题:

maxα,β;αi0θD(α,β)=maxα,β;αi0minxL(x,α,β)

问题 maxα,β;αi0minxL(x,α,β)广

对偶问题的最优值; d=maxα,β;αi0θD(α,β)

原始问题与对偶问题的关系

1.原始问题的最优值等于对偶问题的最优值
2.原始问题最优值时候的最优解也是对偶问题的最优解

KKT条件

设函数 f(x)ci(x) 是吐函数, hj(x) 是放射函数,不等式约束 ci(x) 是严格可行的,则 x,α,β 分别是原始问题和对偶问题的解的充分必要条件是 x,α,β 满足下列条件:


xL(x,α,β)=0
αL(x,α,β)=0
βL(x,α,β)=0
αici(x)=0,i=1,2,3,...,k
ci(x)0,i=1,2,3,...,k
αi0,i=1,2,3...,k
hj(x)=0,j=1,2,...,l

关于KKT的一个例子

更多对偶问题的连接

对偶学习算法(接上)

下面继续

原始问题的对偶问题是极大极小问题:
maxαminw,bL(w,b,α)
先求极小化问题,再求极大化问题
(1)求 minw,bL(w,b,α)
拉格朗日函数是:


L(w,b,α)=12||w||2Ni=1αiyi(wxi+b)+Ni=1αi

其中, α=(α1α2,α3,...,αN)T 为拉格朗日乘子向量。

将拉格朗日函数 L(w,b,α) 分布对 w,b,α 求偏导数,并令其等于0。


wL(w,b,α)=wNi=1αiyixi=0
bL(w,b,α)=Ni=1αiyi=0

即:

w=Ni=1αiyixi
Ni=1αiyi=0

将上市带入拉格朗日函数中,可得到:
L(w,b,α)=12Ni=1Nj=1αiαjyiyj<xi,xj>Ni=1αiyi(<Nj=1αjyjxj,xi>+b)+Ni=1αi

= 12Ni=1Nj=1αiαjyiyj<xi,xj>+Ni=1αi

说明:
1. <xi,xj> 是点乘,对应元素相乘再求和, xi,xj 都是列向量
2. wx 这里也是点乘的意思,结果是一个数。

(2)求 minw,bL(w,b,α) α 的极大值


maxα12Ni=1Nj=1αiαjyiyj<xi,xj>+Ni=1αi
s.t.Ni=1αiyi=0
αi0,i=1,2,...,N

上面的极大化问题可以转化成极小化问题:

minα12Ni=1Nj=1αiαjyiyj<xi,xj>Ni=1αi
s.t.Ni=1αiyi=0
αi0,i=1,2,...,N

满足 KKT 条件存在最优解 α=(α1,α2,...,αN)T

求解 w,b

α=(α1,α2,...,αN)T 是对偶问题的最优解,则存在下标 j ,使得 αj0 ,则原始问题的最优解:


w=Ni=1αiyixi
b=yjNi=1αiyi<xi,xj>

证明:
KKT条件成立:

wL(w,b,α)=wNi=1αiyixi=0
bL(w,b,α)=Ni=1αiyi=0
αj(yi(<w,xi>+b)1)=0,i=1,2,...,N
yi(<w,xi>+b)10 ,i=1,2,…,N
αi0 ,i=1,2,…,N


得到: w=Ni=1αiyixi

之前已经讲过 w=0 不是原始问题的最优解
可知道一定存在 j 使 αj0
由于 αj(yj(<w,xj>+b)1)=0
可知道 yj(<w,xj>+b)1=0
带入所求的 w
得到: b=yjNi=1αiyi<xi,xj>

分离超平面是:


Ni=1αiyi<x,xi>+b=0

分类决策函数:

f(x)=sign(Ni=1αiyi<x,xi>+b)

线性可分支持向量机学习算法

输入: 线性可分训练数据集 T={(x1,y1),(x2,y2),...,(xN,yN)} , yϵ(+1,1)
输出:分离超平面和分类决策函数

(1)构造并求解约束最优化问题


minα12Ni=1Nj=1αiαjyiyj<xi,xj>Ni=1αi
s.t.Ni=1αiyi=0
αi0,i=1,2,...,N

求得最优解是: α=(α1,α2,α3,...,αN)T

(2)求 w,b


w=Ni=1αiyixi
b=yjNi=1αiyi<xi,xj>

(3)计算分离超平面
分离超平面是:


<w,x>+b=0

分类决策函数:

f(x)=sign(<w,x>+b=0)

说明:
1.上面计算的 w,b 只依赖于训练集中的 αi0xi,yi
2.对 αi0

支持向量

训练集中对应 αi0(xi,yi)

αi0 时候,根据KKT条件可知道


yi(<w,xi>+b)1=0

即:

<w,xi>+b=±1

支持向量机之对偶学习算法(二)_第1张图片

如上图所示: <w,xi>+b=±1 是间隔的边界,此时的 xi 就是支持向量点

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