文章目录
支持向量机(SVM)的原理推导及解释
支持向量机的本质:选出最优的分类超平面(标准:离超平面最近距离的样本点最远的超平面)。
假定超平面方程
W
T
x
+
b
=
0
\mathbf{W}^{\mathbf{T}}\mathbf{x}+\mathbf{b}=0
WTx+b=0,则样本数据点x到该超平面的距离表示为:
∣
W
T
x
+
b
∣
|\mathbf{W}^{\mathbf{T}}\mathbf{x}+\mathbf{b}|
∣WTx+b∣。而判断
W
T
x
+
b
\mathbf{W}^{\mathbf{T}}\mathbf{x}+\mathbf{b}
WTx+b与标记y符号是否一致得到分类结果:一致,分类正确;否则,分类错误。
于是,我们采用 y ( W T x + b ) \mathbf{y}\left( \mathbf{W}^{\mathbf{T}}\mathbf{x}+\mathbf{b} \right) y(WTx+b)替代 ∣ W T x + b ∣ |\mathbf{W}^{\mathbf{T}}\mathbf{x}+\mathbf{b}| ∣WTx+b∣表示样本点到超平面的距离。【当然,这里会有读者思考,如果分类错误,则 y ( W T x + b ) \mathbf{y}\left( \mathbf{W}^{\mathbf{T}}\mathbf{x}+\mathbf{b} \right) y(WTx+b)为负值,没错,我们假定所有的分类标签都是正确的->找到最优的超平面。】
函数距离 d i = y i ( w T x i + b ) \mathbf{d}_{\mathbf{i}}=\mathbf{y}_{\mathbf{i}}\left( \mathbf{w}^{\mathbf{T}}\mathbf{x}_{\mathbf{i}}+\mathbf{b} \right) di=yi(wTxi+b) (i为第i个样本点),而样本总数据集D的函数间隔d定义为D中所有样本数据点到超平面的最小函数间隔值, d = min d i \mathbf{d}=\min \mathbf{d}_{\mathbf{i}} d=mindi。
但是,函数间隔也存在明显的缺点:若同比例缩放其参数向量w和偏置量b,会改变间隔di的取值。
s
∗
w
T
x
+
s
∗
b
=
0
\mathbf{s}*\mathbf{w}^{\mathbf{T}}\mathbf{x}+\mathbf{s}*\mathbf{b}=0
s∗wTx+s∗b=0,
d
i
=
s
∗
y
i
(
w
T
x
i
+
b
)
\mathbf{d}_{\mathbf{i}}=\mathbf{s}*\mathbf{y}_{\mathbf{i}}\left( \mathbf{w}^{\mathbf{T}}\mathbf{x}_{\mathbf{i}}+\mathbf{b} \right)
di=s∗yi(wTxi+b),超平面的方向由w决定,位置由w、x和b决定,这里超平面的方向位置不变,但是di却发生了变化。于是,我们引入了几何间隔:
d
i
_
g
=
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
=
d
i
∣
∣
w
∣
∣
\mathbf{d}_{\mathbf{i}\_g}=\frac{\mathbf{y}_{\mathbf{i}}\left( \mathbf{w}^{\mathbf{T}}\mathbf{x}_{\mathbf{i}}+\mathbf{b} \right)}{||\mathbf{w}||}=\frac{\mathbf{d}_{\mathbf{i}}}{||\mathbf{w}||}
di_g=∣∣w∣∣yi(wTxi+b)=∣∣w∣∣di
1.线性可分支持向量机(linear support vector machine in linearly separable case)
-
核心:硬间隔最大化(hard margin maximization)
-
数据对象:线性可分数据
-
要求:必须所有的正例和负例分类标签正确(超平面受边界数据影响大)
-
寻找参数w和b,使得D中所有样本数据点到超平面的最小函数间隔值d最大(这里设定d=1)。
-
求解问题如下: max w , b 1 ∣ ∣ w ∣ ∣ s . t . y i ( w T x i + b ) ⩾ 1 , i = 1 , 2.... n 转换 为 : min w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) − 1 ⩾ 0 , i = 1 , 2.... n \text{求解问题如下:} \\ \underset{\mathbf{w},\mathbf{b}}{\max}\frac{1}{||\mathbf{w}||}\,\, \\ \mathbf{s}.\mathbf{t}. \mathbf{y}_{\mathbf{i}}\left( \mathbf{w}^{\mathbf{T}}\mathbf{x}_{\mathbf{i}}+\mathbf{b} \right) \geqslant 1,\mathbf{i}=1,2....\mathbf{n} \\ \text{转换}为\text{:} \\ \underset{\mathbf{w},\mathbf{b}}{\min}\frac{1}{2}||\mathbf{w}||^2\,\, \\ \mathbf{s}.\mathbf{t}. \mathbf{y}_{\mathbf{i}}\left( \mathbf{w}^{\mathbf{T}}\mathbf{x}_{\mathbf{i}}+\mathbf{b} \right) -1\geqslant 0,\mathbf{i}=1,2....\mathbf{n} 求解问题如下:w,bmax∣∣w∣∣1s.t.yi(wTxi+b)⩾1,i=1,2....n转换为:w,bmin21∣∣w∣∣2s.t.yi(wTxi+b)−1⩾0,i=1,2....n
-
对于约束优化问题: min f ( x ) s . t . g j ( x ) ⩽ 0 , j = 1 , 2 , . . . , m 若 f ( x ) 和 g j ( x ) 都 为 凸函数,则此问题 为 凸规划。 \text{对于约束优化问题:} \\ \min \mathbf{f}\left( \mathbf{x} \right) \\ \mathbf{s}.\mathbf{t}. \mathbf{g}_{\mathbf{j}}\left( \mathbf{x} \right) \leqslant 0,\mathbf{j}=1,2,...,\mathbf{m} \\ \text{若}\mathbf{f}\left( \mathbf{x} \right) \text{和}\mathbf{g}_{\mathbf{j}}\left( \mathbf{x} \right) \text{都}为\text{凸函数,则此问题}为\text{凸规划。} 对于约束优化问题:minf(x)s.t.gj(x)⩽0,j=1,2,...,m若f(x)和gj(x)都为凸函数,则此问题为凸规划。
-
凸规划的性质: 1. 若给定一点 x 0 ,则集合 R = { x ∣ f ( x ) ⩽ f ( x 0 ) } 为 凸集。 2. 可行域 R = { x ∣ g j ( x ) ⩽ 0 , j = 1 , 2 , . . . , m } 为 凸集合。 3. 凸规划的任何 局 部最优解就 是 全 局 最优解。 \text{凸规划的性质:} \\ 1.\text{若给定一点}\mathbf{x}_0\text{,则集合}\mathbf{R}=\left\{ \mathbf{x}|\mathbf{f}\left( \mathbf{x} \right) \leqslant \mathbf{f}\left( \mathbf{x}_0 \right) \right\} 为\text{凸集。} \\ 2.\text{可行域}\mathbf{R}=\left\{ \mathbf{x}|\mathbf{g}_{\mathbf{j}}\left( \mathbf{x} \right) \leqslant 0,\mathbf{j}=1,2,...,\mathbf{m} \right\} 为\text{凸集合。} \\ 3.\text{凸规划的任何}局\text{部最优解就}是\text{全}局\text{最优解。} 凸规划的性质:1.若给定一点x0,则集合R={x∣f(x)⩽f(x0)}为凸集。2.可行域R={x∣gj(x)⩽0,j=1,2,...,m}为凸集合。3.凸规划的任何局部最优解就是全局最优解。
硬间隔最大化(HMM)学习算法流程:
输入:线性可分训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) } ,其中 x ϵ X ϵ R n , y ϵ Y ϵ { 1 , − 1 } \mathbf{T}=\left\{ \left( \mathbf{x}_1,\mathbf{y}_1 \right) ,\left( \mathbf{x}_2,\mathbf{y}_2 \right) ,...,\left( \mathbf{x}_{\mathbf{n}},\mathbf{y}_{\mathbf{n}} \right) \right\} \text{,其中}\mathbf{x\epsilon X\epsilon R}^{\mathbf{n}},\mathbf{y\epsilon Y\epsilon }\left\{ 1,-1 \right\} T={(x1,y1),(x2,y2),...,(xn,yn)},其中xϵXϵRn,yϵYϵ{1,−1}
输出:最大间隔分离超平面和分类决策函数
-
构造并求解约束最优化问题,求得w*和b*:
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) − 1 ⩾ 0 , i = 1 , 2.... n \underset{\mathbf{w},\mathbf{b}}{\min}\frac{1}{2}||\mathbf{w}||^2\,\, \\ \mathbf{s}.\mathbf{t}. \mathbf{y}_{\mathbf{i}}\left( \mathbf{w}^{\mathbf{T}}\mathbf{x}_{\mathbf{i}}+\mathbf{b} \right) -1\geqslant 0,\mathbf{i}=1,2....\mathbf{n} w,bmin21∣∣w∣∣2s.t.yi(wTxi+b)−1⩾0,i=1,2....n -
得到分离超平面:
W ∗ T + b ∗ = 0 \mathbf{W}^{*\mathbf{T}}+\mathbf{b}^*=0 W∗T+b∗=0 -
分类决策函数:
f ( x i ) = s g n ( W ∗ T x i + b ∗ ) \mathbf{f}\left( \mathbf{x}_{\mathbf{i}} \right) =sgn \left( \mathbf{W}^{*\mathbf{T}}\mathbf{x}_{\mathbf{i}}+\mathbf{b}^* \right) f(xi)=sgn(W∗Txi+b∗)
使用拉格朗日乘子法求解凸规划:
-
引入拉格朗日乘子αi≥0得到拉格朗日函数:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 m α i ( y i ( w T x i + b ) − 1 ) \mathbf{L}\left( \mathbf{w},\mathbf{b},\mathbf{\alpha } \right) =\frac{1}{2}||\mathbf{w}||^2-\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}\left( \mathbf{y}_{\mathbf{i}}\left( \mathbf{w}^{\mathbf{T}}\mathbf{x}_{\mathbf{i}}+\mathbf{b} \right) -1 \right)} L(w,b,α)=21∣∣w∣∣2−i=1∑mαi(yi(wTxi+b)−1) -
上式可以转换为(因为 g j ( x ) ⩾ 0 \mathbf{g}_{\mathbf{j}}\left( \mathbf{x} \right) \geqslant 0 gj(x)⩾0 , 所 以 是 ,所以是 ,所以是 max α i ⩾ 0 \underset{\mathbf{\alpha }_{\mathbf{i}}\geqslant 0}{\max} αi⩾0max):
min w , b θ ( w ) = min w , b max α i ⩾ 0 L ( w , b , α ) \underset{\mathbf{w},\mathbf{b}}{\min}\mathbf{\theta }\left( \mathbf{w} \right) =\underset{\mathbf{w},\mathbf{b}}{\min}\underset{\mathbf{\alpha }_{\mathbf{i}}\geqslant 0}{\max}\mathbf{L}\left( \mathbf{w},\mathbf{b},\mathbf{\alpha } \right) w,bminθ(w)=w,bminαi⩾0maxL(w,b,α) -
满足以下KTT条件时,上式等价于 max α i ⩾ 0 min w , b L ( w , b , α ) \underset{\mathbf{\alpha }_{\mathbf{i}}\geqslant 0}{\max}\underset{\mathbf{w},\mathbf{b}}{\min}\mathbf{L}\left( \mathbf{w},\mathbf{b},\mathbf{\alpha } \right) αi⩾0maxw,bminL(w,b,α):
{ α i ⩾ 0 , y i f ( x i ) ⩾ 1 , α i ( y i f ( x i ) − 1 ) = 0 \left\{ \begin{array}{c} \mathbf{\alpha }_{\mathbf{i}}\geqslant 0\text{,}\\ \mathbf{y}_{\mathbf{i}}\mathbf{f}\left( \mathbf{x}_{\mathbf{i}} \right) \geqslant 1,\\ \mathbf{\alpha }_{\mathbf{i}}\left( \mathbf{y}_{\mathbf{i}}\mathbf{f}\left( \mathbf{x}_{\mathbf{i}} \right) -1 \right) =0\\ \end{array} \right. ⎩⎨⎧αi⩾0,yif(xi)⩾1,αi(yif(xi)−1)=0 -
令L(w,b,α)对w和b的偏导为零可得:
w = ∑ i = 1 m α i y i x i , ∑ i = 1 m α i y i = 0 \mathbf{w}=\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}\mathbf{y}_{\mathbf{i}}\mathbf{x}_{\mathbf{i}}\text{,}}\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}\mathbf{y}_{\mathbf{i}}=0} w=i=1∑mαiyixi,i=1∑mαiyi=0 -
代回原式,进一步简化目标函数,转化为优化 α i \mathbf{\alpha }_{\mathbf{i}} αi,总共m个 α i \mathbf{\alpha }_{\mathbf{i}} αi:
min α 1 2 ∑ i = 1 m ∑ 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 , α i ⩾ 0 , i = 1 , 2 , . . . , m \underset{\mathbf{\alpha }}{\min}\frac{1}{2}\sum_{\mathbf{i}=1}^{\mathbf{m}}{\sum_{\mathbf{j}=1}^{\mathbf{m}}{\begin{array}{c} \mathbf{\alpha }_{\mathbf{i}}\mathbf{\alpha }_{\mathbf{j}}\mathbf{y}_{\mathbf{i}}\mathbf{y}_{\mathbf{j}}\mathbf{x}_{\mathbf{i}}^{\mathbf{T}}\mathbf{x}_{\mathbf{j}}-\sum_{\mathbf{i}=1}^{\mathbf{m}}{\begin{array}{c} \begin{array}{c} \mathbf{\alpha }_{\mathbf{i}}\\ \end{array}\\ \end{array}}\\ \end{array}}} \\ \mathbf{s}.\mathbf{t}.\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}\mathbf{y}_{\mathbf{i}}=0},\mathbf{\alpha }_{\mathbf{i}}\geqslant 0,\mathbf{i}=1,2,...,\mathbf{m} αmin21i=1∑mj=1∑mαiαjyiyjxiTxj−∑i=1mαis.t.i=1∑mαiyi=0,αi⩾0,i=1,2,...,m -
使用序列最小化算法SMO求解,假定已经得到最优化参数向量 α ∗ \mathbf{\alpha }^* α∗,则:
w ∗ = ∑ i = 1 m α i ∗ y i x i \mathbf{w}^*=\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}^{*}\mathbf{y}_{\mathbf{i}}\mathbf{x}_{\mathbf{i}}\,\, } w∗=i=1∑mαi∗yixi
而由 W T x i + b i = y i \mathbf{W}^{\mathbf{T}}\mathbf{x}_{\mathbf{i}}+\mathbf{b}_{\mathbf{i}}=\mathbf{y}_{\mathbf{i}} WTxi+bi=yi得:
b j ∗ = y j − ∑ i = 1 m α i ∗ y i x i T x j , 且 α j ≠ 0 \mathbf{b}_{\mathbf{j}}^{*}=\mathbf{y}_{\mathbf{j}}-\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}^{*}\mathbf{y}_{\mathbf{i}}\mathbf{x}_{\mathbf{i}}^{\mathbf{T}}\mathbf{x}_{\mathbf{j}},}\text{且}\mathbf{\alpha }_{\mathbf{j}}\ne 0 bj∗=yj−i=1∑mαi∗yixiTxj,且αj=0 -
最终的分类决策函数:
f ( x j ) = s g n ( ∑ i = 1 m α i ∗ y i x i T x j + b ∗ ) \mathbf{f}\left( \mathbf{x}_{\mathbf{j}} \right) =sgn \left( \sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}^{*}\mathbf{y}_{\mathbf{i}}\mathbf{x}_{\mathbf{i}}^{\mathbf{T}}\mathbf{x}_{\mathbf{j}}}+\mathbf{b}^* \right) f(xj)=sgn(i=1∑mαi∗yixiTxj+b∗) -
分析KKT条件的 y i f ( x i ) ⩾ 1 \mathbf{y}_{\mathbf{i}}\mathbf{f}\left( \mathbf{x}_{\mathbf{i}} \right) \geqslant 1 yif(xi)⩾1和 α i ( y i f ( x i ) − 1 ) = 0 \mathbf{\alpha }_{\mathbf{i}}\left( \mathbf{y}_{\mathbf{i}}\mathbf{f}\left( \mathbf{x}_{\mathbf{i}} \right) -1 \right) =0 αi(yif(xi)−1)=0:
w h e n y i f ( x i ) > 1 ⟹ α i = 0 \mathbf{when}\,\,\mathbf{y}_{\mathbf{i}}\mathbf{f}\left( \mathbf{x}_{\mathbf{i}} \right) >1\Longrightarrow \mathbf{\alpha }_{\mathbf{i}}=0 whenyif(xi)>1⟹αi=0
即:支持向量机具有稀疏性,训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。
-
然后使用SMO算法求解优化参数 α i , i ϵ { 1 , 2 , . . . , m } \mathbf{\alpha }_{\mathbf{i}},\mathbf{i\epsilon }\left\{ 1,2,...,\mathbf{m} \right\} αi,iϵ{1,2,...,m}:
第一步:选取一对 α i \mathbf{\alpha }_{\mathbf{i}} αi 和 和 和 α j \mathbf{\alpha }_{\mathbf{j}} αj进行更新。
第二步:固定 α i \mathbf{\alpha }_{\mathbf{i}} αi 和 和 和 α j \mathbf{\alpha }_{\mathbf{j}} αj以外的参数,仅考虑 α i \mathbf{\alpha }_{\mathbf{i}} αi 和 和 和 α j \mathbf{\alpha }_{\mathbf{j}} αj求解对偶问题,则对偶问题的约束变为:
∑ i = 1 m α i y i = 0 变 为 → α i y i + α j y j = − ∑ k ≠ i , j m α k y k , α i ⩾ 0 , α j ⩾ 0 \sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}\mathbf{y}_{\mathbf{i}}=0}\underrightarrow{\text{ 变 } 为 } \mathbf{\alpha }_{\mathbf{i}}\mathbf{y}_{\mathbf{i}}+\mathbf{\alpha }_{\mathbf{j}}\mathbf{y}_{\mathbf{j}}=-\sum_{\mathbf{k}\ne \mathbf{i},\mathbf{j}}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{k}}\mathbf{y}_{\mathbf{k}}\text{,}}\mathbf{\alpha }_{\mathbf{i}}\geqslant 0,\mathbf{\alpha }_{\mathbf{j}}\geqslant 0 i=1∑mαiyi=0 变 为αiyi+αjyj=−k=i,j∑mαkyk,αi⩾0,αj⩾0
第三步:通过第二步得出的 α i \mathbf{\alpha }_{\mathbf{i}} αi和 α j \mathbf{\alpha }_{\mathbf{j}} αj的等式关系,选取保留其中一者,例如 α i \mathbf{\alpha }_{\mathbf{i}} αi = g ( =g( =g( α j \mathbf{\alpha }_{\mathbf{j}} αj)代入目标函数:
min α 1 2 ∑ i = 1 m ∑ j = 1 m α i g ( α j ) y i y j x i T x j − ∑ i = 1 m α i s . t . α i ⩾ 0 , i = 1 , 2 , . . . , m \underset{\mathbf{\alpha }}{\min}\frac{1}{2}\sum_{\mathbf{i}=1}^{\mathbf{m}}{\sum_{\mathbf{j}=1}^{\mathbf{m}}{\begin{array}{c} \mathbf{\alpha }_{\mathbf{i}}\mathbf{g}\left( \mathbf{\alpha }_{\mathbf{j}} \right) \mathbf{y}_{\mathbf{i}}\mathbf{y}_{\mathbf{j}}\mathbf{x}_{\mathbf{i}}^{\mathbf{T}}\mathbf{x}_{\mathbf{j}}-\sum_{\mathbf{i}=1}^{\mathbf{m}}{\begin{array}{c} \begin{array}{c} \mathbf{\alpha }_{\mathbf{i}}\\ \end{array}\\ \end{array}}\\ \end{array}}} \\ \mathbf{s}.\mathbf{t}.\mathbf{\alpha }_{\mathbf{i}}\geqslant 0,\mathbf{i}=1,2,...,\mathbf{m} αmin21i=1∑mj=1∑mαig(αj)yiyjxiTxj−∑i=1mαis.t.αi⩾0,i=1,2,...,m
第四步:针对上式再次求解该目标函数的凸优化问题,得到 α i \mathbf{\alpha }_{\mathbf{i}} αi和 α j \mathbf{\alpha }_{\mathbf{j}} αj的更新值, 然后求解出w * 和 b *。
例题:
- 给定正例x1=(3,3),x2=(4,3),负例x3=(1,1),计算支 持向量、分类决策函数和分类超平面方程。
2.线性支持向量机(linear support vector machine)
- 核心:软间隔最大化(soft margin maximization)
- 数据对象:近似线性可分数据(大部分数据线性可分,有些不可分
训练数据中有一些特异点(outlier),不能满足函数间隔大于等于1的约束条件,引入一个松弛变量 𝜉𝑖,将约束条件转化为 :
y
i
(
w
T
x
i
+
b
)
⩾
1
−
ξ
i
\mathbf{y}_{\mathbf{i}}\left( \mathbf{w}^{\mathbf{T}}\mathbf{x}_{\mathbf{i}}+\mathbf{b} \right) \geqslant 1-\mathbf{\xi }_{\mathbf{i}}
yi(wTxi+b)⩾1−ξi
而其中,𝜉𝑖的取值越大,模型对错误分类的容忍程度越高;其中𝐶 > 0是为惩罚因子。
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i s . t . y i ( w T x i + b ) ⩾ 1 − ξ i , ξ i ⩾ 0 \underset{\mathbf{w},\mathbf{b}}{\min}\frac{1}{2}||\mathbf{w}||^2+\mathbf{C}\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\xi }_{\mathbf{i}}}\,\, \\ \mathbf{s}.\mathbf{t}.\mathbf{y}_{\mathbf{i}}\left( \mathbf{w}^{\mathbf{T}}\mathbf{x}_{\mathbf{i}}+\mathbf{b} \right) \geqslant 1-\mathbf{\xi }_{\mathbf{i}},\mathbf{\xi }_{\mathbf{i}}\geqslant 0 w,bmin21∣∣w∣∣2+Ci=1∑mξis.t.yi(wTxi+b)⩾1−ξi,ξi⩾0
- 上述优化问题对应的拉格朗日函数为:
L ( w , b , α , ξ , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i − ∑ i = 1 m α i ( y i ( w T x i + b ) − 1 + ξ i ) − ∑ i = 1 m μ i ξ i \mathbf{L}\left( \mathbf{w},\mathbf{b},\mathbf{\alpha },\mathbf{\xi },\mathbf{\mu } \right) =\frac{1}{2}||\mathbf{w}||^2+\mathbf{C}\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\xi }_{\mathbf{i}}}\,\,-\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}\left( \mathbf{y}_{\mathbf{i}}\left( \mathbf{w}^{\mathbf{T}}\mathbf{x}_{\mathbf{i}}+\mathbf{b} \right) -1+\mathbf{\xi }_{\mathbf{i}} \right)}-\sum_{\mathbf{i}=1}^{\mathbf{m}}{\begin{array}{c} \begin{array}{c} \mathbf{\mu }_{\mathbf{i}}\\ \end{array}\\ \end{array}\mathbf{\xi }_{\mathbf{i}}} L(w,b,α,ξ,μ)=21∣∣w∣∣2+Ci=1∑mξi−i=1∑mαi(yi(wTxi+b)−1+ξi)−i=1∑mμiξi
即有:
min α 1 2 ∑ i = 1 m ∑ 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 , μ i = C − α i \underset{\mathbf{\alpha }}{\min}\frac{1}{2}\sum_{\mathbf{i}=1}^{\mathbf{m}}{\sum_{\mathbf{j}=1}^{\mathbf{m}}{\begin{array}{c} \begin{array}{c} \mathbf{\alpha }_{\mathbf{i}}\mathbf{\alpha }_{\mathbf{j}}\mathbf{y}_{\mathbf{i}}\mathbf{y}_{\mathbf{j}}\mathbf{x}_{\mathbf{i}}^{\mathbf{T}}\mathbf{x}_{\mathbf{j}}-\sum_{\mathbf{i}=1}^{\mathbf{m}}{\begin{array}{c} \begin{array}{c} \mathbf{\alpha }_{\mathbf{i}}\\ \end{array}\\ \end{array}}\\ \end{array}\,\,\\ \end{array}}}\,\, \\ \mathbf{s}.\mathbf{t}.\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}\mathbf{y}_{\mathbf{i}}=0},0\leqslant \mathbf{\alpha }_{\mathbf{i}}\leqslant \mathbf{C},\mathbf{\mu }_{\mathbf{i}}=\mathbf{C}-\mathbf{\alpha }_{\mathbf{i}} αmin21i=1∑mj=1∑mαiαjyiyjxiTxj−∑i=1mαis.t.i=1∑mαiyi=0,0⩽αi⩽C,μi=C−αi
计算最优参数向量 α i \mathbf{\alpha }_{\mathbf{i}} αi后,可求得对应的软间隔支持向量 机模型:
f ( x j ) = s g n ( ∑ i = 1 m α i ∗ y i x i T x j + b ∗ ) \mathbf{f}\left( \mathbf{x}_{\mathbf{j}} \right) =sgn \left( \sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}^{*}\mathbf{y}_{\mathbf{i}}\mathbf{x}_{\mathbf{i}}^{\mathbf{T}}\mathbf{x}_{\mathbf{j}}}+\mathbf{b}^* \right) f(xj)=sgn(i=1∑mαi∗yixiTxj+b∗)
其中, w ∗ = ∑ i = 1 m α i ∗ y i x i \mathbf{w}^*=\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}^{*}\mathbf{y}_{\mathbf{i}}\mathbf{x}_{\mathbf{i}}\,\, } w∗=∑i=1mαi∗yixi, b j ∗ = y j − ∑ i = 1 m α i ∗ y i x i T x j , 且 α j ≠ 0 \mathbf{b}_{\mathbf{j}}^{*}=\mathbf{y}_{\mathbf{j}}-\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}^{*}\mathbf{y}_{\mathbf{i}}\mathbf{x}_{\mathbf{i}}^{\mathbf{T}}\mathbf{x}_{\mathbf{j}},}\text{且}\mathbf{\alpha }_{\mathbf{j}}\ne 0 bj∗=yj−∑i=1mαi∗yixiTxj,且αj=0, ξ j = 0 \mathbf{\xi }_{\mathbf{j}}=0 ξj=0(与硬间隔不同之处在于,优化问题的约束条件不同,多了 ξ j = 0 \mathbf{\xi }_{\mathbf{j}}=0 ξj=0)。
3.非线性支持向量机(non-linear support vector machine)
- 核心:引入核函数(kernel function)及软间隔最大化
- 数据对象:非线性数据
设两个向量
x
1
=
(
η
1
,
η
2
)
T
,
x
2
=
(
ξ
1
,
ξ
2
)
T
\mathbf{x}_1=\left( \mathbf{\eta }_1,\mathbf{\eta }_2 \right) ^{\mathbf{T}},\mathbf{x}_2=\left( \mathbf{\xi }_1,\mathbf{\xi }_2 \right) ^{\mathbf{T}}
x1=(η1,η2)T,x2=(ξ1,ξ2)T,
ϕ
(
x
)
\mathbf{\phi }\left( \mathbf{x} \right)
ϕ(x)表示之前2维->5维的映射,映射过后的内积是:
(
ϕ
(
x
1
)
,
ϕ
(
x
2
)
)
=
η
1
ξ
1
+
η
1
2
ξ
1
2
+
η
2
ξ
2
+
η
2
2
ξ
2
2
+
η
1
η
2
ξ
1
ξ
2
\left( \mathbf{\phi }\left( \mathbf{x}_1 \right) ,\mathbf{\phi }\left( \mathbf{x}_2 \right) \right) =\mathbf{\eta }_1\mathbf{\xi }_1+\mathbf{\eta }_{1}^{2}\mathbf{\xi }_{1}^{2}+\mathbf{\eta }_2\mathbf{\xi }_2+\mathbf{\eta }_{2}^{2}\mathbf{\xi }_{2}^{2}+\mathbf{\eta }_1\mathbf{\eta }_2\mathbf{\xi }_1\mathbf{\xi }_2
(ϕ(x1),ϕ(x2))=η1ξ1+η12ξ12+η2ξ2+η22ξ22+η1η2ξ1ξ2
而经过观察发现,我们可以2维的样本的内积变换结果和5维的内积结果的形式很接近
:
(
(
x
1
,
x
2
)
+
1
)
2
=
2
η
1
ξ
1
+
η
1
2
ξ
1
2
+
2
η
2
ξ
2
+
η
2
2
ξ
2
2
+
2
η
1
η
2
ξ
1
ξ
2
+
1
\left( \left( \mathbf{x}_1,\mathbf{x}_2 \right) +1 \right) ^2=2\mathbf{\eta }_1\mathbf{\xi }_1+\mathbf{\eta }_{1}^{2}\mathbf{\xi }_{1}^{2}+2\mathbf{\eta }_2\mathbf{\xi }_2+\mathbf{\eta }_{2}^{2}\mathbf{\xi }_{2}^{2}+2\mathbf{\eta }_1\mathbf{\eta }_2\mathbf{\xi }_1\mathbf{\xi }_2+1
((x1,x2)+1)2=2η1ξ1+η12ξ12+2η2ξ2+η22ξ22+2η1η2ξ1ξ2+1
只要把某几个维度线性缩放一下,然后再加上一个常数维度,两者相等,区别是:
- 一个是映射到高维空间中,然后再根据内积的公式进行计算。
- 另一个则直接在原来的低维空间中进行计算,而不需要显式地写出映射后的结果。
设样本x映射后的向量为
ϕ
(
x
)
\,\,\mathbf{\phi }\left( \mathbf{x} \right)
ϕ(x), 划分超平面为:
f
(
x
)
=
w
T
ϕ
(
x
)
+
b
\mathbf{f}\left( \mathbf{x} \right) =\mathbf{w}^{\mathbf{T}}\,\,\mathbf{\phi }\left( \mathbf{x} \right) +\mathbf{b}
f(x)=wTϕ(x)+b
原始问题:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
ϕ
(
x
i
)
+
b
)
−
1
⩾
0
,
i
=
1
,
2....
m
\underset{\mathbf{w},\mathbf{b}}{\min}\frac{1}{2}||\mathbf{w}||^2 \\ \mathbf{s}.\mathbf{t}. \mathbf{y}_{\mathbf{i}}\left( \mathbf{w}^{\mathbf{T}}\mathbf{\phi }\left( \mathbf{x}_{\mathbf{i}} \right) +\mathbf{b} \right) -1\geqslant 0,\mathbf{i}=1,2....\mathbf{m}
w,bmin21∣∣w∣∣2s.t.yi(wTϕ(xi)+b)−1⩾0,i=1,2....m
而转换为对偶问题为:
min
α
1
2
∑
i
=
1
m
∑
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
,
α
i
⩾
0
,
i
=
1
,
2
,
.
.
.
,
m
\underset{\mathbf{\alpha }}{\min}\frac{1}{2}\sum_{\mathbf{i}=1}^{\mathbf{m}}{\sum_{\mathbf{j}=1}^{\mathbf{m}}{\begin{array}{c} \begin{array}{c} \mathbf{\alpha }_{\mathbf{i}}\mathbf{\alpha }_{\mathbf{j}}\mathbf{y}_{\mathbf{i}}\mathbf{y}_{\mathbf{j}}\mathbf{\phi }\left( \mathbf{x}_{\mathbf{i}} \right) ^{\mathbf{T}}\mathbf{\phi }\left( \mathbf{x}_{\mathbf{j}} \right) -\sum_{\mathbf{i}=1}^{\mathbf{m}}{\begin{array}{c} \begin{array}{c} \mathbf{\alpha }_{\mathbf{i}}\\ \end{array}\\ \end{array}}\\ \end{array}\,\,\\ \end{array}}} \\ \mathbf{s}.\mathbf{t}.\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}\mathbf{y}_{\mathbf{i}}=0},\mathbf{\alpha }_{\mathbf{i}}\geqslant 0,\mathbf{i}=1,2,...,\mathbf{m}
αmin21i=1∑mj=1∑mαiαjyiyjϕ(xi)Tϕ(xj)−∑i=1mαis.t.i=1∑mαiyi=0,αi⩾0,i=1,2,...,m
而预测的决策函数为:
f
(
x
)
=
w
T
ϕ
(
x
)
+
b
=
∑
i
=
1
m
α
i
∗
y
i
ϕ
(
x
i
)
T
ϕ
(
x
j
)
+
b
∗
\mathbf{f}\left( \mathbf{x} \right) =\mathbf{w}^{\mathbf{T}}\,\,\mathbf{\phi }\left( \mathbf{x} \right) +\mathbf{b}=\sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}^{*}\mathbf{y}_{\mathbf{i}}\mathbf{\phi }\left( \mathbf{x}_{\mathbf{i}} \right) ^{\mathbf{T}}\mathbf{\phi }\left( \mathbf{x}_{\mathbf{j}} \right) +\mathbf{b}^*}
f(x)=wTϕ(x)+b=i=1∑mαi∗yiϕ(xi)Tϕ(xj)+b∗
这里主要考虑优化
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\mathbf{\phi }\left( \mathbf{x}_{\mathbf{i}} \right) ^{\mathbf{T}}\mathbf{\phi }\left( \mathbf{x}_{\mathbf{j}} \right)
ϕ(xi)Tϕ(xj)的计算,如果是显式地计算出
ϕ
(
x
i
)
\mathbf{\phi }\left( \mathbf{x}_{\mathbf{i}} \right)
ϕ(xi)和
ϕ
(
x
j
)
\mathbf{\phi }\left( \mathbf{x}_{\mathbf{j}} \right)
ϕ(xj),然后再计算出
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\mathbf{\phi }\left( \mathbf{x}_{\mathbf{i}} \right) ^{\mathbf{T}}\mathbf{\phi }\left( \mathbf{x}_{\mathbf{j}} \right)
ϕ(xi)Tϕ(xj)则会需要超量的计算。
于是,我们提出不显式地设计核映射, 而是设计核函数
:
k
(
x
i
,
x
j
)
=
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\mathbf{k}\left( \mathbf{x}_{\mathbf{i}},\mathbf{x}_{\mathbf{j}} \right) =\mathbf{\phi }\left( \mathbf{x}_{\mathbf{i}} \right) ^{\mathbf{T}}\mathbf{\phi }\left( \mathbf{x}_{\mathbf{j}} \right)
k(xi,xj)=ϕ(xi)Tϕ(xj)
而我们设计的标准可以参考Mercer定理(充分非必要
): 只要一个对称函数所对应的核矩阵半正定
, 则它就能作为核函数
来使用。
常用核函数:
核函数的价值在于它虽然也是将特征进行从低维到高维的转换,但核函数的本质是在它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就避免了直接在高维空间中的复杂计算。
解释:为什么这么多的认知中核函数是一种映射呢。一来这两件事一般先后进行,所以常常被混为一谈。二来就像前面所述,核函数让人们不需要知道 ϕ ( x i ) \mathbf{\phi }\left( \mathbf{x}_{\mathbf{i}} \right) ϕ(xi)长什么样,不需要知道怎么选取映射,就能够算出内积。因此这常常被认作是一种 implicit mapping。这是 由Mercer Theorem保证的,即只要核函数满足一定条件,那么映射空间一定存在。