The more fluent you become in math,the more unstoppable you will be in anying you want to do in life
给定训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_m,y_m)\} D={(x1,y1),(x2,y2),⋯,(xm,ym)}, y i ϵ { − 1 , + 1 } y_i \epsilon\{-1,+1\} yiϵ{−1,+1}
在样本空间中,划分超平面可以通过以下线性方程表示:
w T x + b = 0 w^Tx+b=0 wTx+b=0
其中
显然,划分超平面可被法向量 w w w和 b b b确定,下面我们将其记为 ( w , b ) (w,b) (w,b)
样本空间任意衣点 x x x到超平面 ( w , x ) \bm{(w,x)} (w,x)的距离可写为:
γ = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ \gamma=\frac{|w^Tx+b|}{||w||} γ=∣∣w∣∣∣wTx+b∣
假设超平面 ( w , b ) \bm{(w,b)} (w,b)能将训练样本正确分类,即对于 ( x i , y i ) ϵ D (x_i,y_i)\epsilon D (xi,yi)ϵD,若 y i = + 1 y_i=+1 yi=+1,则有
ω T x i + b > 0 \bm{\omega^Tx_i} + b \gt 0 ωTxi+b>0,若 y i = − 1 y_i=-1 yi=−1,则有 ω T x i + b < 0 \bm{\omega^Tx_i} + b \lt 0 ωTxi+b<0.
令
ω T x i + b ≥ + 1 , y i = + 1 \omega^Tx_i+b \geq +1,y_i=+1 ωTxi+b≥+1,yi=+1
ω T x i + b ≤ − 1 , y i = − 1 \omega ^Tx_i+b \leq-1,y_i=-1 ωTxi+b≤−1,yi=−1
距离超平面最近的这几个训练样本点使上式等号成立,他们被称为“支持向量”,两个异类支持向量到超平面的距离之和为"间隔"(margin):
γ = 2 ∣ ∣ ω ∣ ∣ \gamma=\frac{2}{||\omega||} γ=∣∣ω∣∣2
欲找到具有“最大间隔”(maximum margin)的划分超平面,即:
max w , b 2 ∣ ∣ ω ∣ ∣ \max_{w,b}{\frac{2}{||\omega||}} w,bmax∣∣ω∣∣2
s . t . y i ( ω T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , m s.t. \ y_i(\omega^Tx_i+b)\geq1,i=1,2,\cdots,m s.t. yi(ωTxi+b)≥1,i=1,2,⋯,m
显然,为了最大化间隔,仅需最大化 ∣ ∣ ω ∣ ∣ − 1 ||\omega||^{-1} ∣∣ω∣∣−1,这等价于最小化 ∣ ∣ ω ∣ ∣ 2 ||\omega||^2 ∣∣ω∣∣2,于是,上式可重写为:
min w , b 1 2 ∣ ∣ ω ∣ ∣ 2 \min_{w,b}{\frac{1}{2}}{||\omega||^2} w,bmin21∣∣ω∣∣2
s . t . y i ( ω T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , m s.t.\ y_i(\omega^Tx_i+b)\geq1,i=1,2,\cdots,m s.t. yi(ωTxi+b)≥1,i=1,2,⋯,m
这就是支持向量机(Support Vector Machine)的基本型
对上式的每条约束添加拉格朗日乘子 α i ≥ 0 \alpha_i \ge 0 αi≥0 ,该问题的拉格朗日函数可写为:
L ( w , b , α ) = 1 2 ∣ ∣ ω 2 ∣ ∣ + ∑ i = 1 m α i ( 1 − y i ( ω T x i + b ) ) L(w,b,\alpha)=\frac{1}{2}{||\omega^2||}+{\sum_{i=1}^{m}\alpha_i(1-y_i(\omega^Tx_i+b))} L(w,b,α)=21∣∣ω2∣∣+i=1∑mαi(1−yi(ωTxi+b))
对 ω \bm{\omega} ω和 b b b求偏导为零可得:
ω = ∑ i = 1 m α i y i x i \omega=\sum_{i=1}^m\alpha_iy_ix_i ω=i=1∑mαiyixi
0 = ∑ i = 1 m α i y i 0=\sum_{i=1}^m\alpha_iy_i 0=i=1∑mαiyi
带入,将 ω 和 b \omega 和b ω和b消去可得对偶问题:
max α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j \max_{\alpha}\ \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_jx_i^Tx_j αmax i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
s . t . ∑ i = 1 m α i y i = 0 s.t.\ \ \sum_{i=1}^m\alpha_iy_i=0 s.t. i=1∑mαiyi=0
α i ≥ 0 , i = 1 , 2 , ⋯   , m \alpha_i\ge0,\ \ \ \ i=1,2,\cdots,m αi≥0, i=1,2,⋯,m
解出 α \bm{\alpha} α,求出 ω 和 b \bm{\omega}和b ω和b即可得到模型:
f ( x ) = ω T x + b f(x)=\omega^Tx+b f(x)=ωTx+b
= ∑ i = 1 m α i y i x i T x + b =\sum_{i=1}^m\alpha_iy_ix_i^Tx+b =i=1∑mαiyixiTx+b
上述过程需要满足KKT(Karush-Kuhn-Tucker)条件,即:
{ α i ≥ 0 y i f ( x i ) − 1 ≥ 0 α i ( y i f ( x i ) − 1 ) = 0 \begin{cases} \alpha_i\ge0\\ y_if(x_i)-1\ge0\\ \alpha_i(y_if(x_i)-1)=0 \end{cases} ⎩⎪⎨⎪⎧αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0
对任意样本 ( x i , y i ) (\bm{x_i},y_i) (xi,yi)总有 α i = 0 或 者 y i f ( x i ) = 1 \alpha_i = 0 或者 y_if(\bm{x_i}) = 1 αi=0或者yif(xi)=1,若 α i = 0 \alpha_i = 0 αi=0,则该样本将不会在求和中出现,也就不会对 f ( x ) f(x) f(x)有任何影响,若 α > ; 0 \alpha \gt;0 α>;0,则必有 y i f ( x i ) = 1 y_if(\bm{x_i}) = 1 yif(xi)=1,所对应的样本点位于最大间隔的边界上,是一个支持向量。这就是一个支持向量机的重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。
如何求解问题呢?这是个二次规划问题,可使用二次规划算法来求解,然而问题的规模正比于训练样本数,这会在实际任务中造成很大的开销,因此提出SMO(Sequential Minimal Optimization)算法。
选取一对需要更新的变量 α i 和 α j \alpha_i和\alpha_j αi和αj
固定 α i 和 α j \alpha_i和\alpha_j αi和αj以外的参数,求解获得更新后的 α i 和 α j \alpha_i和\alpha_j αi和αj
当遇到线性不可分的样本时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分,令 ϕ ( x ) \phi(\bm{x}) ϕ(x)表示将x映射后的特征向量,则模型变为:
f ( x ) = ω T ϕ ( x ) + b f(x)=\omega^Tϕ(x)+b f(x)=ωTϕ(x)+b
min w , b 1 2 ∣ ∣ ω ∣ ∣ 2 s . t . y i ( ω T ϕ ( x i ) + b ) ≥ 1 , i = 1 , 2 , ⋯   , m \min_{w,b}\ \ \ \frac{1}{2}{||\omega||}^2\\ s.t.\ \ \ y_i(\omega^T\phi(\bm{x_i})+b)\ge1,\ \ \ \ \ i=1,2,\cdots,m w,bmin 21∣∣ω∣∣2s.t. yi(ωTϕ(xi)+b)≥1, i=1,2,⋯,m
其对偶问题是:
∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) s . t . ∑ i = 1 m α i y i = 0 α i ≥ 0 , i = 1 , 2 , ⋯   , m . \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\phi(\bm{x_i})^T\phi(\bm{x_j})\\ s.t.\ \ \ \sum_{i=1}^m\alpha_iy_i=0\\ \alpha_i\ge0,\ \ \ i=1,2,\cdots,m. i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjϕ(xi)Tϕ(xj)s.t. i=1∑mαiyi=0αi≥0, i=1,2,⋯,m.
由于求解涉及到计算 ϕ ( x i ) T ϕ ( x j ) \bm{\phi({x_i})^T\phi({x_j})} ϕ(xi)Tϕ(xj),样本映射到特征空间之后的内积,由于特征空间的维数可能很高,甚至是无穷维,因此直接计算时困难的,于是出现了核函数:
κ ( x i , x j ) = < ϕ ( x i ) , ϕ ( x j ) > = ϕ ( x i ) T ϕ ( x j ) \kappa(\bm{x_i},\bm{x_j})=<\phi(\bm{x_i}),\phi({\bm{x_j}})>=\phi(\bm{x_i})^T\phi(\bm{x_j}) κ(xi,xj)=<ϕ(xi),ϕ(xj)>=ϕ(xi)Tϕ(xj)
即 x i \bm{x_i} xi和 y i \bm{y_i} yi在特征空间的内积等于他们在原始样本空间中通过函数 κ ( . , . ) \kappa(.,.) κ(.,.)计算的结果.
于是之前的式子可重写为:
max α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j κ ( x i , x j ) s . t . ∑ i = 1 m α i y i = 0 α ≥ 0 , i = 1 , 2 , ⋯   , m . \max_\alpha\ \ \ \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\kappa(\bm{x_i},\bm{x_j})\\ s.t.\ \ \ \sum_{i=1}^m\alpha_iy_i=0\\ \alpha\ge0,\ \ \ i=1,2,\cdots,m. αmax i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjκ(xi,xj)s.t. i=1∑mαiyi=0α≥0, i=1,2,⋯,m.
求解后可得到:
f ( x ) = ω T ϕ ( x ) + b = ∑ i = 1 m α i α j ϕ ( x i ) T ϕ ( x ) + b = ∑ i = 1 m α i y i κ ( x , x i ) + b f(\bm{x})=\omega^T\phi(\bm{x})+b\\ =\sum_{i=1}^m\alpha_i\alpha_j\phi(\bm{x_i})^T\phi(\bm{x})+b\\ =\sum_{i=1}^m\alpha_iy_i\kappa(\bm{x},\bm{x_i})+b f(x)=ωTϕ(x)+b=i=1∑mαiαjϕ(xi)Tϕ(x)+b=i=1∑mαiyiκ(x,xi)+b
因此,在线性不可分问题中,核函数的选择成了支持向量机的最大变数,若选择了不合适的核函数,则意味着将样本映射到了一个不合适的特征空间,则极可能导致性能不佳。同时,核函数需要满足以下这个必要条件:
现实任务中往往很难确定一个合适的核函数使得训练样本在特征空间中线性可分,退一步说,即使找到了某个核函数使训练集在特征空间中线性可分,也很难断定线性可分的结果不是由于过拟合所造成的。缓解该问题的一个办法就是允许支持向量机在一些样本上出错,为此要引入"软间隔"的概念。所有样本都必须划分正确,这成为"硬间隔"。
C > 0 C>0 C>0是一个常数, ℓ 0 / 1 \ell_{0/1} ℓ0/1是“0/1损失函数”
ℓ 0 / 1 ( z ) = { 1 , if z < 0 ; 0 , otherwise \ell_{0/1}(\bm{z})= \begin{cases} 1, \text{if \ \ \ z < 0};\\ 0,\text{otherwise} \end{cases} ℓ0/1(z)={1,if z < 0;0,otherwise
当 C C C无穷大时,迫使上式所有样本均满足约束,等价于硬间隔,当 C C C取值有限时,允许一些样本不满足约束.
ℓ 0 / 1 \ell_{0/1} ℓ0/1 非凸、非连续,数学性质不太好,经常会用一些函数代替 ℓ 0 / 1 \ell_{0/1} ℓ0/1,称为“替代损失函数”。
采用hinge损失,则变成:
min w , b 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m m a x ( 0 , 1 − y i ( ω T x i + b ) ) \min_{w,b}\ \ \ \frac{1}{2}{||\omega||}^2+C\sum_{i=1}^mmax(0,1-y_i(\bm{\omega^Tx_i}+b)) w,bmin 21∣∣ω∣∣2+Ci=1∑mmax(0,1−yi(ωTxi+b))
引入"松弛变量" ξ i ≥ 0 \xi_i \ge 0 ξi≥0,可重写为
min w , b , ξ i 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i s . t . y i ( ω T x i + b ) ≥ 1 − ξ i ξ i ≥ 0 , i = 1 , 2 , ⋯   , m \min_{w,b,\xi_i}\ \ \ \frac{1}{2}{||\omega||}^2+C\sum_{i=1}^m\xi_i\\ s.t.\ \ \ y_i(\bm{\omega^Tx_i}+b) \ge 1-\xi_i\\ \xi_i\ge0 ,i=1,2,\cdots,m w,b,ξimin 21∣∣ω∣∣2+Ci=1∑mξis.t. yi(ωTxi+b)≥1−ξiξi≥0,i=1,2,⋯,m
这就是常用的软间隔支持向量机
通过拉格朗日乘子法可得到相应的拉格朗日函数:
L ( ω , b , α , ξ , μ ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i + ∑ i = 1 m α i ( 1 − ξ i − y i ( ω T x i + b ) ) − ∑ i = 1 m μ i ξ i L(\omega,b,\alpha,\xi,\mu)=\frac{1}{2}{||\omega||}^2+C\sum_{i=1}^m\xi_i\\ +\sum_{i=1}^m\alpha_i(1-\xi_i-y_i(\bm{\omega^Tx_i}+b))-\sum_{i=1}^m\mu_i\xi_i L(ω,b,α,ξ,μ)=21∣∣ω∣∣2+Ci=1∑mξi+i=1∑mαi(1−ξi−yi(ωTxi+b))−i=1∑mμiξi
其中 μ i ≥ 0 , α i ≥ 0 \mu_i\ge0,\alpha_i\ge 0 μi≥0,αi≥0是拉格朗日乘子
对 ω , b , ξ i \bm{\omega}, b,\xi_i ω,b,ξi求偏导为0得:
ω = ∑ i = 1 m α i y i x i , 0 = ∑ i = 1 m α i y i C = α i + μ i \omega=\sum_{i=1}^m\alpha_iy_i\bm{x_i},\\ 0=\sum_{i=1}^m\alpha_iy_i\\ C=\alpha_i+\mu_i ω=i=1∑mαiyixi,0=i=1∑mαiyiC=αi+μi
带入上式得对偶问题:
max α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j s . t . ∑ i = 1 m α i y i = 0 , 0 ≤ α i ≥ C , i = 1 , 2 , ⋯   , m \max_\alpha\ \ \ \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\bm{x_i^Tx_j}\\ s.t. \ \ \ \sum_{i=1}^m\alpha_iy_i=0,\\ 0\le\alpha_i{\ge}C,\ \ \ i=1,2,\cdots,m αmax i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjs.t. i=1∑mαiyi=0,0≤αi≥C, i=1,2,⋯,m
对软间隔支持向量机,KKT条件得要求:
{ α I ≥ 0 , μ i ≥ 0 y i f ( x i ) − 1 + ξ i ≥ 0 α i ( y i f ( x i ) − 1 + ξ i ) = 0 ξ i ≥ 0 , μ i ξ i = 0 \begin{cases} \alpha_I\ge0,\ \ \mu_i\ge0\\ y_if(\bm{x_i})-1+\xi_i\ge0\\ \alpha_i(y_if(\bm{x_i})-1+\xi_i)=0\\ \xi_i\ge0,\ \ \ \mu_i\xi_i=0 \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧αI≥0, μi≥0yif(xi)−1+ξi≥0αi(yif(xi)−1+ξi)=0ξi≥0, μiξi=0
对任意样本 x i , y i ) \bm{x_i},y_i) xi,yi)总有 α i = 0 或 者 y i f ( x i ) = 1 − ξ i \alpha_i = 0 或者 y_if(\bm{x_i}) = 1 - \xi_i αi=0或者yif(xi)=1−ξi若 α i = 0 \alpha_i = 0 αi=0,则该样本将不会在求和中出现,也就不会对 f ( x ) f(x) f(x)有任何影响,若 α > 0 \alpha \gt0 α>0,则必有 y i f ( x i ) = 1 − ξ i y_if(\bm{x_i}) = 1 - \xi_i yif(xi)=1−ξi ,即样本是支持向量,若 α i < C \alpha_i \lt C αi<C,则 μ i > 0 \mu_i \gt 0 μi>0,进而有 ξ i = 0 \xi_i = 0 ξi=0,该样本卡在最大间隔边界上;若 α i = C \alpha_i = C αi=C,则 μ i = 0 \mu_i = 0 μi=0,若此时 ξ i ≤ 1 \xi_i \le 1 ξi≤1则该样本落在最大间隔内部,若 ξ i > 1 \xi_i \gt1 ξi>1,则该样本被错误分类