1.1. SVM
1.1.1. 支持向量机的基本型
思想:找到一个划分两类训练样本的超平面,并使间隔最大化。
(1)超平面:表达式
wTx+b=0
(2)函数间隔
定义样本点 (xi,yi)到超平面( w,b)函数间隔为:
γi^=yi(wTxi+b)
函数间隔为正表明分类正确,负表明分类错误,因此函数间隔可以表示分类预测的正确性;
在超平面保持不变的情况下,等比例缩放 w、b,会导致函数间隔也等比例缩放,因此需要进行约束。
(3)几何间隔
样本点 (xi,yi)到超平面( w,b)几何间隔为:
γi=∥w∥∣∣wTxi+b∣∣
几何间隔的物理含义是点到超平面的距离,即使超平面参数等比例发生变化,几何间隔仍保持不变
<stron>
若点坐标为 (x0,y0,z0),平面为 Ax+By+Cz+D=0,则点到平面的距离为
d=∣∣∣∣A2+B2+C2 Ax0+By0+Cz0+D∣∣∣∣</stron>
几何间隔与函数间隔关系:
γi=∥w∥γi^
(4) 间隔最大化
样本点到超平面的最小距离为
γ=i=1,...Nminγi
要使间隔最大化,即求解下面的约束问题:
w,bmaxγs.t. ∥w∥yi(wTxi+b)⩾γ,i=1,...N
根据函数间隔和几何间隔的关系,得到
w,bmax∥w∥γ^s.t. yi(wTxi+b)⩾γ^,i=1,...N
γ^的改变不影响最优化问题的求解。为方便将 γ^=1,于是得到优化目标 ∥w∥1。又因为最大化 ∥w∥1和最小化 21∥w∥2等价,所以:
w,bmin21∥w∥2s.t. yi(wTxi+b)⩾1,i=1,2,…,m
1.1.2. 对偶问题
(1)构建拉格朗日函数
对SVM的基本型使用拉格朗日乘子法可以得到拉格朗日函数。即对每条约束添加拉格朗日乘子 αi⩾0.
L(w,b,α)=21∥w∥2+i=1∑mαi(1−yi(wTxi+b))
原始目标函数转化成:
w,bmaxL(w,b,α)
如果约束条件不满足,即出现 (1−yi(wTxi+b))>0,令 αi趋近于无穷,目标函数取值也趋近于无穷。
对目标函数取最小值,原问题转化成:
αminw,bmax(L(w,b,α))
由于不满足约束条件的函数值为无穷大,因此取得的最小值必然满足约束条件
(2)转化为对偶问题
为什么转化为对偶问题?
1.对偶问题将原始问题中的约束转为了对偶问题中的等式约束
2.方便核函数的引入
3.改变了问题的复杂度。由求特征向量w转化为求比例系数a,在原始问题下,求解的复杂度与样本的维度有关,即w的维度。在对偶问题下,只与样本数量有关。
原始问题是极小极大问题,转化为对偶问题为极大极小问题。
αmaxw,bminL(w,b,α)
(3)计算 minw,bL(w,b,α)
令 L(w,b,x)对 w,b的偏导为0
∂w∂L=w−i=1∑mαiyixi=0
∂b∂L=−i=1∑mαiyi=0
得
w=i=1∑mαiyixi
i=1∑mαiyi=0
将 w=∑i=1mαiyixi代入拉格朗日函数:
L(w,b,α)=21wTw+i=1∑mαi(1−yi(wTxi+b))=21i=1∑mαiyixiTj=1∑mαjyjxj+i=1∑mαi(1−yi(j=1∑mαjyjxjTxi+b))=21i=1∑mj=1∑mαiαjyiyjxiTxj+i=1∑mαi−i=1∑mj=1∑mαiαjyiyjxiTxj+bi=1∑mαiyi=i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
(4)对偶问题
上式计算出来是满足条件的间隔,而我们的目标是间隔最大化,同时考虑到关于 α的约束条件,得到如下问题:
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
s.t. ∑i=1mαiyi=0αi⩾0,i=1,2,…,m
原始问题的最优解( w∗,b∗)和对偶问题最优解( α∗)满足KKT条件时:
⎩⎨⎧αi⩾0yif(xi)−1⩾0αi(yif(xi)−1)=0
二者的解相同。
L(a,b,x)=f(x)+a⋅g(x)+b⋅h(x), 原始问题最优解 x∗,对偶问题最优解 a∗,b∗.
KKT条件:
i. ∇xL(a∗,b∗,x∗)=0,∇aL(a∗,b∗,x∗)=0,∇bL(a∗,b∗,x∗)=0
ii. a∗⋅gi(x∗)=0
iii. gi(x∗)≤0
vi. ai∗≥0,hj(x)=0
(5) 求解结果
假设求解得到最优解的为 α∗,则
w∗=i=1∑mαi∗yixi
b∗=∣S∣1s∈S∑(ys−i=1∑mαiyixiTxs)
于是超平面为:
w∗x+b∗=0
决策函数为:
f(x)=sign(w∗x+b∗)
1.1.3. 软间隔
以上提出的支持向量机模型是线性的,对于线性不可分的数据不适用。线性不可分意味着部分样本不能满足函数间隔大于等于1的约束条件。为此,为每个样本点引入松弛变量 ξi⩾0,使得函数间隔加上松弛变量大于等于1,约束条件变成:
yi(wTxi+b)⩾1−ξi
对每个松弛变量 ξi,支付一个代价 ξi,则目标函数变成:
21∥w∥2+Ci=1∑mξi
C为惩罚系数。
(1)原始问题
引入软间隔之后,原始问题变成:
w,b,ξmin21∥w∥2+Ci=1∑mξis.t. yi(wTx+b)⩾1−ξi,i=1,...,mξi⩾0,i=1,...,m
(2)对偶问题
先求出拉格朗日函数:
L(w,b,α,ξ,μ)=21∥w∥2+Ci=1∑mξi+i=1∑mαi(1−ξi−yi(wTxi+b))−i=1∑mμiξi
再对 w,b,ξi求偏导等于0得到:
w0C=i=1∑mαiyixi=i=1∑mαiyi=αi+μi
最后得到对偶问题:
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjs.t. i=1∑mαiyi=00⩽αi⩽C,i=1,2,…,m
相较于硬间隔支持向量机, αi增加了一个约束C,其余相同.
KKT条件:
⎩⎪⎪⎨⎪⎪⎧αi⩾0,μi⩾0yif(xi)−1+ξi⩾0αi(yif(xi)−1+ξi)=0ξi⩾0,μiξi=0
1.1.4. 核函数
(1)核技巧
对于非线性分类问题,首先使用一个变换将原空间的数据映射到新空间,然后再新空间里用线性分类学习方法从训练数据中学习分类模型.
(2)核函数
核函数与映射函数的关系
设 X是输入空间, H是特征空间(希尔伯特空间),如果存在一个从 X到 H的映射,
ϕ(x):X→H
使得对于所有的 x,z∈X,函数 K(x,z)满足条件
K(x,z)=ϕ(x)T⋅ϕ(z)
则成 K(x,z)为核函数.
在实际使用中,只定义核函数,不显性定义映射.因为映射后的空间维数可能很高,直接计算 ϕ(x)T⋅ϕ(z)通常很困难.由于计算结果是一个数,因此可以使用核函数来替代映射内积的结果
(3)原始问题:
w,bmin21∥w∥2 s.t. yi(wTϕ(xi)+b)⩾1,i=1,2,…,m
(4)对偶问题
maxα s.t. ∑i=1mαi−21∑i=1m∑j=1mαiαjyiyjκ(xi,xj)∑i=1mαiyi=0αi⩾0,i=1,2,…,m
(5)决策平面
f(x)=wTϕ(x)+b=i=1∑mαiyiϕ(xi)Tϕ(x)+b=i=1∑mαiyiκ(x,xi)+b
(6)常用核函数
[外链图片转存失败(img-5QuHpX0x-1562658199123)(https://raw.githubusercontent.com/EEEGUI/ImageBed/master/img/fig_065.png)]