现在考虑一个信号的二分类问题,设样本为
x
n
,
n
=
1
,
.
.
.
,
N
\boldsymbol{x}_n,n=1,...,N
xn,n=1,...,N,这些样本隶属于两个类别
y
=
1
y=1
y=1或
y
=
−
1
y=-1
y=−1,现在依据上述已有的样本以及每个样本的标签,我们要对一个新的样本
x
\boldsymbol{x}
x进行判别,它是属于
y
=
1
y=1
y=1还是
y
=
−
1
y=-1
y=−1的类别,一个很直观的思路是利用已有样本和其标签去拟合得到样本属性和类别之间的函数关系式,设两者之间的函数关系式为
y
=
f
(
x
)
y=f(\boldsymbol{x})
y=f(x),以均方误差作为判定标准,得到如下优化问题
m
i
n
f
(
x
)
∑
n
=
1
N
[
y
n
−
f
(
x
n
)
]
2
=
m
i
n
w
∑
n
=
1
N
[
y
n
−
w
T
x
n
]
2
(1)
\begin{equation} \begin{aligned} \underset{f(\boldsymbol{x})}{{\rm min}}\sum_{n=1}^N [y_n-f(\boldsymbol{x}_n)]^2=\underset{\boldsymbol{w}}{{\rm min}}\sum_{n=1}^N [y_n-\boldsymbol{w}^{\rm T}\boldsymbol{x}_n]^2 \end{aligned} \end{equation}\tag{1}
f(x)minn=1∑N[yn−f(xn)]2=wminn=1∑N[yn−wTxn]2(1)
其中(1)第二个等式是将模型
f
(
x
)
f(\boldsymbol{x})
f(x)限制为线性模型。显然,上面的处理思路是直观且可行的,但是上述这种适用于连续结果的信号拟合思路,用在二分类问题中总是会显得有点大材小用。因此我们考虑能否结合问题的特殊性,找到更简单的处理思路。
以下首先以线性可分的情况来进行研究,如下图所示有两类点,可以通过一个一条之间将两类点很好地进行区分。现在,假设有一个新的点,要获知它的类别,可以尝试以下思路:
首先在已有的两类样本中分别找一个点作为两类样本的代表点(这边以两类样本点的重心点作为各自样本的代表点),则这两个代表点可以分别表示为
x
+
=
1
m
+
∑
y
n
=
1
x
n
\boldsymbol{x}_+=\frac{1}{m_+}\sum_{y_n=1}\boldsymbol{x}_n
x+=m+1∑yn=1xn,
x
−
=
1
m
−
∑
y
n
=
−
1
x
n
\boldsymbol{x}_-=\frac{1}{m_-}\sum_{y_n=-1}\boldsymbol{x}_n
x−=m−1∑yn=−1xn,其中
m
+
,
m
−
m_+,m_-
m+,m−分别表示两类样本的样本数,则可以得到这两个代表点的向量
x
+
x
−
⃗
=
x
+
−
x
−
\vec{x_+ x_-}=\boldsymbol{x}_+-\boldsymbol{x}_-
x+x−=x+−x−,两者的中点可以表示为
x
m
=
1
2
(
x
+
+
x
−
)
\boldsymbol{x}_m=\frac{1}{2}(\boldsymbol{x}_+ + \boldsymbol{x}_-)
xm=21(x++x−),从上面的示意图可以看出,可以利用待分类点
x
\boldsymbol{x}
x与
x
m
\boldsymbol{x}_m
xm组成的向量与向量
x
+
x
−
⃗
\vec{x_+ x_-}
x+x−之间夹角的夹角来判定
x
\boldsymbol{x}
x的类别,也就是两个向量的内积(甚至只需要内积的符号即可),所以其判定准则可以表示为:
f
(
x
)
=
<
x
+
−
x
−
,
x
−
x
m
>
=
<
x
+
−
x
−
,
x
>
−
<
x
+
−
x
−
,
x
m
>
=
1
m
+
∑
y
n
=
1
x
n
T
x
−
1
m
−
∑
y
n
=
−
1
x
n
T
x
−
b
=
∑
n
=
1
N
α
k
x
n
T
x
−
b
(2)
\begin{equation} \begin{aligned} f(\boldsymbol{x})&=<\boldsymbol{x}_+ - \boldsymbol{x}_-,\boldsymbol{x}-\boldsymbol{x}_m>=<\boldsymbol{x}_+ - \boldsymbol{x}_-,\boldsymbol{x}>-<\boldsymbol{x}_+ - \boldsymbol{x}_-,\boldsymbol{x}_m>\\ &=\frac{1}{m_+}\sum_{y_n=1}\boldsymbol{x}_n^{\rm T}\boldsymbol{x}-\frac{1}{m_-}\sum_{y_n=-1}\boldsymbol{x}_n^{\rm T}\boldsymbol{x}-b=\sum_{n=1}^N\alpha_k\boldsymbol{x}_n^{\rm T}\boldsymbol{x}-b \end{aligned} \end{equation}\tag{2}
f(x)=<x+−x−,x−xm>=<x+−x−,x>−<x+−x−,xm>=m+1yn=1∑xnTx−m−1yn=−1∑xnTx−b=n=1∑NαkxnTx−b(2)
显然,(2)对应的判别函数是一个超平面(当样本维数为2时,对应的是一条直线)。
上面仅仅是一个示意性的推导过程,在实际情况下其实并不是很合理,因为我们其实更希望的是两个类别的边界上的样本点的距离越远越好,而不是中间样本点的距离。显然按照这个思路,我们需要求点到超平面的距离,可设超平面方程为
w
T
x
+
b
=
0
\boldsymbol{w}^{\rm T}\boldsymbol{x}+b=0
wTx+b=0,现在要求平面外一点
x
\boldsymbol{x}
x与该平面的距离,设
x
0
\boldsymbol{x}_0
x0为该点在平面上的投影,则显然
x
\boldsymbol{x}
x与其投影点的连线应该平行于平面的法向量,所以这两个向量的内积就等于两个向量各自模的乘积,即
<
w
,
x
−
x
0
>
=
∣
∣
w
∣
∣
∣
∣
x
−
x
0
∣
∣
(3)
<\boldsymbol{w},\boldsymbol{x}-\boldsymbol{x}_0>=||\boldsymbol{w}||||\boldsymbol{x}-\boldsymbol{x}_0||\tag{3}
<w,x−x0>=∣∣w∣∣∣∣x−x0∣∣(3)
其中
∣
∣
x
−
x
0
∣
∣
||\boldsymbol{x}-\boldsymbol{x}_0||
∣∣x−x0∣∣即为我们要求的点到平面的距离,所以
∣
∣
x
−
x
0
∣
∣
=
∣
<
w
,
x
−
x
0
>
∣
∣
∣
w
∣
∣
=
∣
<
w
,
x
>
−
<
w
,
x
0
>
∣
∣
∣
w
∣
∣
=
∣
w
T
x
−
w
T
x
0
∣
∣
∣
w
∣
∣
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
(4)
\begin{equation} \begin{aligned} ||\boldsymbol{x}-\boldsymbol{x}_0||&=\frac{|<\boldsymbol{w},\boldsymbol{x}-\boldsymbol{x}_0>|}{||\boldsymbol{w}||}=\frac{|<\boldsymbol{w},\boldsymbol{x}>-<\boldsymbol{w},\boldsymbol{x}_0>|}{||\boldsymbol{w}||}\\ &=\frac{|\boldsymbol{w}^{\rm T}\boldsymbol{x}-\boldsymbol{w}^{\rm T}\boldsymbol{x}_0|}{||\boldsymbol{w}||}=\frac{|\boldsymbol{w}^{\rm T}\boldsymbol{x}+b|}{||\boldsymbol{w}||} \end{aligned} \end{equation}\tag{4}
∣∣x−x0∣∣=∣∣w∣∣∣<w,x−x0>∣=∣∣w∣∣∣<w,x>−<w,x0>∣=∣∣w∣∣∣wTx−wTx0∣=∣∣w∣∣∣wTx+b∣(4)
现在我们的判定准则是希望两类样本中与超平面距离最近的点之间的距离最远,以下对这一问题进行建模处理,现在的问题可以按如下进行表示
m
a
x
w
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
(5)
\begin{equation} \begin{aligned} \underset{\boldsymbol{w}}{{\rm max}}\frac{|\boldsymbol{w}^{\rm T}\boldsymbol{x}+b|}{||\boldsymbol{w}||} \end{aligned} \end{equation}\tag{5}
wmax∣∣w∣∣∣wTx+b∣(5)
上面的式子并不是很好求解,为此,我们考虑通过对超平面参数的调整(如对b的调整,相当于将超平面左右移动)使得
w
T
x
n
+
b
≤
−
1
,
y
n
=
−
1
w
T
x
n
+
b
≥
1
,
y
n
=
1
(6)
\begin{equation} \begin{aligned} \boldsymbol{w}^{\rm T}\boldsymbol{x}_n+b \leq -1, y_n=-1\\ \boldsymbol{w}^{\rm T}\boldsymbol{x}_n+b \geq 1, y_n=1\\ \end{aligned} \end{equation}\tag{6}
wTxn+b≤−1,yn=−1wTxn+b≥1,yn=1(6)
所以此时(5)的优化问题可以转化为
m
a
x
w
2
∣
∣
w
∣
∣
,
s
.
t
.
y
n
(
w
T
x
n
+
b
)
≥
1
→
m
i
n
w
1
2
∣
∣
w
∣
∣
2
,
s
.
t
.
1
−
y
n
(
w
T
x
n
+
b
)
≤
0
(7)
\begin{equation} \begin{aligned} \underset{\boldsymbol{w}}{{\rm max}}\frac{2}{||\boldsymbol{w}||},\quad {\rm s.t.}\quad y_n(\boldsymbol{w}^{\rm T}\boldsymbol{x}_n+b)\geq 1 \quad \rightarrow\\ \underset{\boldsymbol{w}}{{\rm min}}\frac{1}{2}||\boldsymbol{w}||^2,\quad {\rm s.t.}\quad 1-y_n(\boldsymbol{w}^{\rm T}\boldsymbol{x}_n+b) \leq 0 \end{aligned} \end{equation}\tag{7}
wmax∣∣w∣∣2,s.t.yn(wTxn+b)≥1→wmin21∣∣w∣∣2,s.t.1−yn(wTxn+b)≤0(7)
用拉格朗日方法来计算上面的优化问题有
L
(
w
,
α
,
b
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
n
=
1
N
α
n
(
1
−
y
n
(
w
T
x
n
+
b
)
)
(8)
L(\boldsymbol{w},\boldsymbol{\alpha},b)=\frac{1}{2}||\boldsymbol{w}||^2+\sum_{n=1}^N \alpha_n(1-y_n(\boldsymbol{w}^{\rm T}\boldsymbol{x}_n+b))\tag{8}
L(w,α,b)=21∣∣w∣∣2+n=1∑Nαn(1−yn(wTxn+b))(8)
对各个变量求梯度有
Δ
w
L
=
w
−
∑
n
=
1
N
α
n
y
n
x
n
=
0
,
→
w
=
∑
n
=
1
N
α
n
y
n
x
n
Δ
α
k
L
=
1
−
y
n
(
w
T
x
n
+
b
)
=
0
,
→
y
n
(
w
T
x
n
+
b
)
=
1
Δ
b
L
=
−
∑
n
=
1
N
α
n
y
n
=
0
(9)
\begin{equation} \begin{aligned} &\Delta_{\boldsymbol{w}}L=\boldsymbol{w}-\sum_{n=1}^N \alpha_n y_n \boldsymbol{x}_n=0,\rightarrow \quad \boldsymbol{w}=\sum_{n=1}^N \alpha_n y_n \boldsymbol{x}_n\\ &\Delta_{\alpha_k}L=1-y_n(\boldsymbol{w}^{\rm T}\boldsymbol{x}_n+b)=0,\rightarrow \quad y_n(\boldsymbol{w}^{\rm T}\boldsymbol{x}_n+b)=1\\ &\Delta_{b}L=-\sum_{n=1}^N \alpha_n y_n=0 \end{aligned} \end{equation}\tag{9}
ΔwL=w−n=1∑Nαnynxn=0,→w=n=1∑NαnynxnΔαkL=1−yn(wTxn+b)=0,→yn(wTxn+b)=1ΔbL=−n=1∑Nαnyn=0(9)
在(9)中需要得到
α
n
\alpha_n
αn才能求得
w
\boldsymbol{w}
w,此时可以将
w
\boldsymbol{w}
w的表达式带入代入目标函数中,我们得到:
1
2
∣
∣
w
∣
∣
2
=
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
x
i
T
x
j
(10)
\frac{1}{2}||\boldsymbol{w}||^2=\frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N\alpha_i \alpha_j y_i y_j \boldsymbol{x}_i^{\rm T} \boldsymbol{x}_j\tag{10}
21∣∣w∣∣2=21i=1∑Nj=1∑NαiαjyiyjxiTxj(10)
上面是一个二次优化的问题,结合(9)中
α
\alpha
α需要满足的约束条件,我们最终可以求得
w
=
∑
n
=
1
N
α
n
y
n
x
n
\boldsymbol{w}=\sum_{n=1}^N \alpha_n y_n \boldsymbol{x}_n
w=∑n=1Nαnynxn。所以最终判决标准可以表示为
f
(
x
n
)
=
s
g
n
(
∑
n
=
1
N
α
n
y
n
x
n
T
x
n
+
b
)
(11)
f(\boldsymbol{x}_n)={\rm sgn}(\sum_{n=1}^N \alpha_n y_n \boldsymbol{x}_n^{\rm T}\boldsymbol{x}_n+b)\tag{11}
f(xn)=sgn(n=1∑NαnynxnTxn+b)(11)
上面整个推导过程其实就是支持向量机的内容。
从上面的推导结果我们可以得出一个结论:当样本是线性可分时,它的分类判决标准中的核心操作是对样本的内积。这一结论将有助于启迪后续核函数的思想。
上面研究的均是线性可分的情况,这种情况未免太过理想,在实际应用中,不同类别的样本往往是线性不可分的,比如下图所示的情况
对图2所示情况,用一条直线显然不足以将两类样本分开,此时就是线性不可分的情况。对于图2第一幅来说,其判决边界是一个圆,所以其判决准则可以写成 x 1 2 + x 2 2 ≷ r 2 x_1^2+x_2^2 \gtrless r^2 x12+x22≷r2的形式。对于图2第二副图来说,其判决边界是一个椭圆,所以其判决准则可以写成 ( a x 1 + b x 2 ) 2 + c x 2 2 = a 2 x 1 2 + 2 a b x 1 x 2 + ( b + c ) x 2 2 ≷ r 2 (ax_1+bx_2)^2+cx_2^2=a^2 x_1^2+2ab x_1 x_2+(b+c)x_2^2\gtrless r^2 (ax1+bx2)2+cx22=a2x12+2abx1x2+(b+c)x22≷r2的形式。显然,线性不可分的情况太过复杂,我们很希望能将其转化成一个线性可分的情况,所以我们尝试对上面的判决准则做一个变量代换,即: y 1 = a 2 x 1 2 , y 2 = 2 a b x 1 x 2 , y 3 = ( b + c ) x 2 2 y_1=a^2 x_1^2,y_2=2abx_1x_2,y_3=(b+c)x_2^2 y1=a2x12,y2=2abx1x2,y3=(b+c)x22,这样判决准则就变成了 y 1 + y 2 + y 3 ≷ r 2 y_1+y_2+y_3 \gtrless r^2 y1+y2+y3≷r2,显然在原来二维空间中线性不可分的问题,在三维空间中变得线性可分了。而根据上面推导出来的线性可分的判决条件,我们其实不必要去关注维度提升之后,样本在高纬度空间中的具体形式,而只需要知道维度提升之后样本在新的高维空间中的内积就行了,这个思想其实就是核函数的思想,而样本的内积操作就是核函数思想中最核心的东西。
据此,由上面的分析可知,当样本线性可分时,其分类的判定准则表示为
f
(
x
n
)
=
s
g
n
(
∑
n
=
1
N
α
n
y
n
x
n
T
x
n
+
b
)
(12)
f(\boldsymbol{x}_n)={\rm sgn}(\sum_{n=1}^N \alpha_n y_n \boldsymbol{x}_n^{\rm T}\boldsymbol{x}_n+b)\tag{12}
f(xn)=sgn(n=1∑NαnynxnTxn+b)(12)
当样本线性不可分时,我们对样本进行生维处理,在高维空间中,样本表现为
Φ
(
x
n
)
\Phi(\boldsymbol{x}_n)
Φ(xn),则在高维空间中,样本变成了线性可分,此时判决准则相应地就变成了
f
(
Φ
(
x
n
)
)
=
s
g
n
(
∑
n
=
1
N
α
n
y
n
Φ
(
x
n
)
T
Φ
(
x
n
)
+
b
)
(13)
f(\Phi(\boldsymbol{x}_n))={\rm sgn}(\sum_{n=1}^N \alpha_n y_n \Phi(\boldsymbol{x}_n)^{\rm T}\Phi(\boldsymbol{x}_n)+b)\tag{13}
f(Φ(xn))=sgn(n=1∑NαnynΦ(xn)TΦ(xn)+b)(13)
我们不关心
Φ
(
x
n
)
\Phi(\boldsymbol{x}_n)
Φ(xn)的具体形式,我们关心的是
Φ
(
x
n
)
T
Φ
(
x
n
)
\Phi(\boldsymbol{x}_n)^{\rm T}\Phi(\boldsymbol{x}_n)
Φ(xn)TΦ(xn),因此核函数方法的核心就变成了设计核函数
K
(
x
n
)
=
Φ
(
x
n
)
T
Φ
(
x
n
)
K(\boldsymbol{x}_n)=\Phi(\boldsymbol{x}_n)^{\rm T}\Phi(\boldsymbol{x}_n)
K(xn)=Φ(xn)TΦ(xn)。而目前已经有一些常用的核函数可以利用了。因此核函数思想赋予了我们"上帝视角",让我们从高维空间中拨开重重迷雾看到了事情的本质(内积)。