C_SVC推导
1. 模型假设
假设现在有训练数据 X ,是 m∗n 的矩阵, m 是样本数量, n 是样本向量的维数,记样本中第 i 个样本为 x(i) ,标签为 y(i) , y∈{+1,−1}
现在考虑二分类问题,样本的标签为 y⃗ ,是 m∗1 的向量。
目的,找到一个最优的相关面,以方程 w⃗ ∗x⃗ +b=0 表示,其中 w⃗ 是一个 n∗1 维向量,按照线性代数的记号,记为:
wTx+b=0
|wTx(i)+b| 为第 i 个点到分离面的距离, γ^(i)=y(i)(wTx(i)+b) ,为函数间隔,对于所有的样本 γ^(i)>=0 ,因为 y(i) 和 wTx(i)+b 符号相同,找到这样一个分离面,使得所有样本到分离面的距离最大,即是任务所在。
为了归一化表示,因为 w 和 b 的成比例变化,并不影响分离面的位置,因此要归一化。 γ(i)=y(i)(wT||w||x(i)+b||w||) 记为几何间隔。
几何间隔的最小值为
γ=minwγ(i)
2. 优化问题
任务为,找到最优的 w 使得最下的几何间隔最大:
maxwγ s.t.y(i)(wTx(i)+b)>=γ
等价于
maxwγ^||w|| s.t.y(i)(wT||w||x(i)+b||w||)>=γ||w||
即
maxws.t.γ^||w||y(i)(wTx(i)+b)>=γ^
令
γ^=1 且最大化
1||w|| 等价于最小化
12||w||2
最终,优化问题化为:
minw12||w||2 s.t.y(i)(wTx(i)+b)>=1
3. 软间隔
样本有可能不会完全能硬性区分,存在噪点,在正负样本之间相互渗透,要允许软性区分。利用正则化,放松一个点到分离面的距离的约束,即函数间隔 γ^=y(i)(wTx(i)+b)>=1−ξ(i) ,但是每放松一个 ξ(i) 就要支付一个代价 Cξ(i) ,则优化函数变成
minw12||w||2+C∑mi=1ξ(i) s.t.y(i)(wTx(i)+b)>=1−ξ(i) ξ(i)>=0
4. 拉格朗日对偶和KKT条件
4.1 导出对偶形式
假设有如下问题
minwf(w) s.t.gi(w)<=0 hi(w)=0
有一组 α>=0,β>=0 ,组成拉格朗日函数形式
L(w,α,β)=f(w)+∑mi=1αigi(w)+∑mi=1βihi(w)
在满足原问题的约束条件下,有
f(w)=maxα,βL(w,α,β)
原问题化为
minwmaxα,βL(w,α,β)
注意 w 和 α,β 的位置和顺序
考虑对偶问题 minwL(w,α,β)<=L(w,α,β)
而原等价问题中 maxα,βL(w,α,β)>=L(w,α,β)
得
d∗=maxα,βminwL(w,α,β)<=minwmaxα,βL(w,α,β)=p∗
即对偶问题恒小于等于原问题
可以看出,在某些条件下是可以取等号的
4.2 kkt的必要性证明
假设现在有最优解使得 d∗=p∗,(w=w∗,α=α∗,β=β∗) ,拉格朗日函数恒为凸函数,即最优解定在原空间导数为零的位置取得。
有:
f(w∗)=minwL(w,α∗,β∗)=<=<=minwf(w)+∑i=1mα∗igi(w)+∑i=1mβ∗ihi(w)f(w∗)+∑i=1mα∗igi(w∗)+∑i=1mβ∗ihi(w∗)f(w∗)
则不等式取等号,由倒数第二行有:
∇wf(w∗)=0α∗igi(w∗)=0gi(w∗)<=0αi>=0(稳定性条件,stationarity)(对偶互补条件,complementaryslackness)(原问题约束,primalfeasibility)(对偶问题约束,dualfeasibility)
对偶互补条件是由于
gi(w∗)<=0 且
αi>=0 且
∑α∗igi(w∗)=0 ,由于每一项都小于等于0,要取得和等于零,只能是每一项都等于0.
4.3 kkt的充分性证明
假设现在有 (w=w∗,α=α∗,β=β∗) 满足kkt条件:
有:
f(w∗)==f(w∗)+∑i=1mα∗igi(w∗)+∑i=1mβ∗ihi(w∗)minwL(w∗,α∗,β∗)
那么,
d∗=maxα,βminwL(w,α,β)=maxα,βf(w∗)=minwf(w)=p∗
5.软间隔的对偶表达
含有软间隔的问题为:
minw12||w||2+C∑mi=1ξ(i) s.t.y(i)(wTx(i)+b)>=1−ξ(i) ξ(i)>=0
拉个朗日函数:
L(w,ξ,α,β)=12||w||2+C∑i=1mξ(i)+∑i=1mα(i)−∑i=1mα(i)ξ(i)−∑i=1mα(i)y(i)(wTx(i)+b)−μ(i)ξ(i)
求kkt条件:
∇wL(w,ξ,α,β)=w−∑mi=1α(i)y(i)x(i)=0
∇bL(w,ξ,α,β)=−∑mi=1α(i)y(i)=0
∇ξL(w,ξ(i),α,β)=C−α(i)−μ(i)=0
α(i)(1−ξ(i)−y(i)(wTx(i)+b))=0
μ(i)>=0
α(i)>=0
以上的拉个朗日均不显示的写出
b ,带入拉格朗日函数得:
L(w,ξ,α,β)=−12∑mi=0∑mj=0α(i)α(j)y(i)y(j)x(i)Tx(j)+∑mi=1α(i)
优化问题就变成了:
minα12∑mi=0∑mj=0α(i)α(j)y(i)y(j)x(i)Tx(j)−∑mi=1α(i) s.t.0<=α(i)<=C ∑mi=1α(i)y(i)=0
上面的kkt条件中, g(w)=1−ξ(i)−y(i)(wTx(i)+b) ,表示点到分离面的最大函数间隔
由对偶互补条件 α(i)g(i)(w)=0 ,如果 α(i)>0 则 g(i)(w)=0 ,那么 α(i) 对应的点是支撑向量,应当保留下来。当 α=0 时,则是否为支撑向量均已无意义,在求和中不影响,所以不必记录。
6. 核函数
核函数即选择函数 K(x,y)=ϕ(x)Tϕ(y) ,其中 ϕ(x) 为从 n 维空间到另一个空间的映射,核函数表示映射后的点积。核函数的引入是为了解决非线性分割的问题,径向基核如高斯核用泰勒展开理论上可以映射到无限维上去。
将核函数带入上面的待优化方程中,写为:
minα12∑mi=0∑mj=0α(i)α(j)y(i)y(j)K(x(i),x(j))−∑mi=1α(i) s.t.0<=α(i)<=C ∑mi=1α(i)y(i)=0
7 经典SMO算法
将待优化的函数视为一个二元函数,假设现在要优化 α(1) 和 α(2) ,为了方便 α 均用下标,可以写为:
minα1α2s.t.ψ(α1,α2)=12α21K11+12α22K22+α1α2y1y2K12−(α1+α2)+α1y1v1+α2y2v2+constant0<=α1<=C,0<=α2<=Cv1=∑i=3mαiyiK1i,v2=∑i=3mαiyiK2iα1y1+α2y2=ζ=−∑i=3mαiyi
将
α1=y1(ζ−α2y2) 带入,注意
yi∗yi=1
得 :
ψ(α2)=12(ζ−y2α2)2K11+12α22K22+(ζ−y2α2)α2y2K12 −(y1ζ−y1y2α2+α2)+(ζ−α2y2)v1+α2y2v2
求导得:
∂ψ∂α2=(K11+K22−2K12)α−ζy2K11+ζy2K12+y1y2−1−y2v1+y2v2=0
这里的
α2 即是优化后的
α2 ,记为
αnew2
此时依照kkt条件,可以得出决策函数为
f(x)=∑mi=1αiyiK(xi,x)+b
可得:
v1=f(x1)−α1y1K11−α2y2K12−b v2=f(x2)−α1y1K12−α2y2K22−b
定义
Ei=f(xi)−yi 则
E1=f(x1)−y1
E2=f(x2)−y2
带入
∂ψ∂α2
最后得:
αnew2=αold2+y2(E1−E2)K11+K22−2K22
检查约束条件,当
y1=y2, 有
α1+α2=k,k=±ζ ,
令
α1=0 上截距
H=min(C,α1+α2)
令
α1=C 下截距
L=max(0,α1+α2−C)
当
y1≠y2 有
α1−α2=k,k=±ζ
令
α1=0 上截距
H=min(C,C+α2−α1)
令
α1=C 下截距
L=max(0,α2−α1)
此时对
α2 进行截取
αnew2=⎧⎩⎨⎪⎪Hαnew2L,αnew2>=C,0<αnew2<C,αnew2<=0
截取后得
由
y1αnew1+y2αnew2=y1αold1+y2αold2=ζ
得
αnew1=αold1+y1y2(αold2−αnew2)
更新完
α1 和
α2 之后,则需要更新
b ,由于在原问题中,当
0<αi<C 时,该向量对应着支撑向量,此时不需要放松
ξi=0
因此有
yi(f(x))=1 ,即
yj(∑mi=1αiyiK(xi,xj)+b)=1
若j=1
b=bnew1=y1−∑mi=3yiαiKi1−α1y1K11−α2y2K12
将
E1=∑mi=3αiyiKi1+αold1y1K11+αold2y2K12+bold−y1 带入上式,得
b=bnew1=−E1−y1(αnew1−αold1)K11−y2(αnew2−αold2)K12+bold
若j=2
b=bnew2=y2−∑mi=3αiKi2−α1K12−α2K22 得
b=bnew2=−E2−y1(αnew1−αold1)K12−y2(αnew2−αold2)K22+bold
若同时满足约束,则上面两式子相等,将
α1 和
α2 带入即可得
若都不满足约束,即都在边界上取得,Patt的原文说在
b1 和
b2 之间的数都满足kkt条件,故取
bnew1+bnew22 ,因为当
αi=0 有kkt条件
yj(∑mi=1αiyiK(xi,xj)+b)>=1==>yjEj>=0
αi=C 有kkt条件
yj(∑mi=1αiyiK(xi,xj)+b)<=1==>yjEj<=0 ,也可以用函数间隔来理解,当
αi=0 时远离分离面,函数间隔大于等于1,当等于C的时候超过了分离面,函数间隔必然小于等于1.
证明方法,将
αnew1 和
αnew2 分别以
αold1−λy1E1−E2η 和
αold2+λy2E1−E2η 替代。
λ∈[0,1) 表示剪辑后的系数,带入
bnew=tbnew1+(1−t)bnew2 中,再联立
b1 ,
b2 的公式和更新
E 的公式得:
{Enew1=(1−t)(1−λ)(E1−E2) Enew2=−t(1−λ)(E1−E2)
然后将
α1 、
α2 和
y1 、
y2 的各种情况代入讨论,最后都是满足KKT条件的