1. 线性SVM模型
线性支持向量机的思想非常朴素:用一个超平面将两类数据分割开来。
如上图,这样的超平面有无数个,选择哪个超平面更好呢?从上图可以看出,平面①会将红色的两个数据分错,平面②则不会,这是因为平面②将两边的间隔分得更大。所以,我们应该选择将两边间隔分割得最大的超平面。
设超平面为wTx+b=0w^Tx+b=0wTx+b=0,类别标记yi∈[−1,1]y_i\in[-1,1]yi∈[−1,1]。现将超平面上下平移,直到有数据穿过为止,此时wTxi+b=1或wTxi+b=−1w^Tx_i+b=1或w^Tx_i+b=-1wTxi+b=1或wTxi+b=−1。如下图:
被穿过的数据xix_ixi称为支持向量,而某支持向量到超平面的距离的2倍称为间隔:margin=2∣∣w∣∣margin=\cfrac{2}{||w||}margin=∣∣w∣∣2,要最大化间隔可以最小化∣∣w∣∣||w||∣∣w∣∣。并且,所有数据满足:
{
wTxi+b≥+1,yi=+1wTxi+b≤−1,yi=−1即:yi(wTxi+b)≥1,i=1,2,...,m \begin{aligned} \begin{cases} w^Tx_i+b \geq +1& , y_i=+1 \\ w^Tx_i+b \leq -1 & , y_i=-1 \end{cases} \\ \\ 即:y_i(w^Tx_i+b) \geq 1,i=1,2,...,m \end{aligned} {
wTxi+b≥+1wTxi+b≤−1,yi=+1,yi=−1即:yi(wTxi+b)≥1,i=1,2,...,m
上述不等式表达的意思是:所有数据点都要分类正确。
总之,线性SVM模型目标在于求解w,bw,bw,b,使得数据点均分类正确的情况下,同时间隔要最大化,即:
min[w,b]12∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,...,m \begin{aligned} & min_{[w,b]} \enspace \frac{1}{2}||w||^2 \\ \\ &s.t. \enspace y_i(w^Tx_i+b) \geq 1,i=1,2,...,m \end{aligned} min[w,b]21∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,...,m
这就是线性支持向量机的模型。它是一个凸二次规划问题,关于这类问题有很多方法可以求解,有兴趣的可以去学习凸优化理论。然而,伟大的数学家发明出了更高效的方法(对偶问题)来求解。
2. 对偶理论
一般的优化问题如下:
min[x]g(x)s.t.fi(x)≤0,i=1,2,...,mhi(x)=0,i=1,2,...,q \begin{aligned} &min_{[x]} \enspace g(x) \\ \\ &s.t. \enspace f_i(x)\leq 0,i=1,2,...,m \\ & \qquad h_i(x)= 0,i=1,2,...,q \end{aligned} min[x]g(x)s.t.fi(x)≤0,i=1,2,...,mhi(x)=0,i=1,2,...,q
构造拉格朗日辅助函数:L(x,α,v)=g(x)+∑i=1mαifi(x)+∑i=1qvihi(x),(αi≥0)L(x,\alpha,v)=g(x)+\sum_{i=1}^m \alpha_if_i(x)+\sum_{i=1}^qv_ih_i(x),(\alpha_i\geq0)L(x,α,v)=g(x)+∑i=1mαifi(x)+∑i=1qvihi(x),(αi≥0)
现在我们对L最大化α,v\alpha,vα,v得:
max[α,v]L(x,α,v)=g(x)+max{
∑i=1mαifi(x)+∑i=1qvihi(x)} \begin{aligned} max_{[\alpha,v]} \enspace L(x,\alpha,v)=g(x)+max\{\sum_{i=1}^m \alpha_if_i(x)+\sum_{i=1}^qv_ih_i(x)\} \end{aligned} max[α,v]L(x,α,v)=g(x)+max{
i=1∑mαifi(x)+i=1∑qvihi(x)}
由于fi(x)≤=0且αi≥0f_i(x)\leq=0且\alpha_i\geq0fi(x)≤=0且αi≥0,则 αifi(x)\alpha_if_i(x)αifi(x)的取值为负无穷到0,得到max∑i=1mαifi(x)=0max\enspace \sum_{i=1}^m \alpha_if_i(x)=0max∑i=1mαifi(x)=0;又hi(x)=0,则max∑i=1qvihi(x)=0h_i(x)=0,则max\enspace \sum_{i=1}^qv_ih_i(x)=0hi(x)=0,则max∑i=1qvihi(x)=0。故推导出:
g(x)=max[α,v]L(x,α,v) \begin{aligned} g(x)= max_{[\alpha,v]} \enspace L(x,\alpha,v) \end{aligned} g(x)=max[α,v]L(x,α,v)
那么原问题可以表达为:p∗=min[x]max[α,v]L(x,α,v)p^*=min_{[x]} max_{[\alpha,v]} \enspace L(x,\alpha,v)p∗=min[x]max[α,v]L(x,α,v)
其对偶问题为:d∗=max[α,v]min[x]L(x,α,v)d^*= max_{[\alpha,v]}min_{[x]}\enspace L(x,\alpha,v)d∗=max[α,v]min[x]L(x,α,v) (强对偶条件成立时)
观察原问题和对偶问题的表达式,其实就是交换了一下求解次序。这样做的意义在于:直接求解p∗p^*p∗ 是非常困难的。但是交换了次序后,先求解min[x]L(x,α,v)min_{[x]}\enspace L(x,\alpha,v)min[x]L(x,α,v)可能非常简单,再求解max[α,v]max_{[\alpha,v]}max[α,v]也可能非常简单。
我们现在看d*是如何推导出来的:
设拉格朗日对偶函数:h(α,v)=min[x]L(x,α,v)h(\alpha,v)=min_{[x]}L(x,\alpha,v)h(α,v)=min[x]L(x,α,v)。再任取x0x_0x0是原问题可行的点,即满足fi(x0)≤0,hi(x0)=0f_i(x_0)\leq0,h_i(x_0)=0fi(x0)≤0,hi(x0)=0,有:
由于αi≥0,则∑i=1mαifi(x0)+∑i=1qvihi(x0)≤0L(x0,α,v)=g(x0)+∑i=1mαifi(x0)+∑i=1qvihi(x0)≤g(x0)h(α,v)=min[x]L(x,α,v)≤L(x0,α,v)≤g(x0) \begin{aligned} 由于\alpha_i\geq 0,则\sum_{i=1}^m \alpha_if_i(x_0)+\sum_{i=1}^qv_ih_i(x_0) &\leq 0 \\ L(x_0,\alpha,v)=g(x_0)+\sum_{i=1}^m \alpha_if_i(x_0)+\sum_{i=1}^qv_ih_i(x_0)&\leq g(x_0) \\ h(\alpha,v)=min_{[x]}L(x,\alpha,v)\leq L(x_0,\alpha,v)&\leq g(x_0) \end{aligned} 由于αi≥0,则i=1∑mαifi(x0)+i=1∑qvihi(x0)L(x0,α,v)=g(x0)+i=1∑mαifi(x0)+i=1∑qvihi(x0)h(α,v)=min[x]L(x,α,v)≤L(x0,α,v)≤0≤g(x0)≤g(x0)
即,h(α,v)h(\alpha,v)h(α,v)恒小于等于g(x)g(x)g(x),有:
max[α,v]h(α,v)≤min[x]g(x)即,d∗≤p∗ \begin{aligned} &max_{[\alpha,v]}h(\alpha,v)\leq min_{[x]}g(x) &\\ \\ &即 ,d^*\leq p^* \end{aligned} max[α,v]h(α,v)≤m