【scikit-learn】支持向量机(Support Vector Machine, SVM)

支持向量机(Support Vector Machine, SVM)

SVM是一种二元分类模型,它依托的原理是如果能找到一条线,能够划分样本,并且训练点到线的间隔尽可能远,也就是所有点到超平面的最小值要最大,这样的分割线(一般叫超平面, Hyperplane)就是最好的分类方式,间隔叫作Margin。因此SVM的两个关键点就是:完全分类正确,及所有点到超平面的最小值要最大。

请添加图片描述

1. 线性SVM

设定超平面为 w T x + b = 0 w^{T} x+b=0 wTx+b=0, 在超平面上方我们定义 y = 1 y=1 y=1,下方定义为 y = − 1 y=-1 y=1,则点 x x x到超平面的几何间隔为:
1 ∥ w ∥ ∣ w T x + b ∣ \frac{1}{\|w\|}\left|w^{T} x+b\right| w1wTx+b
我们需要判断分类是否正确,可以通过观察 y y y(实际值)和 w T x + b w^{T} x+b wTx+b(预测值)是否同号( y y y只能为 1 1 1 − 1 -1 1),即我们可以定义函数间隔:
γ ′ = y ( w T x + b ) \gamma^{\prime}=y\left(w^{T} x+b\right) γ=y(wTx+b)
现在我们可以初步定义优化函数为:
max ⁡ γ = y ( w T x + b ) ∥ w ∥  s.t  y i ( w T x i + b ) = γ ′ ( i ) ≥ γ ′ ( i = 1 , 2 , … m ) \max \gamma=\frac{y\left(w^{T} x+b\right)}{\|w\|} \\ \text { s.t } y_{i}\left(w^{T} x_{i}+b\right)=\gamma^{\prime(i)} \geq \gamma^{\prime}(i=1,2, \ldots m) maxγ=wy(wTx+b) s.t yi(wTxi+b)=γ(i)γ(i=1,2,m)
由于无论 w w w b b b怎么放缩,超平面的几何位置不变,所以我们可以设定最小的函数间隔 γ ′ = 1 \gamma^{\prime}=1 γ=1,这样优化函数进一步简化为:
max ⁡ 1 ∥ w ∥  s.t  y i ( w T x i + b ) ≥ 1 ( i = 1 , 2 , … m ) \max \frac{1}{\|w\|} \\ \text { s.t } y_{i}\left(w^{T} x_{i}+b\right) \geq 1(i=1,2, \ldots m) maxw1 s.t yi(wTxi+b)1(i=1,2,m)
由于 1 ∥ w ∥ \frac{1}{\|w\|} w1等同于 1 2 ∥ w ∥ 2 \frac{1}{2}\|w\|^{2} 21w2的最小化,所以最终的优化函数可以表达为:
min ⁡ 1 2 ∥ w ∥ 2  s.t  y i ( w T x i + b ) ≥ 1 ( i = 1 , 2 , … m ) \min \frac{1}{2}\|w\|^{2} \\ \text { s.t } y_{i}\left(w^{T} x_{i}+b\right) \geq 1(i=1,2, \ldots m) min21w2 s.t yi(wTxi+b)1(i=1,2,m)
这样其实就是一个标准的二次规划(QP)问题,可以代入别的工具求解

2. 对偶SVM

我们通常会将线性SVM转化为对偶问题,主要解决在非线性转换之后维度变高二次规划问题求解困难的问题。在非线性分类问题中,我们一般作非线性转换 z n = ϕ ( x n ) \mathbf{z}_{n}=\phi\left(\mathbf{x}_{n}\right) zn=ϕ(xn),从而在 z \mathbf{z} z空间里面进行线性分类,在非线性转换过程一般是一个升维的过程,将 z \mathbf{z} z的维度一般设为 d ~ \tilde{d} d~, 一般情况 d ~ > > d \tilde{d}>>d d~>>d,(比如2维变5维,3维变19维等是一个非线性升高),这样在高维空间内部,在二次规划问题中的就会有 d ~ + 1 \tilde{d}+1 d~+1个变量,那么权值维度同样也为 d ~ + 1 \tilde{d}+1 d~+1维,以及 m m m个约束,此外 Q Q Q 矩阵维度会十分大,达到 d ~ 2 \tilde{d}^2 d~2,因此,一旦 d ~ \tilde{d} d~变大了, 二次规划问题求解就会变得很困难。

我们引入拉格朗日乘子来转化为对偶问题,优化函数变为:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 ]  满足  α i ≥ 0 L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{m} \alpha_{i}\left[y_{i}\left(w^{T} x_{i}+b\right)-1\right] \text { 满足 } \alpha_{i} \geq 0 L(w,b,α)=21w2i=1mαi[yi(wTxi+b)1] 满足 αi0
优化目标为:
min ⁡ ⏟ w , b max ⁡ ⏟ α i ≥ 0 L ( w , b , α ) \underbrace{\min }_{w, b} \underbrace{\max }_{\alpha_{i} \geq 0} L(w, b, \alpha) w,b minαi0 maxL(w,b,α)
由于这个优化函数满足KTT条件,因此通过拉格朗日对偶将优化目标转为:
max ⁡ ⏟ α i ≥ 0 min ⁡ ⏟ w , b L ( w , b , α ) \underbrace{\max }_{\alpha_{i} \geq 0} \underbrace{\min }_{w, b} L(w, b, \alpha) αi0 maxw,b minL(w,b,α)
根据上式,我们可以先求出优化函数对于 w , b w,b w,b的极小值,然后求拉格朗日乘子 α \alpha α的最大值。

我们先求出优化函数对于 w , b w,b w,b的极小值,即 min ⁡ ⏟ w , b L ( w , b , α ) \underbrace{\min }_{w, b} L(w, b, \alpha) w,b minL(w,b,α),只需要对 w , b w,b w,b求偏导:
∂ L ∂ w = 0 ⇒ w = ∑ i = 1 m α i y i x i ∂ L ∂ b = 0 ⇒ ∑ i = 1 m α i y i = 0 \begin{gathered} \frac{\partial L}{\partial w}=0 \Rightarrow w=\sum_{i=1}^{m} \alpha_{i} y_{i} x_{i} \\ \frac{\partial L}{\partial b}=0 \Rightarrow \sum_{i=1}^{m} \alpha_{i} y_{i}=0 \end{gathered} wL=0w=i=1mαiyixibL=0i=1mαiyi=0
这样我们就知道了 w w w α \alpha α的关系,然后代入 min ⁡ ⏟ w , b L ( w , b , α ) \underbrace{\min }_{w, b} L(w, b, \alpha) w,b minL(w,b,α)就可以消去 w w w,定义:
ψ ( α ) = min ⁡ ⏟ w , b L ( w , b , α ) \psi(\alpha)=\underbrace{\min }_{w, b} L(w, b, \alpha) ψ(α)=w,b minL(w,b,α)
代入可得:
ψ ( α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 ] = 1 2 w T w − ∑ i = 1 m α i y i w T x i − ∑ i = 1 m α i y i b + ∑ i = 1 m α i = 1 2 w T ∑ i = 1 m α i y i x i − ∑ i = 1 m α i y i w T x i − ∑ i = 1 m α i y i b + ∑ i = 1 m α i = 1 2 w T ∑ i = 1 m α i y i x i − w T ∑ i = 1 m α i y i x i − ∑ i = 1 m α i y i b + ∑ i = 1 m α i = − 1 2 w T ∑ i = 1 m α i y i x i − ∑ i = 1 m α i y i b + ∑ i = 1 m α i = − 1 2 w T ∑ i = 1 m α i y i x i − b ∑ i = 1 m α i y i + ∑ i = 1 m α i = − 1 2 ( ∑ i = 1 m α i y i x i ) T ( ∑ i = 1 m α i y i x i ) − b ∑ i = 1 m α i y i + ∑ i = 1 m α i = − 1 2 ∑ i = 1 m α i y i x i T ∑ i = 1 m α i y i x i − b ∑ i = 1 m α i y i + ∑ i = 1 m α i = − 1 2 ∑ i = 1 m α i y i x i T ∑ i = 1 m α i y i x i + ∑ i = 1 m α i = − 1 2 ∑ i = 1 , j = 1 m α i y i x i T α j y j x j + ∑ i = 1 m α i = ∑ i = 1 m α i − 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j \begin{aligned} \psi(\alpha) &=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{m} \alpha_{i}\left[y_{i}\left(w^{T} x_{i}+b\right)-1\right] \\ &=\frac{1}{2} w^{T} w-\sum_{i=1}^{m} \alpha_{i} y_{i} w^{T} x_{i}-\sum_{i=1}^{m} \alpha_{i} y_{i} b+\sum_{i=1}^{m} \alpha_{i} \\ &=\frac{1}{2} w^{T} \sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}-\sum_{i=1}^{m} \alpha_{i} y_{i} w^{T} x_{i}-\sum_{i=1}^{m} \alpha_{i} y_{i} b+\sum_{i=1}^{m} \alpha_{i} \\ &=\frac{1}{2} w^{T} \sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}-w^{T} \sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}-\sum_{i=1}^{m} \alpha_{i} y_{i} b+\sum_{i=1}^{m} \alpha_{i} \\ &=-\frac{1}{2} w^{T} \sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}-\sum_{i=1}^{m} \alpha_{i} y_{i} b+\sum_{i=1}^{m} \alpha_{i} \\ &=-\frac{1}{2} w^{T} \sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}-b \sum_{i=1}^{m} \alpha_{i} y_{i}+\sum_{i=1}^{m} \alpha_{i} \\ &=-\frac{1}{2}\left(\sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}\right)^{T}\left(\sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}\right)-b \sum_{i=1}^{m} \alpha_{i} y_{i}+\sum_{i=1}^{m} \alpha_{i} \\ &=-\frac{1}{2} \sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}^{T} \sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}-b \sum_{i=1}^{m} \alpha_{i} y_{i}+\sum_{i=1}^{m} \alpha_{i} \\ &=-\frac{1}{2} \sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}^{T} \sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}+\sum_{i=1}^{m} \alpha_{i} \\ &=-\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} y_{i} x_{i}^{T} \alpha_{j} y_{j} x_{j}+\sum_{i=1}^{m} \alpha_{i} \\ &=\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j} \end{aligned} ψ(α)=21w2i=1mαi[yi(wTxi+b)1]=21wTwi=1mαiyiwTxii=1mαiyib+i=1mαi=21wTi=1mαiyixii=1mαiyiwTxii=1mαiyib+i=1mαi=21wTi=1mαiyixiwTi=1mαiyixii=1mαiyib+i=1mαi=21wTi=1mαiyixii=1mαiyib+i=1mαi=21wTi=1mαiyixibi=1mαiyi+i=1mαi=21(i=1mαiyixi)T(i=1mαiyixi)bi=1mαiyi+i=1mαi=21i=1mαiyixiTi=1mαiyixibi=1mαiyi+i=1mαi=21i=1mαiyixiTi=1mαiyixi+i=1mαi=21i=1,j=1mαiyixiTαjyjxj+i=1mαi=i=1mαi21i=1,j=1mαiαjyiyjxiTxj
我们再代入到优化目标中:
max ⁡ ⏟ α − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 m α i  s.t.  ∑ i = 1 m α i y i = 0 α i ≥ 0 i = 1 , 2 , … m \begin{gathered} \underbrace{\max }_{\alpha}-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{m} \alpha_{i} \\ \text { s.t. } \sum_{i=1}^{m} \alpha_{i} y_{i}=0 \\ \alpha_{i} \geq 0 i=1,2, \ldots m \end{gathered} α max21i=1mj=1mαiαjyiyj(xixj)+i=1mαi s.t. i=1mαiyi=0αi0i=1,2,m
去掉负号转为最小值:
min ⁡ ⏟ α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 m α i  s.t.  ∑ i = 1 m α i y i = 0 α i ≥ 0 i = 1 , 2 , … m \begin{gathered} \underbrace{\min }_{\alpha} \frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{m} \alpha_{i} \\ \text { s.t. } \sum_{i=1}^{m} \alpha_{i} y_{i}=0 \\ \alpha_{i} \geq 0 i=1,2, \ldots m \end{gathered} α min21i=1mj=1mαiαjyiyj(xixj)i=1mαi s.t. i=1mαiyi=0αi0i=1,2,m
此时一般用SMO算法求解 α \alpha α对应的极小值 α ∗ \alpha^* α,求得之后,我们就可以根据 w = ∑ i = 1 m α i y i x i w=\sum_{i=1}^{m} \alpha_{i} y_{i} x_{i} w=i=1mαiyixi得出 w ∗ w^* w

b b b则麻烦一些,但可根据对于任意的支持向量 ( x x , y s ) \left(x_{x}, y_{s}\right) (xx,ys),都有:
y s ( w T x s + b ) = y s ( ∑ i = 1 m α i y i x i T x s + b ) = 1 y_{s}\left(w^{T} x_{s}+b\right)=y_{s}\left(\sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}^{T} x_{s}+b\right)=1 ys(wTxs+b)=ys(i=1mαiyixiTxs+b)=1
即只需求出支持向量代入即可。

3. 软间隔SVM

前面讲到线性SVM一个关键点就是超平面必须完全分类所有点,但实际上一方面有些数据混入了异常点,导致本来线性可分变成了不可分,如下图一个橙色和蓝色的异常点导致我们无法用线性SVM。

请添加图片描述

但还有一种情况是没有糟糕到那么不可分,如下图,本来如果不考虑异常点,SVM的超平面应该是如红色线所示,但由于有一个蓝色的异常点,导致我们学到的超平面是如粗虚线所示。

请添加图片描述

为解决这个问题,SVM引入了软间隔的方法。

回顾硬间隔的优化函数:
min ⁡ 1 2 ∥ w ∥ 2  s.t  y i ( w T x i + b ) ≥ 1 ( i = 1 , 2 , … m ) \min \frac{1}{2}\|w\|^{2} \\ \text { s.t } y_{i}\left(w^{T} x_{i}+b\right) \geq 1(i=1,2, \ldots m) min21w2 s.t yi(wTxi+b)1(i=1,2,m)
现在对每个样本引入一个松弛变量 ξ i ≥ 0 \xi_{i} \geq 0 ξi0,使函数间隔加上松弛变量大于等于1,即:
y i ( w ∙ x i + b ) ≥ 1 − ξ i y_{i}\left(w \bullet x_{i}+b\right) \geq 1-\xi_{i} yi(wxi+b)1ξi

可以看到我们对样本到超平面的函数距离的要求放松了,之前是一定要大于等于1,现在只需要加上一个大于等于0的松弛变量能大于等于1就可以了。当然,松弛变量不能白加,这是有成本的,每一个松弛变量 ξ i \xi_{i} ξi, 对应了一个代价 ξ i \xi_{i} ξi,因此优化函数变为:
min ⁡ 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ i  s.t.  y i ( w T x i + b ) ≥ 1 − ξ i ( i = 1 , 2 , … m ) ξ i ≥ 0 ( i = 1 , 2 , … m ) \begin{gathered} \min \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{m} \xi_{i} \\ \text { s.t. } \quad y_{i}\left(w^{T} x_{i}+b\right) \geq 1-\xi_{i} \quad(i=1,2, \ldots m) \\ \xi_{i} \geq 0 \quad(i=1,2, \ldots m) \end{gathered} min21w2+Ci=1mξi s.t. yi(wTxi+b)1ξi(i=1,2,m)ξi0(i=1,2,m)
这里 C > 0 C>0 C>0为惩罚参数, C C C越大,对误分类的惩罚越大, C C C越小,对误分类的惩罚越小。

下面我们需要优化软间隔SVM优化函数,与线性SVM类似,引入拉格朗日乘子转为无约束问题:
L ( w , b , ξ , α , μ ) = 1 2 ∥ w ∥ 2 2 + C ∑ i = 1 m ξ i − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 + ξ i ] − ∑ i = 1 m μ i ξ i L(w, b, \xi, \alpha, \mu)=\frac{1}{2}\|w\|_{2}^{2}+C \sum_{i=1}^{m} \xi_{i}-\sum_{i=1}^{m} \alpha_{i}\left[y_{i}\left(w^{T} x_{i}+b\right)-1+\xi_{i}\right]-\sum_{i=1}^{m} \mu_{i} \xi_{i} L(w,b,ξ,α,μ)=21w22+Ci=1mξii=1mαi[yi(wTxi+b)1+ξi]i=1mμiξi
需要优化的目标函数,根据KKT条件再经过拉格朗日对偶转为:
max ⁡ ⏟ α i ≥ 0 , μ i ≥ 0 min ⁡ ⏟ w , b , ξ L ( w , b , α , ξ , μ ) \underbrace{\max }_{\alpha_{i} \geq 0, \mu_{i} \geq 0} \underbrace{\min }_{w, b, \xi} L(w, b, \alpha, \xi, \mu) αi0,μi0 maxw,b,ξ minL(w,b,α,ξ,μ)
(以下推导略过),类似地首先求出 w , b , ξ w, b, \xi w,b,ξ的极小值:
∂ L ∂ w = 0 ⇒ w = ∑ i = 1 m α i y i x i ∂ L ∂ b = 0 ⇒ ∑ i = 1 m α i y i = 0 ∂ L ∂ ξ = 0 ⇒ C − α i − μ i = 0 \begin{gathered} \frac{\partial L}{\partial w}=0 \Rightarrow w=\sum_{i=1}^{m} \alpha_{i} y_{i} x_{i} \\ \frac{\partial L}{\partial b}=0 \Rightarrow \sum_{i=1}^{m} \alpha_{i} y_{i}=0 \\ \frac{\partial L}{\partial \xi}=0 \Rightarrow C-\alpha_{i}-\mu_{i}=0 \end{gathered} wL=0w=i=1mαiyixibL=0i=1mαiyi=0ξL=0Cαiμi=0

最后导出软间隔SVM的优化函数为:
min ⁡ ⏟ α 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j − ∑ i = 1 m α i  s.t.  ∑ i = 1 m α i y i = 0 0 ≤ α i ≤ C \begin{gathered} \underbrace{\min }_{\alpha} \frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}-\sum_{i=1}^{m} \alpha_{i} \\ \text { s.t. } \sum_{i=1}^{m} \alpha_{i} y_{i}=0 \\ 0 \leq \alpha_{i} \leq C \end{gathered} α min21i=1,j=1mαiαjyiyjxiTxji=1mαi s.t. i=1mαiyi=00αiC
可以看到与硬间隔SVM相比,只是多了一个约束条件 0 ≤ α i ≤ C 0 \leq \alpha_{i} \leq C 0αiC

4. 核函数SVM

对于完全线性不可分的情况,我们可以将数据映射到高维,从而线性可分。回顾线性可分的SVM优化函数:
min ⁡ ⏟ α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 m α i  s.t.  ∑ i = 1 m α i y i = 0 α i ≥ 0 i = 1 , 2 , … m \begin{gathered}\underbrace{\min }_{\alpha} \frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{m} \alpha_{i} \\\text { s.t. } \sum_{i=1}^{m} \alpha_{i} y_{i}=0 \\\alpha_{i} \geq 0 i=1,2, \ldots m\end{gathered} α min21i=1mj=1mαiαjyiyj(xixj)i=1mαi s.t. i=1mαiyi=0αi0i=1,2,m
上式低维特征仅仅以内积 𝑥 𝑖 ∙ 𝑥 𝑗 𝑥_𝑖∙𝑥_𝑗 xixj的形式出现,如果我们定义一个低维特征空间到高维特征空间的映射 ϕ \phi ϕ,将所有特征映射到一个更高的维度,让数据线性可分,从而按照前面的方法求出超平面,即:
min ⁡ ⏟ α 1 2 ∑ i = 1 , j = 1 m α i α j y i y j ϕ ( x i ) ⋅ ϕ ( x j ) − ∑ i = 1 m α i  s.t.  ∑ i = 1 m α i y i = 0 0 ≤ α i ≤ C \begin{gathered} \underbrace{\min }_{\alpha} \frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \phi\left(x_{i}\right) \cdot \phi\left(x_{j}\right)-\sum_{i=1}^{m} \alpha_{i} \\ \text { s.t. } \sum_{i=1}^{m} \alpha_{i} y_{i}=0 \\ 0 \leq \alpha_{i} \leq C \end{gathered} α min21i=1,j=1mαiαjyiyjϕ(xi)ϕ(xj)i=1mαi s.t. i=1mαiyi=00αiC
但是这样我们需要求出内积 ϕ ( x i ) ⋅ ϕ ( x j ) \phi\left(x_{i}\right) \cdot \phi\left(x_{j}\right) ϕ(xi)ϕ(xj),这样类似于二次规划那样会引入一个 d ~ \tilde{d} d~维空间,从而发生维度爆炸影响计算速度。

为此我们可以引入核函数,设 ϕ \phi ϕ是一个从低维的输入空间 χ \chi χ(欧式空间的子集或者离散集合)到高维的希尔伯特空间的 H \mathcal{H} H映射,如果存在函数 K ( x , x ′ ) K(x, x') K(x,x),对于任意 x , x ′ ∈ χ x, x'\in\chi x,xχ,都有:
K ( x , x ′ ) = ϕ ( x ) ∙ ϕ ( x ′ ) K(x, x')=\phi(x) \bullet \phi(x') K(x,x)=ϕ(x)ϕ(x)
咋看跟上面没什么区别,但实际上核函数计算都是在低维空间下进行的,例如对于
Φ ( x ) = ( 1 , x 1 , x 2 , … , x d , x 1 2 , x 1 x 2 , … , x 1 x d , x 2 x 1 , x 2 2 , … , x 2 x d , … , x d 2 ) \Phi(\mathbf{x})=\left(1, x_{1}, x_{2}, \ldots, x_{d}, x_{1}^{2}, x_{1} x_{2}, \ldots, x_{1} x_{d}, x_{2} x_{1}, x_{2}^{2}, \ldots, x_{2} x_{d}, \ldots, x_{d}^{2}\right) Φ(x)=(1,x1,x2,,xd,x12,x1x2,,x1xd,x2x1,x22,,x2xd,,xd2)
我们得到:
K Φ ( x , x ′ ) = 1 + ( x T x ′ ) + ( x T x ′ ) 2 K_{\Phi}\left(x, x^{\prime}\right)=1+\left(x^{T} x^{\prime}\right)+\left(x^{T} x^{\prime}\right)^{2} KΦ(x,x)=1+(xTx)+(xTx)2
这样看只需要计算低维空间的内积就行了。

常见的核函数有四种:

核函数公式备注
线性核函数 K ( x , x ′ ) = x ∙ x ′ K(x, x')=x \bullet x' K(x,x)=xx其实就是线性可分的SVM
多项式核函数 K ( x , x ′ ) = ( γ x ∙ x ′ + r ) d K(x, x')=(\gamma x \bullet x'+r)^{d} K(x,x)=(γxx+r)d其中 γ , r , d \gamma,r,d γ,r,d都需要自己调参定义
高斯核函数 K ( x , x ′ ) = exp ⁡ ( − γ ∥ x − x ′ ∥ 2 ) K(x, x')=\exp\left(-\gamma\|x-x'\|^{2}\right) K(x,x)=exp(γxx2)最主流的核函数,在SVM中也叫径向基核函数
Sigmoid核函数 K ( x , x ′ ) = tanh ⁡ ( γ x ⋅ x ′ + r ) K(x, x')=\tanh (\gamma x \cdot x'+r) K(x,x)=tanh(γxx+r)也是线性不可分SVM常用的核函数之一

下图是高斯核函数在不同参数下的分类效果:

请添加图片描述

可以看到原来线性SVM下超平面是一条直线,映射到高维可以较自由地定义位置形状。

5. SMO算法

我们可以将SMO算法过程归纳如下:

  1. 初始化所有变量的解ai=0
  2. 选取优化变量a1,a2,解析求解这两个变量的二次规划问题,得到最优解a1’,a2’
  3. 验证,所有变量的解ai是否满足KKT条件,若不满足,继续step2,否则step4
  4. 得到a=a1’,a2’…

Refs

西瓜书

台大林轩田机器学习技法

支持向量机原理(二) 线性支持向量机的软间隔最大化模型

支持向量机原理(三)线性不可分支持向量机与核函数

机器学习技法笔记(3)-对偶SVM

林轩田机器学习笔记

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值