间隔最大使SVM有别于感知机;核技巧使它称为实质上的非线性分类器。
定义 给定线性可分训练数据集,通过间隔最大化(或等价求解相应的凸二次规划)学习得到的分离超平面
w ∗ ⋅ x + b ∗ = 0 w^* \cdot x + b^* = 0 w∗⋅x+b∗=0
以及相应的分类决策函数
f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x)=sign(w^* \cdot x + b^*) f(x)=sign(w∗⋅x+b∗)
称为线性可分支持向量机
超平面 ( w , b ) (w,b) (w,b) 关于样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 的函数间隔为
γ ^ i = y i ( w ⋅ x i + b ) \hat \gamma_i = y_i(w \cdot x_i + b) γ^i=yi(w⋅xi+b)
超平面 ( w , b ) (w,b) (w,b) 关于训练数据集 T T T 的函数间隔为超平面 ( w , b ) (w,b) (w,b) 关于训练数据集 T T T 中的所有样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 的函数间隔的最小值:
γ ^ = min i = 1 , ⋯ , N γ ^ i \hat \gamma = \min _{i=1,\cdots,N} \hat \gamma_i γ^=i=1,⋯,Nminγ^i
函数间隔可以表示预测的正确性以及确信度。但是选择分离超平面时,成比例地改变 w w w 和 b b b,此时函数间隔也成比例地改变了,但超平面并不会改变;因此将超平面的法向量 w w w 规范化,即让 ∥ w ∥ = 1 \left \| w \right \|=1 ∥w∥=1 ,这样函数间隔就是确定的了,称之为几何间隔。
超平面 ( w , b ) (w,b) (w,b) 关于样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 的几何间隔为
γ i = y i ( w ∥ w ∥ ⋅ x i + b ∥ w ∥ ) \gamma_i = y_i \left( \frac {w}{\left \| w \right \|} \cdot x_i + \frac {b}{\left \| w \right \|} \right) γi=yi(∥w∥w⋅xi+∥w∥b)
超平面 ( w , b ) (w,b) (w,b) 关于训练数据集 T T T 的几何间隔为超平面 ( w , b ) (w,b) (w,b) 关于训练数据集 T T T 中的所有样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 的几何间隔的最小值:
γ = min i = 1 , ⋯ , N γ i \gamma = \min _{i=1,\cdots,N}\gamma_i γ=i=1,⋯,Nminγi
超平面 ( w , b ) (w,b) (w,b) 关于样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 的几何间隔可以理解为实例点到超平面的带符号的距离(样本点被该超平面正确分类时为正,就是距离)
考虑求解一个几何间隔最大的分离超平面
max w , b γ s . t . y i ( w ∥ w ∥ ⋅ x i + b ∥ w ∥ ) ≥ γ , i = 1 , 2 , ⋯ , N \begin{aligned} &\max_{w,b} \quad \gamma \\ &s.t. \quad y_i \left( \frac {w}{\left \| w \right \|} \cdot x_i + \frac {b}{\left \| w \right \|} \right) \geq \gamma,\quad i=1,2,\cdots,N \end{aligned} w,bmaxγs.t.yi(∥w∥w⋅xi+∥w∥b)≥γ,i=1,2,⋯,N
可等价改写为
max w , b γ ^ ∥ w ∥ s . t . y i ( w ⋅ x i + b ) ≥ γ ^ , i = 1 , 2 , ⋯ , N \begin{aligned} &\max_{w,b} \quad \frac {\hat \gamma}{\left \| w \right \|}\\ &s.t. \quad y_i \left( w \cdot x_i + b \right) \geq \hat \gamma,\quad i=1,2,\cdots,N \end{aligned} w,bmax∥w∥γ^s.t.yi(w⋅xi+b)≥γ^,i=1,2,⋯,N
如前面所说,当成比例地改变函数间隔 γ ^ \hat \gamma γ^ 时,超平面并不会改变,因此对上面最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,也就是产生了一个等价的最优化问题;于是可以取 γ ^ = 1 \hat \gamma = 1 γ^=1 ,带入上面优化问题,并注意到最大化 1 ∥ w ∥ \frac {1}{\left\| w \right\|} ∥w∥1 和最小化 1 2 ∥ w ∥ 2 \frac 1 2 \left\| w \right\|^2 21∥w∥2 等价,于是得到如下的线性可分支持向量机学习的最优化问题
min w , b 1 2 ∥ w ∥ 2 s . t . y i ( w ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , ⋯ , N (1.1) \tag{1.1} \begin{aligned} &\min_{w,b} \quad \frac 1 2 \left\| w \right\|^2 \\ &s.t. \quad y_i \left( w \cdot x_i + b \right) - 1 \geq 0,\quad i=1,2,\cdots,N \end{aligned} w,bmin21∥w∥2s.t.yi(w⋅xi+b)−1≥0,i=1,2,⋯,N(1.1)
这是一个凸二次规划问题 1 ^1 1,线性可分SVM的学习过程即为求解这个凸二次规划问题。这个解(亦即分离超平面)是存在且唯一的(李航《统计学习方法》page.100)
为求解上述最优化问题,应用拉格朗日对偶性 2 ^2 2,通过求解对偶问题得到原始问题的最优解。
这样做的目的:
构建拉格朗日函数:对每一个不等式约束 y i ( w ⋅ x i + b ) − 1 y_i \left( w \cdot x_i + b \right) - 1 yi(w⋅xi+b)−1 引进拉格朗日乘子 α i ≥ 0 \alpha_i \geq0 αi≥0,定义拉格朗日函数:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 N α i y i ( w ⋅ x i + b ) + ∑ i = 1 N α i L(w,b,\alpha) = \frac{1}{2} \left\| w\right\|^2 - \sum^N_{i=1}{ \alpha_i y_i(w \cdot x_i+b) } + \sum^N_{i=1}{\alpha_i} L(w,b,α)=21∥w∥2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi
其中 α = ( α 1 , α 2 , ⋯ , α N ) T \alpha=(\alpha_1,\alpha_2,\cdots,\alpha_N)^T α=(α1,α2,⋯,αN)T 为拉格朗日乘子向量。
则原问题可转化为一个极小极大问题:
min w , b max α L ( w , b , α ) \min_{w,b} \max_{\alpha} L(w,b,\alpha) w,bminαmaxL(w,b,α)
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
max α min w , b L ( w , b , α ) \max_{\alpha} \min_{w,b} L(w,b,\alpha) αmaxw,bminL(w,b,α)
因此先求 L ( w , b , α ) L(w,b,\alpha) L(w,b,α) 对 w , b w,b w,b 的极小,再求对 α \alpha α 的极大。
▽ w L ( w , b , α ) = w − ∑ i = 1 N α i y i x i = 0 \triangledown_w L(w,b,\alpha)= w - \sum_{i=1}^N \alpha_i y_i x_i = 0 ▽wL(w,b,α)=w−i=1∑Nαiyixi=0
▽ b L ( w , b , α ) = ∑ i = 1 N α i y i = 0 \triangledown_b L(w,b,\alpha)= \sum_{i=1}^N \alpha_i y_i= 0 ▽bL(w,b,α)=i=1∑Nαiyi=0
得
w = ∑ i = 1 N α i y i x i w = \sum_{i=1}^N \alpha_i y_i x_i w=i=1∑Nαiyixi
∑ i = 1 N α i y i = 0 \sum_{i=1}^N \alpha_i y_i= 0 i=1∑Nαiyi=0
将上两式带入 L ( w , b , α ) L(w,b,\alpha) L(w,b,α) 得
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 N α i y i ( w ⋅ x i + b ) + ∑ i = 1 N α i = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i y i ( ( ∑ j = 1 N α j y j x j ) ⋅ x i + b ) + ∑ i = 1 N α i = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \begin{aligned} L(w,b,\alpha) & = \frac{1}{2} \left\| w\right\|^2 - \sum^N_{i=1}{ \alpha_i y_i(w \cdot x_i+b) } + \sum^N_{i=1}{\alpha_i} \\ & = \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum_{i=1}^N { \alpha_i y_i \left( \left( \sum_{j=1}^N \alpha_j y_j x_j \right) \cdot x_i+b \right)} + \sum^N_{i=1}{\alpha_i} \\ & = - \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) + \sum^N_{i=1}{\alpha_i} \end{aligned} L(w,b,α)=21∥w∥2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi=21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαiyi((j=1∑Nαjyjxj)⋅xi+b)+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
即
min w , b L ( w , b , α ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \min_{w,b} L(w,b,\alpha) = - \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) + \sum^N_{i=1}{\alpha_i} w,bminL(w,b,α)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
max α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ≥ 0 , i = 1 , 2 , ⋯ , N \begin{aligned} &\max_\alpha \quad - \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) + \sum^N_{i=1}{\alpha_i} \\ &s.t. \qquad \sum_{i=1}^N \alpha_i y_i= 0 \\ &\qquad \quad \alpha_i \geq 0,\quad i=1,2,\cdots,N \end{aligned} αmax−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαis.t.i=1∑Nαiyi=0αi≥0,i=1,2,⋯,N
将目标函数由求极大转换成求极小,得到下面对偶最优化问题:
min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ≥ 0 , i = 1 , 2 , ⋯ , N (1.2) \tag{1.2} \begin{aligned} &\min_\alpha \quad \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum^N_{i=1}{\alpha_i}\\ &s.t. \qquad \sum_{i=1}^N \alpha_i y_i= 0 \\ &\qquad \quad \alpha_i \geq 0,\quad i=1,2,\cdots,N \end{aligned} αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t.i=1∑Nαiyi=0αi≥0,i=1,2,⋯,N(1.2)
考虑原始最优化问题 ( 1 ) (1) (1)和对偶最优化问题 ( 2 ) (2) (2),存在 w ∗ , b ∗ , α ∗ w^*,b^*,\alpha^* w∗,b∗,α∗,使 w ∗ , b ∗ w^*,b^* w∗,b∗ 是原始问题的解, α ∗ \alpha^* α∗ 是对偶问题的解,因此求解原始问题 ( 1 ) (1) (1)可以转换为求解对偶问题 ( 2 ) (2) (2)。
设 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯ , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T α∗=(α1∗,α2∗,⋯,αN∗)T 是对偶问题的解,则根据KKT条件的推导,存在下标 j j j 使得 α j ∗ > 0 \alpha_j^* > 0 αj∗>0 (实际上训练数据集中对应于 α j ∗ > 0 \alpha_j^* > 0 αj∗>0 的样本点 ( x j , y j ) (x_j,y_j) (xj,yj) 称为支持向量),且可按下式求得原问题的解 w ∗ , b ∗ w^*,b^* w∗,b∗:
w ∗ = ∑ i = 1 N α i ∗ y i x i w^*=\sum_{i=1}^N \alpha^*_i y_i x_i w∗=i=1∑Nαi∗yixi
b ∗ = y i − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) b^* = y_i - \sum_{i=1}^N \alpha^*_i y_i (x_i \cdot x_j) b∗=yi−i=1∑Nαi∗yi(xi⋅xj)
线性不可分意味着某些样本点不可能满足函数间隔大于等于1的约束条件(即 ( 1.1 ) (1.1) (1.1)中约束条件),为解决此问题,需对每个样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 引入一个松弛变量 ξ i ≥ 0 \xi_i \geq 0 ξi≥0,使函数间隔加上松弛变量后大于等于1,这样约束条件变为
y i ( w ⋅ x i + b ) ≥ 1 − ξ i y_i \left( w \cdot x_i + b \right) \geq 1 - \xi_i yi(w⋅xi+b)≥1−ξi
同时,对每个松弛变量,支付一个代价,则 ( 1.1 ) (1.1) (1.1)中目标函数变为
1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i \frac 1 2 \left\| w \right\|^2 + C \sum_{i=1}^N\xi_i 21∥w∥2+Ci=1∑Nξi
其中 C > 0 C>0 C>0 为惩罚参数;最小化上述目标函数有两层含义:使 1 2 ∥ w ∥ 2 \frac 1 2 \left\| w \right\|^2 21∥w∥2 尽可能小即间隔尽量大,同时使误分类点个数尽量小, C C C 是调和二者的系数。
因此线性不可分的线性支持向量机的学习问题为如下凸二次规划问题(原始问题):
min w , b 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i s . t . y i ( w ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , ⋯ , N ξ i ≥ 0 , i = 1 , 2 , ⋯ , N (2.1) \tag{2.1} \begin{aligned} &\min_{w,b} \quad \frac 1 2 \left\| w \right\|^2 + C \sum_{i=1}^N\xi_i \\ &s.t. \quad y_i \left( w \cdot x_i + b \right) \geq 1 - \xi_i,\quad i=1,2,\cdots,N \\ & \qquad \xi_i \geq 0,\quad i=1,2,\cdots,N \end{aligned} w,bmin21∥w∥2+Ci=1∑Nξis.t.yi(w⋅xi+b)≥1−ξi,i=1,2,⋯,Nξi≥0,i=1,2,⋯,N(2.1)
可以证明 w w w 的解唯一,但 b b b 的解不唯一且存在于一个区间。
原始问题 ( 2.1 ) (2.1) (2.1)的对偶问题是
min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , ⋯ , N (2.2) \tag{2.2} \begin{aligned} &\min_\alpha \quad \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum^N_{i=1}{\alpha_i}\\ &s.t. \qquad \sum_{i=1}^N \alpha_i y_i= 0 \\ &\qquad \quad 0 \leq \alpha_i \leq C,\quad i=1,2,\cdots,N \end{aligned} αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t.i=1∑Nαiyi=00≤αi≤C,i=1,2,⋯,N(2.2)
定义:如果存在一个从输入空间 X \mathcal X X 到特征空间 H \mathcal H H 的映射 ϕ ( x ) : X → H \phi(x):\mathcal X \to \mathcal H ϕ(x):X→H ,使得对所有 x , z ∈ X x,z \in \mathcal X x,z∈X,函数 K ( x , z ) K(x,z) K(x,z) 满足条件
K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) K(x,z) = \phi(x) \cdot \phi(z) K(x,z)=ϕ(x)⋅ϕ(z)
则称 K ( x , z ) K(x,z) K(x,z)为核函数, ϕ ( x ) \phi(x) ϕ(x)为映射函数。
https://blog.csdn.net/aliceyangxi1987/article/details/80617649
从非线性训练集通过核函数与软间隔最大化,或凸二次规划,学习得到的分类决策函数(即非线性支持向量机)为
f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i K ( x , x i ) + b ∗ ) f(x) = sign \biggl( \sum_{i=1}^N \alpha^*_i y_i K(x,x_i) +b^* \biggr) f(x)=sign(i=1∑Nαi∗yiK(x,xi)+b∗)
非线性支持向量机学习算法:
min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i ⋅ x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , ⋯ , N (3) \tag{3} \begin{aligned} &\min_\alpha \quad \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j K(x_i \cdot x_j) - \sum^N_{i=1}{\alpha_i}\\ &s.t. \qquad \sum_{i=1}^N \alpha_i y_i= 0 \\ &\qquad \quad 0 \leq \alpha_i \leq C,\quad i=1,2,\cdots,N \end{aligned} αmin21i=1∑Nj=1∑NαiαjyiyjK(xi⋅xj)−i=1∑Nαis.t.i=1∑Nαiyi=00≤αi≤C,i=1,2,⋯,N(3)
并求得最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯ , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T α∗=(α1∗,α2∗,⋯,αN∗)T
b ∗ = y i − ∑ i = 1 N α i ∗ y i K ( x i ⋅ x j ) b^* = y_i - \sum_{i=1}^N \alpha^*_i y_i K(x_i \cdot x_j) b∗=yi−i=1∑Nαi∗yiK(xi⋅xj)
f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i K ( x , x i ) + b ∗ ) f(x) = sign \biggl( \sum_{i=1}^N \alpha^*_i y_i K(x,x_i) +b^* \biggr) f(x)=sign(i=1∑Nαi∗yiK(x,xi)+b∗)
参考文献
[1] 李航《统计学习方法》
补充
凸二次规划问题
拉格朗日对偶性