支持向量机
1 间隔
首先考虑逻辑回归模型
h
θ
(
x
)
=
1
1
+
e
x
p
(
−
θ
T
x
)
h_{\theta}(x)=\frac{1}{1+exp(-\theta^Tx)}
hθ(x)=1+exp(−θTx)1,当
h
θ
(
x
)
≥
0.5
h_{\theta}(x)\ge0.5
hθ(x)≥0.5时我们预测的标签为1,此时的
θ
T
x
≥
0
\theta^Tx\ge0
θTx≥0,当
θ
T
x
\theta^Tx
θTx越大时,
h
θ
(
x
)
h_{\theta}(x)
hθ(x)越大,此时我们有更大的信心说预测的标签数据为1.因此当给定训练数据集时,如果我们能使得
y
(
i
)
y^{(i)}
y(i)标签为1时的
θ
T
x
(
i
)
≫
0
\theta^Tx^{(i)}\gg0
θTx(i)≫0,则代表训练得到的模型是比较好的,因为此时我们有更大的信心预测数据。
考虑如下图的一种情况,我们给定两个类别的数据集,并给出了划分数据集的超平面(
θ
T
x
=
0
\theta^Tx=0
θTx=0),图中有3个点A、B和C,其中A远离超平面,因此我们可以很确定地将A点划分到某一类中,而C点很接近超平面,我们只要稍微地改变决策边界就可以获取改变C所属的类别,因此可以说比起C点,我们对A点的预测分类更有信心。因此,我们希望找到一个决策边界对于所有的训练数据都能给出有信心的预测。
2 符号
为了方便我们讨论SVM算法,我们会对一些符号进行定义,首先我们设置标签 y ∈ { − 1 , 1 } y\in\{-1,1\} y∈{−1,1},然后,我们定义模型的参数为 w , b w,b w,b,即 h w , b ( x ) = g ( w T x + b ) h_{w,b}(x)=g(w^Tx+b) hw,b(x)=g(wTx+b),在这里如果 z > 0 z>0 z>0则 g ( z ) = 1 g(z)=1 g(z)=1,否则 g ( z ) = − 1 g(z)=-1 g(z)=−1。并且注意到此时模型直接输出预测结果,而不再是输出概率。
3 函数间隔与几何间隔
对于给定的训练样本
x
(
i
)
,
y
(
i
)
x^{(i)},y^{(i)}
x(i),y(i),我们定义函数间隔为
γ
^
(
i
)
=
y
(
i
)
(
w
T
x
(
i
)
+
b
)
\hat{\gamma}^{(i)}=y^{(i)}(w^Tx^{(i)}+b)
γ^(i)=y(i)(wTx(i)+b),我们可以注意到,如果
y
(
i
)
=
1
y^{(i)}=1
y(i)=1,我们希望模型输出的
w
T
x
+
b
≫
0
w^Tx+b\gg0
wTx+b≫0,而相反如果
y
(
i
)
=
−
1
y^{(i)}=-1
y(i)=−1,我们希望模型输出的
w
T
x
+
b
≪
0
w^Tx+b\ll0
wTx+b≪0,因此可以总结为我们希望函数间隔
γ
^
(
i
)
=
y
(
i
)
(
w
T
x
(
i
)
+
b
)
\hat{\gamma}^{(i)}=y^{(i)}(w^Tx^{(i)}+b)
γ^(i)=y(i)(wTx(i)+b)远大于0.然而如果单纯使用函数间隔我们无法很好地选择参数,因为函数间隔可以等比例的扩大参数
w
,
b
w,b
w,b而不改变原始输出结果。因此,我们通过缩放
w
w
w和
b
b
b可以使函数边界任意增大,而不会真正改变任何有意义的东西。因此我们可以通过增加一些标准化条件来改善这种情况,比如
∣
∣
w
∣
∣
2
=
1
||w||_2=1
∣∣w∣∣2=1。
给定训练的数据集,
{
(
x
(
i
)
,
y
(
i
)
)
,
i
=
1
,
2
,
.
.
.
,
m
}
\{(x^{(i)},y^{(i)}),i=1,2,...,m\}
{(x(i),y(i)),i=1,2,...,m},我们可以定义函数间隔为
γ
^
=
min
i
γ
^
(
i
)
\hat{\gamma}=\min_i \hat{\gamma}^{(i)}
γ^=iminγ^(i)
接下来让我们考虑几何间隔,如下图所属。
w
w
w是给定超平面的正交直线,点A
(
x
(
i
)
,
y
(
i
)
)
(x^{(i)},y^{(i)})
(x(i),y(i))是训练集中的一点,该点到决策边界的距离
γ
(
i
)
\gamma^{(i)}
γ(i)为AB,我们需要计算
γ
(
i
)
\gamma^{(i)}
γ(i)的值。
w
/
∣
∣
w
∣
∣
w/||w||
w/∣∣w∣∣是
w
w
w方向的单位向量,A点的坐标为
x
(
i
)
x^{(i)}
x(i),因此B点的坐标为
x
(
i
)
−
γ
(
i
)
∗
w
/
∣
∣
w
∣
∣
x^{(i)}-\gamma^{(i)}*w/||w||
x(i)−γ(i)∗w/∣∣w∣∣,因此点B在决策边界上,所以
w
T
(
x
(
i
)
−
γ
(
i
)
∗
w
/
∣
∣
w
∣
∣
)
+
b
=
0
w^T(x^{(i)}-\gamma^{(i)}*w/||w||)+b=0
wT(x(i)−γ(i)∗w/∣∣w∣∣)+b=0,所以可以解得
γ
(
i
)
=
w
T
x
(
i
)
+
b
∣
∣
w
∣
∣
=
(
w
∣
∣
w
∣
∣
)
T
x
(
i
)
+
b
∣
∣
w
∣
∣
\gamma^{(i)}=\frac{w^Tx^{(i)+b}}{||w||}=(\frac{w}{||w||})^Tx^{(i)}+\frac{b}{||w||}
γ(i)=∣∣w∣∣wTx(i)+b=(∣∣w∣∣w)Tx(i)+∣∣w∣∣b,因此我们进一步定义某个训练样本
(
x
(
i
)
,
y
(
i
)
)
(x^{(i)},y^{(i)})
(x(i),y(i))的几何间隔为
γ
(
i
)
=
y
(
i
)
(
(
w
∣
∣
w
∣
∣
)
T
x
(
i
)
+
b
∣
∣
w
∣
∣
)
\gamma^{(i)}=y^{(i)}((\frac{w}{||w||})^Tx^{(i)}+\frac{b}{||w||})
γ(i)=y(i)((∣∣w∣∣w)Tx(i)+∣∣w∣∣b)
根据几何间隔的定义,其避免了之前函数间隔的问题,即随着参数
w
,
b
w,b
w,b的缩放,几何间隔的值不会有变化。同理,对于整个数据集的几何间隔定义为
γ
=
min
i
γ
(
i
)
\gamma=\min_i \gamma^{(i)}
γ=iminγ(i)
4 最优间隔分类器
给定一个数据集,根据我们上面的定义,我们需要找个一个决策边界能使得几何间隔的值最大。
现在,我们给定一个可以线性分割的数据集,我们需要根据以下的优化问题来决定最大化几何间隔的超平面
max
γ
,
w
,
b
γ
s
.
t
.
y
(
i
)
(
w
T
x
+
b
)
≥
γ
∣
∣
w
∣
∣
=
1
\begin{aligned} \max_{\gamma,w,b}\ &\gamma \\ s.t.\ &y^{(i)}(w^Tx+b)\ge \gamma\\ & ||w||=1 \end{aligned}
γ,w,bmax s.t. γy(i)(wTx+b)≥γ∣∣w∣∣=1
这个问题将导致(
w
;
b
w;b
w;b)相对于训练集具有可能最大的几何间隔。我们只要解决上述的优化问题就可以了,然而
∣
∣
w
∣
∣
=
1
||w||=1
∣∣w∣∣=1是一个非凸的约束,因此我们尝试着修改该优化问题。
max
γ
,
w
,
b
γ
^
/
∣
∣
w
∣
∣
s
.
t
.
y
(
i
)
(
w
T
x
+
b
)
≥
γ
^
,
i
=
1
,
2
,
.
.
.
,
m
\begin{aligned} \max_{\gamma,w,b}\ &\hat{\gamma}/||w|| \\ s.t.\ &y^{(i)}(w^Tx+b)\ge \hat{\gamma},i=1,2,...,m \end{aligned}
γ,w,bmax s.t. γ^/∣∣w∣∣y(i)(wTx+b)≥γ^,i=1,2,...,m
最大化
γ
^
/
∣
∣
w
∣
∣
\hat{\gamma}/||w||
γ^/∣∣w∣∣,因为
γ
=
γ
^
/
∣
∣
w
∣
∣
\gamma=\hat{\gamma}/||w||
γ=γ^/∣∣w∣∣,因此这样的修改训练得到的结果不会有变化,且不在需要
∣
∣
w
∣
∣
=
1
||w||=1
∣∣w∣∣=1这个约束。由于
γ
^
/
∣
∣
w
∣
∣
\hat{\gamma}/||w||
γ^/∣∣w∣∣仍然不是一个凸优化问题,因此我们需要继续对其进行修改,因为在我们之前提到的内容中说到我们可以对参数
w
,
b
w,b
w,b进行一定的缩放,因此我们可以控制这两个参数使计算得到的函数间隔为1,即
γ
^
=
1
\hat{\gamma}=1
γ^=1
因为将参数
w
,
b
w,b
w,b同时乘以一个常数相当于将函数间隔乘以该常数,因此我们可以通过缩放两个参数使得上面的约束条件满足,代入前面的优化问题可以得到
min
γ
,
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
(
i
)
(
w
T
x
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
\begin{aligned} \min_{\gamma,w,b}\ &\frac{1}{2}||w||^2 \\ s.t.\ &y^{(i)}(w^Tx+b)\ge 1,i=1,2,...,m \end{aligned}
γ,w,bmin s.t. 21∣∣w∣∣2y(i)(wTx+b)≥1,i=1,2,...,m
我们现在已经把问题转化为可以有效解决的形式,这是一个只有线性约束的凸二次目标优化问题,我们可以使用商业二次规划来解决这个问题,这样就能获得最优的划分界面了。
我们接下来会介绍拉格朗日对偶性,这将使我们得到优化问题的对偶形式,它将在允许我们使用核函数来获得在非常高维空间中有效工作的最优边界分类器方面发挥关键作用,对偶形式还能使我们推导出一个有效的算法来解决上述优化问题。
5 拉格朗日对偶法
接下来我们先讨论如何求解带约束的优化问题,我们定义一个如下的问题
min
w
f
(
w
)
s
.
t
.
h
i
(
w
)
=
0
i
=
1
,
2
,
.
.
.
,
l
\min_w\quad f(w)\\ s.t.\quad h_i(w)=0\quad i=1,2,...,l
wminf(w)s.t.hi(w)=0i=1,2,...,l
我们定义拉格朗日乘子法为
L
(
w
,
β
)
=
f
(
w
)
+
∑
i
=
1
l
β
i
h
i
(
w
)
L(w,\beta)=f(w)+\sum_{i=1}^l \beta_ih_i(w)
L(w,β)=f(w)+i=1∑lβihi(w)
其中的
β
i
\beta_i
βi称为拉格朗日乘子,我们通过求解上式中的偏导数
∂
L
∂
w
i
=
0
∂
L
∂
β
i
=
0
\frac{\partial L}{\partial w_i}=0\quad \frac{\partial L}{\partial \beta_i}=0
∂wi∂L=0∂βi∂L=0
来求解优化问题的解。
接下来我们将问题扩展到含有不等式约束的问题中,其具体格式如下所示
min
w
f
(
w
)
s
.
t
.
h
i
(
w
)
=
0
i
=
1
,
2
,
.
.
.
,
l
s
.
t
.
g
i
(
w
)
≤
0
i
=
1
,
2
,
.
.
.
,
k
\begin{aligned} \min_w \quad &f(w)\\ s.t. \quad &h_i(w)=0\quad i=1,2,...,l\\ s.t. \quad &g_i(w)\le 0 \quad i=1,2,...,k \end{aligned}
wmins.t.s.t.f(w)hi(w)=0i=1,2,...,lgi(w)≤0i=1,2,...,k
为了解决这个问题,我们定义广义拉格朗日
L
(
w
,
α
,
β
)
=
f
(
w
)
+
∑
i
=
1
k
α
i
g
i
(
w
)
+
∑
i
=
1
l
β
i
h
i
(
w
)
L(w,\alpha,\beta)=f(w)+\sum_{i=1}^k \alpha_ig_i(w)+\sum_{i=1}^l\beta_ih_i(w)
L(w,α,β)=f(w)+i=1∑kαigi(w)+i=1∑lβihi(w)
其中的拉格朗日乘子
α
i
≥
0
\alpha_i\ge 0
αi≥0
考虑下述的问题
θ
p
=
max
α
,
β
L
(
w
,
α
,
β
)
\theta_{p}=\max_{\alpha,\beta}L(w,\alpha,\beta)
θp=α,βmaxL(w,α,β)
其下标
p
p
p代表原始问题,如果该式中的
w
w
w违反了任何一个约束条件,则可以得到下面的公式
L
(
w
,
α
,
β
)
=
f
(
w
)
+
∑
i
=
1
k
α
i
g
i
(
w
)
+
∑
i
=
1
l
β
i
h
i
(
w
)
=
∞
L(w,\alpha,\beta)=f(w)+\sum_{i=1}^k \alpha_ig_i(w)+\sum_{i=1}^l\beta_ih_i(w)=\infty
L(w,α,β)=f(w)+i=1∑kαigi(w)+i=1∑lβihi(w)=∞
因此此时的
g
i
(
w
)
>
0
g_i(w)> 0
gi(w)>0或
h
i
(
w
)
≠
0
h_i(w)\not=0
hi(w)=0,此时进行最大化可以得到无穷大的值。因此我们可以得到
θ
p
=
{
f
(
w
)
w
满
足
约
束
∞
e
l
s
e
\theta_{p}=\left\{ \begin{aligned} &f(w) \quad w满足约束\\ &\infty \quad else \end{aligned} \right.
θp={f(w)w满足约束∞else
因此此时的
θ
p
\theta_{p}
θp可以得到与原始优化问题的目标相同的值,所以我们考虑如下的优化问题
min
w
θ
p
=
min
w
max
α
,
β
L
(
w
,
α
,
β
)
\min_w \theta_p=\min_w\max_{\alpha,\beta}L(w,\alpha,\beta)
wminθp=wminα,βmaxL(w,α,β)
通过这样的设置就可以得到与原始的优化问题相同的形式,我们定义一个最优解,即
p
∗
=
min
w
θ
p
p^*=\min_w \theta_p
p∗=minwθp。
接下来让我们考虑另一个形式的问题,即
θ
D
(
w
)
=
min
w
L
(
w
,
α
,
β
)
\theta_D(w)=\min_wL(w,\alpha,\beta)
θD(w)=wminL(w,α,β)
其中的下标
D
D
D代表对偶问题,我们定义对偶问题的优化问题为
max
α
,
β
θ
D
(
w
)
=
max
α
,
β
min
w
L
(
w
,
α
,
β
)
\max_{\alpha,\beta}\theta_D(w)=\max_{\alpha,\beta}\min_wL(w,\alpha,\beta)
α,βmaxθD(w)=α,βmaxwminL(w,α,β)
同样在上式中
α
i
≥
0
\alpha_i\ge0
αi≥0,这个优化问题的形式与上面原始问题的优化形式很相似,只是最大化和最小化的位置调换了,我们定义该问题的解为
d
∗
=
max
α
,
β
θ
D
(
w
)
d^*=\max_{\alpha,\beta}\theta_D(w)
d∗=maxα,βθD(w),该解与原始问题的解之间的关系为
d
∗
=
max
α
,
β
min
w
L
(
w
,
α
,
β
)
≤
min
w
max
α
,
β
L
(
w
,
α
,
β
)
=
p
∗
d^*=\max_{\alpha,\beta}\min_wL(w,\alpha,\beta)\le \min_w\max_{\alpha,\beta}L(w,\alpha,\beta)=p^*
d∗=α,βmaxwminL(w,α,β)≤wminα,βmaxL(w,α,β)=p∗
但是在某些条件下可以得到
d
∗
=
p
∗
d^*=p^*
d∗=p∗.
这样我们就可以用对偶问题来代替原问题,让我们分析需要满足哪些条件。
假设
f
(
w
)
,
g
i
(
w
)
f(w),g_i(w)
f(w),gi(w)是凸函数,
h
i
(
w
)
h_i(w)
hi(w)是仿射函数,并且假设
g
i
(
w
)
g_i(w)
gi(w)的约束是严格可行的,这就是说存在一些
w
w
w能使得
g
i
(
w
)
<
0
g_i(w)<0
gi(w)<0满足。
因此,存在最优解
w
∗
,
α
∗
,
β
∗
w^*,\alpha^*,\beta^*
w∗,α∗,β∗能满足上述的原始优化问题和对偶优化问题,且
p
∗
=
d
∗
=
L
(
w
∗
,
α
∗
,
β
∗
)
p^*=d^*=L(w^*,\alpha^*,\beta^*)
p∗=d∗=L(w∗,α∗,β∗),且这些解满足KKT条件:
∂
∂
w
i
L
(
w
∗
,
α
∗
,
β
∗
)
=
0
∂
∂
β
i
L
(
w
∗
,
α
∗
,
β
∗
)
=
0
α
∗
g
i
(
w
∗
)
=
0
g
i
(
w
∗
)
≤
0
α
∗
≥
0
\begin{aligned} \frac{\partial}{\partial w_i}L(w^*,\alpha^*,\beta^*) &=0 \\ \frac{\partial}{\partial \beta_i}L(w^*,\alpha^*,\beta^*) &=0 \\ \alpha^* g_i(w^*) &=0\\ g_i(w^*) &\le 0\\ \alpha^* &\ge 0 \end{aligned}
∂wi∂L(w∗,α∗,β∗)∂βi∂L(w∗,α∗,β∗)α∗gi(w∗)gi(w∗)α∗=0=0=0≤0≥0
6 最优间隔分类器
现在考虑之前提到的优化问题
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
(
i
)
(
w
T
x
(
i
)
+
b
)
≥
1
\begin{aligned} \min_{w,b}\quad &\frac{1}{2}||w||^2 \\ s.t. \quad &y^{(i)}(w^Tx^{(i)}+b) \ge 1 \end{aligned}
w,bmins.t.21∣∣w∣∣2y(i)(wTx(i)+b)≥1
我们可以将上面的约束条件改写为
g
i
(
w
)
=
−
y
(
i
)
(
w
T
x
(
i
)
+
b
)
+
1
≤
0
g_i(w)=-y^{(i)}(w^Tx^{(i)}+b)+1\le 0
gi(w)=−y(i)(wTx(i)+b)+1≤0
我们根据之前的KKT条件可以得到只有当
y
(
i
)
(
w
T
x
(
i
)
+
b
)
=
1
y^{(i)}(w^Tx^{(i)}+b)=1
y(i)(wTx(i)+b)=1是此时的
α
i
>
0
\alpha_i>0
αi>0。考虑如下图所示的情况,其中的实现代表分割的超平面,具有最小间隔的点就是离该平面最近的点,在下图中总共有3个点满足这种情况,因此只有这三个点对应的
α
i
\alpha_i
αi不为0,这三个点定义为支持向量,支持向量的数量远小于训练集的数据数量。
接下来让我们考虑上面的优化问题的对偶形式,构建对应的拉格朗日形式为
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
−
∑
i
=
0
m
α
i
[
y
(
i
)
(
w
T
x
(
i
)
+
b
−
1
)
]
L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum_{i=0}^m\alpha_i[y^{(i)}(w^Tx^{(i)}+b-1)]
L(w,b,α)=21∣∣w∣∣2−i=0∑mαi[y(i)(wTx(i)+b−1)]
为了获得对偶问题,我们需要先对参数
w
,
b
w,b
w,b进行求解使得上式最小化,因此我们对其求导数,可以得到
∇
w
L
(
w
,
b
,
α
)
=
w
−
∑
i
=
1
m
α
i
y
(
i
)
x
(
i
)
=
0
\nabla_{w}L(w,b,\alpha)=w-\sum_{i=1}^m\alpha_iy^{(i)}x^{(i)}=0
∇wL(w,b,α)=w−i=1∑mαiy(i)x(i)=0
因此我们可以得到
w
=
∑
i
=
1
m
α
i
y
(
i
)
x
(
i
)
w=\sum_{i=1}^m\alpha_iy^{(i)}x^{(i)}
w=i=1∑mαiy(i)x(i)
同理
∇
b
L
(
w
,
b
,
α
)
=
∑
i
=
1
m
α
i
y
(
i
)
=
0
\nabla_{b}L(w,b,\alpha)=\sum_{i=1}^m\alpha_iy^{(i)}=0
∇bL(w,b,α)=i=1∑mαiy(i)=0
将得到的
w
w
w代回之前定义的
L
L
L中可以得到
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
−
∑
i
=
0
m
α
i
[
y
(
i
)
(
w
T
x
(
i
)
+
b
−
1
)
]
=
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
(
i
)
y
(
j
)
(
x
(
i
)
)
T
x
(
j
)
−
∑
i
=
0
m
α
i
[
y
(
i
)
(
∑
j
=
1
m
α
j
y
(
j
)
(
x
(
j
)
)
T
x
(
i
)
+
b
−
1
)
]
=
∑
i
=
1
m
α
i
−
b
∑
i
=
1
m
α
i
y
(
i
)
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
(
i
)
y
(
j
)
(
x
(
i
)
)
T
x
(
j
)
=
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
(
i
)
y
(
j
)
(
x
(
i
)
)
T
x
(
j
)
\begin{aligned} L(w,b,\alpha)&=\frac{1}{2}||w||^2-\sum_{i=0}^m\alpha_i[y^{(i)}(w^Tx^{(i)}+b-1)]\\ &=\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy^{(i)}y^{(j)}(x^{(i)})^Tx^{(j)}-\sum_{i=0}^m\alpha_i[y^{(i)}(\sum_{j=1}^m\alpha_jy^{(j)}(x^{(j)})^Tx^{(i)}+b-1)]\\ &=\sum_{i=1}^m\alpha_i-b\sum_{i=1}^m\alpha_iy^{(i)}-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy^{(i)}y^{(j)}(x^{(i)})^Tx^{(j)}\\ &=\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy^{(i)}y^{(j)}(x^{(i)})^Tx^{(j)} \end{aligned}
L(w,b,α)=21∣∣w∣∣2−i=0∑mαi[y(i)(wTx(i)+b−1)]=21i=1∑mj=1∑mαiαjy(i)y(j)(x(i))Tx(j)−i=0∑mαi[y(i)(j=1∑mαjy(j)(x(j))Tx(i)+b−1)]=i=1∑mαi−bi=1∑mαiy(i)−21i=1∑mj=1∑mαiαjy(i)y(j)(x(i))Tx(j)=i=1∑mαi−21i=1∑mj=1∑mαiαjy(i)y(j)(x(i))Tx(j)
通过上式的变换后,我们得到的对偶问题为
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
≥
0
,
∑
i
=
1
m
α
i
y
(
i
)
=
0
\begin{aligned} \max_{\alpha}\quad &\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy^{(i)}y^{(j)}<x^{(i)},x^{(j)}> \\ s.t. \quad &\alpha_i \ge 0,\\ \quad &\sum_{i=1}^m\alpha_iy^{(i)} = 0\\ \end{aligned}
αmaxs.t.i=1∑mαi−21i=1∑mj=1∑mαiαjy(i)y(j)<x(i),x(j)>αi≥0,i=1∑mαiy(i)=0
我们根据之前的描述可以得到
p
∗
=
d
∗
p^*=d^*
p∗=d∗,以及KKT条件,因此我们可以通过求解上式而求得原始问题的解,并且通过前面提到的
w
,
α
w,\alpha
w,α之间的关系来求解参数
w
w
w,而参数
b
b
b的求解则是通过下式解得
b
∗
=
−
max
i
:
y
i
=
−
1
(
w
∗
)
T
x
(
i
)
+
min
i
:
y
i
=
1
(
w
∗
)
T
x
(
i
)
2
b^*=-\frac{\max_{i:y^{i}=-1}(w^*)^Tx^{(i)}+\min_{i:y^{i}=1}(w^*)^Tx^{(i)}}{2}
b∗=−2maxi:yi=−1(w∗)Tx(i)+mini:yi=1(w∗)Tx(i)
当我们求解得到需要的参数后,我们对变量
x
x
x来进行预测,即
w
T
x
+
b
=
(
∑
i
=
1
m
α
i
y
(
i
)
x
(
i
)
)
T
x
+
b
=
∑
i
=
1
m
α
i
y
(
i
)
<
x
(
i
)
,
x
>
+
b
\begin{aligned} w^Tx+b&=(\sum_{i=1}^m\alpha_iy^{(i)}x^{(i)})^Tx+b\\ &=\sum_{i=1}^m\alpha_iy^{(i)}<x^{(i)},x>+b \end{aligned}
wTx+b=(i=1∑mαiy(i)x(i))Tx+b=i=1∑mαiy(i)<x(i),x>+b
在训练集中,只有支持向量对应的
α
\alpha
α不为0,而这部分向量通常占的比例很少,通过检查优化问题的对偶形式,我们对问题的结构有了重要的见解,并且能够仅根据输入特征向量之间的内积来编写整个算法,在下一节中,我们将利用此属性将核方法应用于我们的分类问题。由此产生的算法,即支持向量机,将能够在非常高维的空间中有效地学习。
7 核方法
我们在实际训练的时候,可以对输入的特征进行平方或者其他操作来增加特征的维度,我们将这个增加特征维度的方法称为特征映射
ϕ
\phi
ϕ,我们举一个例子
ϕ
(
x
)
=
[
x
x
2
x
3
]
\phi(x)=\begin{bmatrix}x \\ x^2\\x^3\end{bmatrix}
ϕ(x)=⎣⎡xx2x3⎦⎤
在应用SVM算法的时候,我们可以对输入特征进行扩展映射进行学习,这代表我们在计算输入向量的内积时计算的是
<
ϕ
(
x
(
i
)
)
,
ϕ
(
x
(
j
)
)
>
<\phi(x^{(i)}),\phi(x^{(j)})>
<ϕ(x(i)),ϕ(x(j))>,我们将其定义为核方法,即
K
(
x
,
z
)
=
ϕ
(
x
)
T
ϕ
(
z
)
K(x,z)=\phi(x)^T\phi(z)
K(x,z)=ϕ(x)Tϕ(z)
在之前的优化过程中涉及了
<
x
,
z
>
<x,z>
<x,z>,我们将其替换为
K
(
x
,
z
)
K(x,z)
K(x,z),当给定映射方法
ϕ
\phi
ϕ时,我们可以很容易地计算
K
(
x
,
z
)
K(x,z)
K(x,z),然而因为映射的维度可能能大,这样在计算方面的代价比较大。在这种情况下,通过在算法中使用一种有效的方法来计算
K
(
x
,
z
)
K(x,z)
K(x,z),我们可以让支持向量机在高维的特征空间中学习,而不需要显式地找到或表示映射后的向量。
我们接下来考虑一个例子,我们可以定义
K
(
x
,
z
)
=
(
x
T
z
)
2
K(x,z)=(x^Tz)^2
K(x,z)=(xTz)2
因此可以将其表示为
K
(
x
,
z
)
=
(
∑
i
=
1
n
x
i
z
i
)
(
∑
j
=
1
n
x
j
z
j
)
=
∑
i
=
1
n
∑
j
=
1
n
(
x
i
x
j
)
(
z
i
z
j
)
\begin{aligned} K(x,z)&=(\sum_{i=1}^nx_iz_i)(\sum_{j=1}^nx_jz_j)\\ &=\sum_{i=1}^n\sum_{j=1}^n(x_ix_j)(z_iz_j) \end{aligned}
K(x,z)=(i=1∑nxizi)(j=1∑nxjzj)=i=1∑nj=1∑n(xixj)(zizj)