支持向量机可以分为三类:
- 线性可分的情况 ==> 硬间隔最大化 ==> 硬间隔SVM
- 近似线性可分的情况 ==> 软间隔最大化 ==> 线性支持向量机
- 线性不可分的情况 ==> 核技巧/软间隔最大化 ==> 非线性SVM
硬间隔向量机(hard margin svm)
任务:寻找一条与所有支持向量距离最远的决策边界,这条决策边界就是(0 = w^T X + b),即:
[w^T X_i + b > 0 , y_i > 0 \
w^T X_i + b < 0 , y_i < 0
]
所以问题可以描述为:
[max ; margin(x,b) qquad s.t.y_i(w^T+b)>0 \
margin(w,b) = min ; distance(w,b,x_i) = min frac{1}{|w|}|w^Tx_i+b|
]
带换一下也就是
[max ; min frac{1}{|w|}|w^Tx_i+b| ==> max frac{1}{|w|} ; min |w^Tx_i+b| \
s.t. y_i(w^Tx_i+b)>0 ; ==>; exists r > 0 , min ; y_i(w^T+b)=r
]
用r来表示就是:
[max frac{r}{|w|}\\
exists r > 0 , min ; y_i(w^T+b)=r
]
这里我的理解是:因为(wx_i+b=r) ==> (frac{w}{r} x_i + frac{b}{r}=1),所以不管r取什么值,(w=frac{w_0}{r}),(b=frac{b_0}{r}), 所以r的取值所带来的影响会被最后的w和b所融合进去,所以r=1也没关系。最终的问题可以描述为(这里是N个不等式):
[max frac{1}{2}|w|^2 \
s.t. ; y_i(w^T+b)-1>=0 qquad i=1,2,3,...,N
]
构造拉格朗日函数,引入N个参数(alpha),转换成对偶函数如下(大括号表示不出来我也很绝望):
[min frac{1}{2} cdot sum_{i=1}^{N} sum_{j=1}^{N} alpha_i alpha_{j} y_{i} y_{j}left(x_{i} cdot x_{j}
ight)-sum_{i=1}^{N} x_{i} \
s.t.sum_{i=1}^{N} alpha_{i} y_{i}=0 \
alpha_i >=0 ; i = 1,2,3,.. N
]
使用KKT条件,得到的解:
[w^{*}=sum_{i=1}^{N} alpha_{i}^{*} y_{i} x_{i}
]
[b^{*}=y_{j}-sum_{i=1}^{N} a_{i}^{*} y_{i}left(x_{i} cdot x_{j}
ight)
]
最终的解是:
[w^{*}x+b^{*}=0
]
[f(x) = sign(w^{*}x+b^{*})
]
软间隔向量机(soft margin svm)
软间隔向量机采用合页损失函数,真实数据中,严格线性可分的数据很少。合页损失函数允许分类时的一点点误差。损失函数如下:
[1- y_{i}left(w^{ op} x_{i}+b
ight) leqslant0, quad loss=0 \
1-y_{overline{2}}left(w^{ op} x_{i}+b
ight) >0, quad loss =1-y_{i}left(w^{ op} x_{i}+b
ight)
]
也就是,正确分类并且函数间隔大于1时没有误差,错误分类时,距离决策边界越远的点,受到的惩罚越大。使用合页函数的做优化问题可以表示为:
[min sum_{i}^{N}left(1-y_{i}left(w^{T} x_{i}+b
ight)
ight)_{+}+lambda|w|^{2}
]
令(xi_{i}=1-y_{i}(w^{T} x_{i}+b), quad xi_{i} geqslant 0),则,分两种情况:
1、(1-y_{i}(w^{T} x_{i}+b)>0) ==> (xi_i =1-y_{i}left(w^{T} x_{i}+b
ight)) ==> (y_i(wx+b)=1-xi_i)
2、(1-y_{i}(w^{T} x_{i}+b)leqslant0) ==> (y_i(wx+b)leqslant1) ==> (y_i(wx+b)leqslant1-xi_i) ((xi_i=0))
综合上面两种情况,可以直接写为:(y_i(wx+b)leqslant1-xi_i),这样的话,最优化函数就变成了下面的样子:
[min frac{1}{2} w^{T}w+Csum_{i=1}^{N} xi_{i} \
s.t. y_{i}left(w^{T} x_{i}+b
ight) geqslant 1-xi_{i}, quad xi_{i} geqslant 0
]
这两个式子是等价的。再《统计学习方法》中,先给出了后面的式子,再介绍了合页损失函数
这两个式子转换成等价的对偶函数如下:
[underset{alpha}{min} frac{1}{2} sum_{i=1}^{N} sum_{j=1}^{N} alpha_{i} alpha_{j}y_{i} y_{j}left(x_{i}x_{j}
ight)-sum_{i=1}^{n} alpha_{i} \
s.t. sum_{i=1}^{N}alpha_iy_i=0 qquad \
0leq alpha_i leq C, ;i=1,2,...N
]
对偶函数的解是:
[w=sum_{i=1}^{N} alpha_{i} y_{i} x_{i}
]
[b=y_{j}-sum_{i=1}^{N} a_{i} y_{i}left(x_{i} cdot x_{j}
ight)
]
决策函数是:
[f(x)=sign (sum_{1}^{N} alpha_{i} y_{i}(x cdot x_{i})+b^{*})
]
KKT条件
[frac{alpha f}{alpha w}=0, frac{alpha f}{alpha b}=0, frac{alpha f}{alpha lambda}=0
]
[lambda_{i}(1-y_{i}(w^{T} x_{i}+b))=0
]
[lambda_i=0
]
[(1-y_{i}(w^{T} x_{i}+b))<0
]
对于(lambda_{i}(1-y_{i}(w^{T} x_{i}+b))=0) 只要 (lambda_i
eq0) ,就有 (1-y_{i}(w^{T} x_{i}+b=0),也就是说(x_i)再决策边界上,(x_i)是支持向量
- 原问题与对偶问题育有强对偶关系 <===> 满足KKT条件
非线性支持向量机(核函数)
核函数可以对特征进行升维(当然,不一定非要是升维,也可能是转换到另一个空间),高维空间的运算量巨大,所以直接使用低维的计算结果,作为两个高维向量的内积:
[phi (x_1, x_2) * phi (x_1^{'}, x_2^{'}) = (z_1, z_2, z_3)*(z_1^{'}, z_2^{'}, z_3^{'}) \\
= (x_1^2, sqrt{2}x_1 x_2, x_2^2)(x_1^{'2}, sqrt{2}x_1^{'} x_2^{'}, x_2^{'2}) \\
= (x_1 x_1^{'} + x_2 x_2^{'}) = (xx^{'})^2 =K(x, x^{'})
]
核函数等价于两个映射哈函数的内积,不过,这个映射函数不需要手动指出。因为当两个映射函数相乘时,内积的结果可以用核函数表示。而映射函数在最优化问题中都是成对出现的。即出现映射函数的地方都可以用核函数替代。
如果用映射函数将x映射到高维空间,那么应该用高维向量替换x所在的位置:
[frac{1}{2} sum_{i=1}^{N} sum_{j=1}^{N} alpha_{i} alpha_{j}y_{i} y_{j}left(x_{i}x_{j}
ight)-sum_{i=1}^{n} alpha_{i}
]
[frac{1}{2} sum_{i=1}^{N} sum_{j=1}^{N} alpha_{i} alpha_{j}y_{i} y_{j}left(phi(x_{i})phi(x_{j})
ight)-sum_{i=1}^{n} alpha_{i}
]
[frac{1}{2} sum_{i=1}^{N} sum_{j=1}^{N} alpha_{i} alpha_{j}y_{i} y_{j}left(K(x_{i}, x_{j})
ight)-sum_{i=1}^{n} alpha_{i}
]
那么最终拟合的结果也应该是由高维向量表示的:
[f(x)=sign (sum_{1}^{N} alpha_{i} y_{i}(phi(x)phi(x_{i}))+b^{*})
]
[f(x)=sign (sum_{1}^{N} alpha_{i} y_{i}(K(x,x_i))+b^{*})
]
高斯核函数(RBF)
正太分布:
[f(x)=frac{1}{sqrt{2 pi} sigma} exp left(-frac{(x-mu)^{2}}{2 sigma^{2}}
ight)
]
高斯核函数:
[K(x, y)=e^{-gamma|x-y|^{2}}
]
对于正态分布来说:(sigma)是标准差,(sigma)越小,曲线越窄。(sigma)越大,曲线越宽
对于高斯核函数来说:(gamma)的值越大,曲线越窄;(gamma)的值越小,曲线越宽;