机器学习与高维信息检索 - Note 8 - 支持向量机(Support Vector Machines)

Note 8 支持向量机(Support Vector Machines)

支持向量机背后的想法是非常简单的。在最简单的情况下,我们假设两个类的样本可以线性分离,也就是说,我们假设存在一个可以分离两个类的二维仿射超平面。SVM是有监督的学习算法,在给定两类的训练样本时,它可以找到 "最佳 "分离超平面。一旦找到它,就很容易对新的数据点进行分类。根据传入的新数据点位于超平面的哪一侧,它被分配到相应的类别。

8.1 SVM的几何学基础

对于一些 w ∈ R p \mathbf{w} \in \mathbb{R}^{p} wRp和一些非负的 b ≥ 0 b \geq 0 b0 R p \mathbb{R}^{p} Rp中的仿射超平面被定义为集合

H w , b : = { x ∈ R p ∣ w ⊤ x − b = 0 } . (8.1) \mathcal{H}_{\mathbf{w}, b}:=\left\{\mathbf{x} \in \mathbb{R}^{p} \mid \mathbf{w}^{\top} \mathbf{x}-b=0\right\} . \tag{8.1} Hw,b:={ xRpwxb=0}.(8.1)
向量 w \mathbf{w} w是法线,或者说垂直于 H w , b \mathcal{H}_{\mathbf{w}, b} Hw,b,因为只要我们在超平面上有一个任意的线段 x 2 − x 1 \mathrm{x}_{2}-\mathrm{x}_{1} x2x1,在 x 1 , x 2 ∈ H w , b \mathrm{x}_{1}, \mathrm{x}_{2} \in \mathcal{H}_{\mathrm{w}, b} x1,x2Hw,b,则

w ⊤ ( x 2 − x 1 ) = 0. (8.2) \mathbf{w}^{\top}\left(\mathbf{x}_{2}-\mathbf{x}_{1}\right)=0 . \tag{8.2} w(x2x1)=0.(8.2)

由此也很容易得出两个仿射超平面 H w , b , H w ~ , b ~ \mathcal{H}_{\mathbf{w}, b}, \mathcal{H}_{\tilde{\mathbf{w}}, \tilde{b}} Hw,b,Hw~,b~是平行的,当且仅当 w \mathbf{w} w w ~ \tilde{\mathbf{w}} w~的倍数。

1 { }^{1} 1 这源于所谓的超平面分离定理,该定理主要说明两个不相交的凸集可以被一个超平面所分离。这个证明可以追溯到著名的赫尔曼-闵可夫斯基(1864-1909)。

任何超平面都将 R p \mathbb{R}^{p} Rp完全分离在两个半空间 1 { }^{1} 1。从某个点 x \mathbf{x} x H w , b \mathcal{H}_{\mathbf{w}, b} Hw,b的有符号距离定义为

δ ( x , H w , b ) = w ⊤ x − b ∥ w ∥ . (8.3) \delta\left(\mathbf{x}, \mathcal{H}_{\mathbf{w}, b}\right)=\frac{\mathbf{w}^{\top} \mathbf{x}-b}{\|\mathbf{w}\|} . \tag{8.3} δ(x,Hw,b)=wwxb.(8.3)

这个定义的理由是因为以下的Lemma。

Lemma 8.1 8.1 8.1 有符号的仿射超平面距离 (Signed distance to affine hyperplanes)

x \mathrm{x} x H w , b \mathcal{H}_{\mathbf{w}, b} Hw,b的欧氏距离由 ∣ δ ( x , H w , b ) ∣ \left|\delta\left(\mathbf{x}, \mathcal{H}_{\mathbf{w}, b}\right)\right| δ(x,Hw,b)决定。

Proof.
我们用一些几何学的直觉来证明。假设从 x \mathbf{x} x开始,我们想沿着 r \mathbf{r} r方向向超平面移动。为了找到最短的距离,我们必须解决

min ⁡ ∥ r ∥  s.t.  x + r ∈ H w , b (8.4) \min \|\mathbf{r}\| \quad \text { s.t. } \quad \mathbf{x}+\mathbf{r} \in \mathcal{H}_{\mathbf{w}, b} \tag{8.4} minr s.t. x+rHw,b(8.4)

这里的约束条件相当于 ( x + r ) ⊤ w = b (\mathbf{x}+\mathbf{r})^{\top} \mathbf{w}=b (x+r)w=b,或

r ⊤ w = b − x ⊤ w . (8.5) \mathbf{r}^{\top} \mathbf{w}=b-\mathbf{x}^{\top} \mathbf{w} . \tag{8.5} rw=bxw.(8.5)

从这个等式可以看出,解决(8.4)的 r \mathbf{r} r必须是 w \mathbf{w} w的倍数。我们在下文中证明这一点。假设 r \mathbf{r} r不是 w \mathbf{w} w的倍数。那么对于 w i ⊥ \mathbf{w}_{i}^{\perp} wi正交于 w \mathbf{w} w,我们总是可以把它写成 r = λ w + ∑ i μ i w i ⊥ \mathbf{r}=\lambda \mathbf{w}+\sum_{i} \mu_{i} \mathbf{w}_{i}^{\perp} r=λw+iμiwi。由于正交性, ( λ w + ∑ i μ i w i ⊥ ) ⊤ w = λ w ⊤ w \left(\lambda \mathbf{w}+\sum_{i} \mu_{i} \mathbf{w}_{i}^{\perp}\right)^{\top} \mathbf{w}=\lambda \mathbf{w}^{\top} \mathbf{w} (λw+iμiwi)w=λww成立,同时根据三角不等式有 ∥ r ∥ ≥ ∥ λ w ∥ \|\mathbf{r}\| \geq\|\lambda \mathbf{w}\| rλw

这个观察结果产生了最小化问题,

min ⁡ λ ∥ λ w ∥  s.t.  λ ∥ w ∥ 2 = b − x ⊤ w (8.6) \min _{\lambda}\|\lambda \mathbf{w}\| \quad \text { s.t. } \quad \lambda\|\mathbf{w}\|^{2}=b-\mathbf{x}^{\top} \mathbf{w} \tag{8.6} λminλw s.t. λw2=bxw(8.6)

它的解是有符号的距离的绝对值

∣ w ⊤ x − b ∣ ∥ w ∥ = ∣ δ ( x , H w , b ) ∣ (8.7) \frac{\left|\mathbf{w}^{\top} \mathbf{x}-b\right|}{\|\mathbf{w}\|}=\left|\delta\left(\mathbf{x}, \mathcal{H}_{\mathbf{w}, b}\right)\right| \tag{8.7} wwxb=δ(x,Hw,b)(8.7)

很容易看出,与超平面的有符号距离在一半空间中是正的,而在另一半空间中是负的。我们把 H w , b \mathcal{H}_{\mathbf{w}, b} Hw,b的边际定义为接近 H w , b \mathcal{H}_{\mathbf{w}, b} Hw,b的点的集合。更确切地说,让

H + : = { x ∈ R p ∣ w ⊤ x − b = 1 } H − : = { x ∈ R p ∣ w ⊤ x − b = − 1 } (8.8;8.9) \begin{array}{r} \mathcal{H}_{+}:=\left\{\mathbf{x} \in \mathbb{R}^{p} \mid \mathbf{w}^{\top} \mathbf{x}-b=1\right\} \\ \mathcal{H}_{-}:=\left\{\mathbf{x} \in \mathbb{R}^{p} \mid \mathbf{w}^{\top} \mathbf{x}-b=-1\right\} \end{array} \tag{8.8;8.9} H+:={ xRpwxb=1}H:={ xRpwxb=1}(8.8;8.9)

是两个平行于 H w , b \mathcal{H}_{\mathbf{w}, b} Hw,b的仿射超平面。那么 H w , b \mathcal{H}_{\mathbf{w}, b} Hw,b的边际被定义为 H + ∪ H − \mathcal{H}_{+}\cup\mathcal{H}_{-} H+H的凸包(convex hull)。

使用Lemma 8.1,我们可以看到这个边际的厚度,即 H + \mathcal{H}_{+} H+ H − \mathcal{H}_{-} H之间的距离,是由 2 ∣ w ∥ \frac{2}{|\mathbf{w}\|} w2给出。因此,如果我们想找到一个仿射超平面 H w , b \mathcal{H}_{\mathbf{w}, b} Hw,b,允许 "最好 "地分离两类数据点,如果我们通过允许最大的余量来量化 “最好”,同时仍然防止数据点落在这个余量之内,我们将不得不在一些约束条件下最大化 2 ∥ w ∥ \frac{2}{\|\mathbf{w}\|} w2,这使我们想到线性SVM。

8.2 基础的线性SVM(Basic Linear SVM)

如上所述,SVM是一种有监督的学习方法,所以我们从 N N N标记的训练数据开始, ( x i , y i ) ∈ R p × { − 1 , 1 } , i = 1 , … , N \left(\mathbf{x}_{i}, y_{i}\right) \in \mathbb{R}^{p} \times\{-1,1\}, i=1, \ldots, N (xi,yi)Rp×{ 1,1},i=1,,N。这里, y i y_{i} yi 1 1 1 − 1 -1 1,表示数据属于两类中的哪一类。对于线性SVM,我们必须假设这个数据确实是线性可分离的,也就是说,我们必须假设存在一个将两个类分开的仿射超平面 H w , b \mathcal{H}_{\mathrm{w}, b} Hw,b。没有数据点位于 H w , b \mathcal{H}_{\mathbf{w}, b} Hw,b的边际内,这一约束相当于要求所有属于 y i = 1 y_{i}=1 yi=1的点与 H + \mathcal{H}_{+} H+的距离为正,而所有属于 y i = − 1 y_{i}=-1 yi=1的数据与 H − \mathcal{H}_{-} H的距离为负,即。

w ⊤ x i − b ≥ + 1  for  y i = + 1 w ⊤ x i − b ≤ − 1  for  y i = − 1 (8.10) \begin{array}{ll} \mathbf{w}^{\top} \mathbf{x}_{i}-b \geq+1 & \text { for } y_{i}=+1 \\ \mathbf{w}^{\top} \mathbf{x}_{i}-b \leq-1 & \text { for } y_{i}=-1 \end{array} \tag{8.10} wxib+1wxib1 for yi=+1 for yi=1(8.10)

这可以更简洁地写成
y i ( w ⊤ x i − b ) ≥ 1  for all  i = 1 , … , N (8.11) y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right) \geq 1 \text { for all } i=1, \ldots, N \tag{8.11} yi(wxib)1 for all i=1,,N(8.11)

因此,寻找允许最大余量的仿射超平面的任务,同时仍然分离两个类,由优化问题来描述
max ⁡ 2 ∥ w ∥ 2  s.t.  y i ( w ⊤ x i − b ) ≥ 1  for all  i = 1 , … , N (8.12) \max \frac{2}{\|\mathbf{w}\|^{2}} \quad \text { s.t. } \quad y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right) \geq 1 \text { for all } i=1, \ldots, N \tag{8.12} maxw22 s.t. yi(wxib)1 for all i=1,,N(8.12)

或者等价地,以
min ⁡ 1 2 ∥ w ∥ 2  s.t.  y i ( w ⊤ x i − b ) ≥ 1  for all  i = 1 , … , N (8.13) \min \frac{1}{2}\|\mathbf{w}\|^{2} \quad \text { s.t. } \quad y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right) \geq 1 \text { for all } i=1, \ldots, N \tag{8.13} min21w2 s.t. yi(wxib)1 for all i=1,,N(8.13)

为了解决这个受限的优化问题,我们需要为这些类型的问题引入优化条件。

8.2.1 Karush-Kuhn-Tucker条件

我们参考J.Nocedal和S.J.Wright的教科书《数值优化》(Numerical Optimization)第二版,Springer 2006,以了解对优化主题的更详细的见解。考虑一般问题
min ⁡ z ∈ R n f ( z )  s.t.  c i ( z ) = 0  for  i ∈ E  and  c j ( z ) ≥ 0  for  j ∈ I (8.14) \begin{array}{rl} \min _{\mathbf{z} \in \mathbb{R}^{n}} & f(\mathbf{z}) \\ \text { s.t. } & c_{i}(\mathbf{z})=0 \text { for } i \in \mathcal{E} \\ & \text { and } c_{j}(\mathbf{z}) \geq 0 \text { for } j \in \mathcal{I} \end{array} \tag{8.14} minzRn s.t. f(z)ci(z)=0 for iE and cj(z)0 for jI(8.14)

与平滑实值函数 f , c i f, c_{i} f,ci。这里 E \mathcal{E} E代表等式约束(equality constraint), I \mathcal{I} I代表不等式约束(inequality constraint)。对于某个满足约束条件的点z,我们将其活动集定义为 A ( z ) = E \mathcal{A}(\mathbf{z})=\mathcal{E} A(z)=E。换句话说, A ( z ) \mathcal{A}(\mathbf{z}) A(z) z \mathbf{z} z正好满足平等条件的所有约束的索引。

优化问题(8.15)的拉格朗日函数由以下公式给出
L ( z , λ ) = f ( z ) − ∑ i ∈ I ∪ E λ i c i ( z ) (8.15) L(\mathbf{z}, \boldsymbol{\lambda})=f(\mathbf{z})-\sum_{i \in \mathcal{I} \cup \mathcal{E}} \lambda_{i} c_{i}(\mathbf{z}) \tag{8.15} L(z,λ)=f(z)iIEλici(z)(8.15)

定理8.2 Karush-Kuhn-Tucker(KKT)条件 (Karush-Kuhn-Tucker (KKT) conditions)

z ⋆ \mathbf{z}^{\star} z为(8.15)的解。在约束函数 2 ^{2} 2的某些条件下,存在一个Lagrange乘数 λ ⋆ \boldsymbol{\lambda}^{\star} λ,使得

∇ z L ( z ⋆ , λ ⋆ ) = 0 c i ( z ⋆ ) = 0  for  i ∈ E c i ( z ⋆ ) ≥ 0  for  i ∈ I λ i ⋆ ≥ 0  for  i ∈ I λ i ⋆ c i ( z ⋆ ) = 0  for  i ∈ I ∪ E (8.16-8.21) \begin{aligned} \nabla_{\mathbf{z}} L\left(\mathbf{z}^{\star}, \boldsymbol{\lambda}^{\star}\right) &=0 \\ c_{i}\left(\mathbf{z}^{\star}\right) &=0 \text { for } i \in \mathcal{E} \\ c_{i}\left(\mathbf{z}^{\star}\right) & \geq 0 \text { for } i \in \mathcal{I} \\ \lambda_{i}^{\star} & \geq 0 \text { for } i \in \mathcal{I} \\ \lambda_{i}^{\star} c_{i}\left(\mathbf{z}^{\star}\right) &=0 \text { for } i \in \mathcal{I} \cup \mathcal{E} \end{aligned} \tag{8.16-8.21} zL(z,λ)ci(z)ci(z)λiλici(z)=0=0 for iE0 for iI0 for iI=0 for iIE(8.16-8.21)

由于SVM的优化问题是凸的(一个凸的目标函数和定义了一个凸的可行区域的约束条件),KKT条件是 z ⋆ , λ ⋆ \mathbf{z}^{\star}, \boldsymbol{\lambda}^{\star} z,λ成为一个解决方案的必要和充分条件。最后一个条件意味着,要么约束条件 i i i在活动集合中,要么拉格朗日乘数的第 i i i分量为零,或者可能两者都是。

2 { }^{2} 2这在它们是线性的情况下是被满足的,所以特别是对于线性SVM的情况。

8.2.2 拉格朗日对偶性 (Lagrangian Duality)

像以前一样,我们将考虑一般的优化问题

min ⁡ f ( z )  s.t.  c i ( z ) = 0 , i ∈ E , c j ( z ) ≥ 0 , j ∈ I \min f(\mathbf{z}) \quad \text { s.t. } c_{i}(\mathbf{z})=0, i \in \mathcal{E}, \quad c_{j}(\mathbf{z}) \geq 0, j \in \mathcal{I} minf(z) s.t. ci(z)=0,iE,cj(z)0,jI

这也被称为原始问题。相应的拉格朗日函数被定义为
L ( z , λ ) = f ( z ) − ∑ i ∈ I ∪ E λ i c i ( z ) L(\mathbf{z}, \boldsymbol{\lambda})=f(\mathbf{z})-\sum_{i \in \mathcal{I} \cup \mathcal{E}} \lambda_{i} c_{i}(\mathbf{z}) L(z,λ)=f(z)iIEλici(z)

带有拉格朗日乘数(也称为对偶变量) λ i ≥ 0 \lambda_{i} \geq 0 λi0。基于拉格朗日函数,我们可以创建一个新的函数,为目标函数 f f f提供一个下限。由于对偶变量都是正数,即 λ i ≥ 0 \lambda_{i} \geq 0 λi0,我们知道 f ( z ) ≥ f(\mathbf{z}) \geq f(z) L ( z , λ ) L(\mathbf{z}, \boldsymbol{\lambda}) L(z,λ)对于所有可行的 z \mathbf{z} z。这就促使拉格朗日对偶函数的定义为

g ( λ ) = inf ⁡ z L ( z , λ ) = inf ⁡ z ( f ( z ) − ∑ i ∈ I ∪ E λ i c i ( z ) ) (8.22) g(\boldsymbol{\lambda})=\inf _{\mathbf{z}} L(\mathbf{z}, \boldsymbol{\lambda})=\inf _{\mathbf{z}}\left(f(\mathbf{z})-\sum_{i \in \mathcal{I} \cup \mathcal{E}} \lambda_{i} c_{i}(\mathbf{z})\right) \tag{8.22} g(λ)=zinfL(z,λ)=zinf(f(z)iIEλici(z))(8.22)

对偶函数 g ( ⋅ ) g(\cdot) g()是凹的,即使原来的问题不是凸的,因为它是仿射函数的逐点下确界(point-wise infimum of affine functions)。对偶形式产生了目标函数 f f f的最优值 p ⋆ p^{\star} p的下限。对于任何 λ ≥ 0 \boldsymbol{\lambda} \geq 0 λ0,我们有 g ( λ ) ≤ p ⋆ g(\boldsymbol{\lambda}) \leq p^{\star} g(λ)p

拉格朗日对偶问题是最大化问题

max ⁡ λ g ( λ )  s.t.  λ i ≥ 0 \max _{\boldsymbol{\lambda}} g(\boldsymbol{\lambda}) \quad \text { s.t. } \quad \lambda_{i} \geq 0 λmaxg(λ) s.t. λi0

在某些条件下(在SVM的情况下成立),原始问题的最小值与对偶问题的最大值重合,即 d ⋆ = max ⁡ g ( λ ) = d^{\star}=\max g(\boldsymbol{\lambda})= d=maxg(λ)= inf ⁡ z f ( z ) = p ⋆ \inf _{\mathbf{z}} f(\mathbf{z})=p^{\star} infzf(z)=p。这被称为强对偶性。

Remark
对偶性使我们能够使用凸优化来计算任何问题的最优值的下限,无论是否凸,都可以。然而,对偶函数 g g g可能不容易计算,因为它本身被定义为一个优化问题。当 g g g可以写成封闭形式时,使用对偶性效果最好。即使如此,也可能不容易找到对偶问题的解决方案,因为不是所有的凸问题都容易解决。

8.2.3 线性SVM: 原始和对偶问题 (Linear SVM: Primal and Dual Problem)

根据这一动机,对于手头的问题,我们必须解决以下问题
min ⁡ w , b , λ ≥ 0 L ( w , b , λ )  with  L ( w , b , λ ) = 1 2 ∥ w ∥ 2 − ∑ i λ i ( y i ( w ⊤ x i − b ) − 1 ) = 1 2 ∥ w ∥ 2 − ∑ i λ i y i ( w ⊤ x i − b ) + ∑ i λ i (8.23-25) \begin{gathered} \min _{\mathbf{w}, b, \boldsymbol{\lambda} \geq 0} L(\mathbf{w}, b, \boldsymbol{\lambda}) \\ \text { with } L(\mathbf{w}, b, \boldsymbol{\lambda})=\frac{1}{2}\|\mathbf{w}\|^{2}-\sum_{i} \lambda_{i}\left(y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right)-1\right) \\ =\frac{1}{2}\|\mathbf{w}\|^{2}-\sum_{i} \lambda_{i} y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right)+\sum_{i} \lambda_{i} \end{gathered} \tag{8.23-25} w,b,λ0minL(w,b,λ) with L(w,b,λ)=21w2iλi(yi(wxib)1)=21w2iλiyi(wxib)+iλi(8.23-25)

这个问题是严格凸的,因此,如果它存在的话,它的解是唯一的。拉格朗日函数的梯度与优化参数( w , b w, b w,b )的关系为

∇ ( w , b ) L ( w , b , λ ) = [ w − ∑ i λ i y i x i ∑ i λ i y i ] (8.26) \nabla_{(\mathbf{w}, b)} L(\mathbf{w}, b, \lambda)=\left[\begin{array}{c} \mathbf{w}-\sum_{i} \lambda_{i} y_{i} \mathbf{x}_{i} \\ \sum_{i} \lambda_{i} y_{i} \end{array}\right] \tag{8.26} (w,b)L(w,b,λ)=[wiλiyixiiλiyi](8.26)

因此,KKT条件 ( 8.17 ) (8.17) 8.17 ( 8.21 ) (8.21) 8.21得到

w ⋆ − ∑ i λ i ⋆ y i x i = 0 ∑ i λ i ⋆ y i = 0 λ i ⋆ ( y i ( ( w ⋆ ) ⊤ x i − b ⋆ ) − 1 ) = 0. (8.27-29) \begin{array}{r} \mathbf{w}^{\star}-\sum_{i} \lambda_{i}^{\star} y_{i} \mathbf{x}_{i}=0 \\ \sum_{i} \lambda_{i}^{\star} y_{i}=0 \\ \lambda_{i}^{\star}\left(y_{i}\left(\left(\mathbf{w}^{\star}\right)^{\top} \mathbf{x}_{i}-b^{\star}\right)-1\right)=0 . \end{array} \tag{8.27-29} wiλiyixi=0iλiyi=0λi(yi((w)xib)1)=0.(8.27-29)

这意味着解决方案 w ⋆ \mathbf{w}^{\star} w是接触边界超平面的点的线性组合,即那些位于 H + \mathcal{H}_{+} H+ H − \mathcal{H}_{-} H中的点。这些点就是名称上的支持点或向量。

现在我们可以用这些方程推导出一个简单的方法来寻找所需的最佳超平面参数 w ⋆ \mathbf{w}^{\star} w b ⋆ b^{\star} b。首先将 ( 8.27 ) (8.27) (8.27)和(8.28)代入(8.25),得到(为提高可读性而省略 ⋆ ^{\star} )方程

1 2 ∥ w ∥ 2 − ∑ i λ i y i ( w ⊤ x i − b ) + ∑ i λ i = 1 2 ∑ i , j λ i λ j y i y j x i ⊤ x j − ∑ i , j λ i λ j y i y j x i ⊤ x j + ∑ i λ i y i b + ∑ i λ i = ∑ i λ i − 1 2 ∑ i , j λ i λ j y i y j x i ⊤ x j . \begin{aligned} & \frac{1}{2}\|\mathbf{w}\|^{2}-\sum_{i} \lambda_{i} y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right)+\sum_{i} \lambda_{i} \\ =& \frac{1}{2} \sum_{i, j} \lambda_{i} \lambda_{j} y_{i} y_{j} \mathbf{x}_{i}^{\top} \mathbf{x}_{j}-\sum_{i, j} \lambda_{i} \lambda_{j} y_{i} y_{j} \mathbf{x}_{i}^{\top} \mathbf{x}_{j}+\sum_{i} \lambda_{i} y_{i} b+\sum_{i} \lambda_{i} \\ =& \sum_{i} \lambda_{i}-\frac{1}{2} \sum_{i, j} \lambda_{i} \lambda_{j} y_{i} y_{j} \mathbf{x}_{i}^{\top} \mathbf{x}_{j} . \end{aligned} ==21w2iλiyi(wxib)+iλi21i,jλiλjyiyjxixji,jλiλjyiyjxixj+iλiyib+iλiiλi21i,jλiλjyiyjxixj.

这个只取决于 λ \boldsymbol{\lambda} λ的新表述是问题的对偶形式(参见 ( 8.22 ) (8.22) (8.22)),我们把它写成
L D ( λ ) = ∑ i λ i − 1 2 λ ⊤ H λ  s.t.  λ i ≥ 0 , ∑ i λ i y i = 0 L_{D}(\boldsymbol{\lambda})=\sum_{i} \lambda_{i}-\frac{1}{2} \boldsymbol{\lambda}^{\top} \mathbf{H} \boldsymbol{\lambda} \quad \text { s.t. } \quad \lambda_{i} \geq 0, \sum_{i} \lambda_{i} y_{i}=0 LD(λ)=iλi21λHλ s.t. λi0,iλiyi=0

其中 H \mathbf{H} H的项定义为内积 h i j = y i y j x i ⊤ x j h_{i j}=y_{i} y_{j} \mathbf{x}_{i}^{\top} \mathbf{x}_{j} hij=yiyjxixj。 最佳的拉格朗日乘数是通过解决最大化问题找到的。

max ⁡ λ ( ∑ i λ i − 1 2 λ ⊤ H λ )  s.t.  λ i ≥ 0 , ∑ i λ i y i = 0 (8.30) \max _{\lambda}\left(\sum_{i} \lambda_{i}-\frac{1}{2} \boldsymbol{\lambda}^{\top} \mathbf{H} \boldsymbol{\lambda}\right) \quad \text { s.t. } \quad \lambda_{i} \geq 0, \sum_{i} \lambda_{i} y_{i}=0 \tag{8.30} λmax(iλi21λHλ) s.t. λi0,iλiyi=0(8.30)

这是一个凸的二次优化问题,可以用二次程序(QP)求解器(例如Matlab中的函数quadprog)来解决。通过将其插入公式 ( 8.27 ) (8.27) (8.27),得到 b ⋆ b^{\star} b,然后通过公式 ( 8.29 ) (8.29) (8.29)得到 w ⋆ \mathbf{w}^{\star} w。请注意,拉格朗日乘数 λ i \lambda_{i} λi对应于点 x i \mathbf{x}_{i} xi。如果 λ i \lambda_{i} λi不等于零,则方程 ( 8.29 ) (8. 29) (8.29)意味着 y i ( w ⊤ x i − b ) = 1 y_{i}\left(\mathbf{w}^{\top}\mathbf{x}_{i}-b\right)=1 yi(wxib)=1,即相应的 x i \mathbf{x}_{i} xi H + \mathcal{H}_{+} H+ H − \mathcal{H}_{-} H的一个元素。

8.3 软边际线性SVM (Soft Margin Linear SVM)

显然,如果训练集不是线性可分离的,上述方法就会失败,因为在这种情况下,没有满足约束条件的点。为了克服这个明显的缺点,软边际 S V M S V M SVM允许一些错误分配的数据样本。它在大余量和错误分类的程度之间寻找一种折衷。这种错误分类由一组 N N N的额外变量 ξ i \xi_{i} ξi来量化,这些变量被假定为非负的,从而导致了约束条件

y i ( w ⊤ x i − b ) ≥ 1 − ξ i  for all  i = 1 , … , N (8.31) y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right) \geq 1-\xi_{i} \text { for all } i=1, \ldots, N \tag{8.31} yi(wxib)1ξi for all i=1,,N(8.31)

因此,为了获得一个大的余地,同时保持适度的错误分类,我们考虑优化问题

min ⁡ w , b , ξ 1 2 ∥ w ∥ 2 2 + c ∑ i = 1 N ξ i  s.t.  y i ( w ⊤ x i − b ) ≥ 1 − ξ i  and  ξ i ≥ 0 ∀ i (8.32-33) \begin{array}{ll} \min _{\mathbf{w}, b, \boldsymbol{\xi}} & \frac{1}{2}\|\mathbf{w}\|_{2}^{2}+c \sum_{i=1}^{N} \xi_{i} \\ \text { s.t. } & y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right) \geq 1-\xi_{i} \quad \text { and } \quad \xi_{i} \geq 0 \quad \forall i \end{array} \tag{8.32-33} minw,b,ξ s.t. 21w22+ci=1Nξiyi(wxib)1ξi and ξi0i(8.32-33)

因此,为了获得一个大的余量,同时自由参数 c > 0 c>0 c>0在大的余量和错误分类之间进行权衡。选择的 c c c越大,对违反分离规则的惩罚就越大。如前所述,这是一个二次规划问题,可以用QP求解器来解决。相应的KKT条件将在下面讨论。我们的软边际SVM的拉格朗日为:保持适度的错误分类,我们考虑优化问题
L ( w , b , ξ , λ , μ ) = 1 2 ∥ w ∥ 2 + c ∑ i ξ i − ∑ i λ i ( y i ( w ⊤ x i − b ) − 1 + ξ i ) − ∑ i μ i ξ i (8.34) L(\mathbf{w}, b, \boldsymbol{\xi}, \boldsymbol{\lambda}, \boldsymbol{\mu})=\frac{1}{2}\|\mathbf{w}\|^{2}+c \sum_{i} \xi_{i}-\sum_{i} \lambda_{i}\left(y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right)-1+\xi_{i}\right)-\sum_{i} \mu_{i} \xi_{i} \tag{8.34} L(w,b,ξ,λ,μ)=21w2+ciξiiλi(yi(wxib)1+ξi)iμiξi(8.34)

其中 μ i \mu_{i} μi是为强制执行 ξ i \xi_{i} ξi的正性而引入的Lagrange乘数。相应的KKT条件为
∇ w L = w − ∑ i λ i y i x i = 0 ∇ b L = ∑ i λ i y i = 0 ∇ ξ i L = c − λ i − μ i = 0 y i ( w ⊤ x i − b ) − 1 + ξ i ≥ 0 ξ i ≥ 0 λ i ≥ 0 μ i ≥ 0 λ i ( y i ( w ⊤ x i − b ) − 1 + ξ i ) = 0 μ i ξ i = 0 (8.35-43) \begin{array}{r} \nabla_{\mathbf{w}} L=\mathbf{w}-\sum_{i} \lambda_{i} y_{i} \mathbf{x}_{i}=0 \\ \nabla_{b} L=\sum_{i} \lambda_{i} y_{i}=0 \\ \nabla_{\xi_{i}} L=c-\lambda_{i}-\mu_{i}=0 \\ y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right)-1+\xi_{i} \geq 0 \\ \xi_{i} \geq 0 \\ \lambda_{i} \geq 0 \\ \mu_{i} \geq 0 \\ \lambda_{i}\left(y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right)-1+\xi_{i}\right)=0 \\ \mu_{i} \xi_{i}=0 \end{array} \tag{8.35-43} wL=wiλiyixi=0bL=iλiyi=0ξiL=cλiμi=0yi(wxib)1+ξi0ξi0λi0μi0λi(yi(wxib)1+ξi)=0μiξi=0(8.35-43)

虽然一个QP求解器已经可以找到这个问题的解决方案,但我们现在将推导出相应的对偶形式,因为它的外观与可分离问题非常相似。另外,为了将SVM扩展到与核一起工作,需要对偶形式。首先,注意方程 ( 8.37 ) (8.37) (8.37)意味着 μ i = c − λ i . \mu_{i}=c-\lambda_{i}. μi=cλi. 将其插入方程 ( 8.34 ) (8.34) (8.34)中,我们已经可以消除 μ i \mu_{i} μi的依赖性。

1 2 w ⊤ w − ∑ i λ i ( y i ( w ⊤ x i − b ) − 1 ) (8.44) \frac{1}{2} \mathbf{w}^{\top} \mathbf{w}-\sum_{i} \lambda_{i}\left(y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right)-1\right) \tag{8.44} 21wwiλi(yi(wxib)1)(8.44)

接下来,我们利用 ( 8.35 ) (8.35) (8.35)的事实: w = ∑ i λ i y i x i \mathbf{w}=\sum_{i} \lambda_{i} y_{i} \mathbf{x}_{i} w=iλiyixi并将其代入(8.44)。通过使用属性 ( 8.36 ) (8.36) (8.36),我们得到对偶形式
L D ( λ ) = ∑ i λ i − 1 2 λ ⊤ H λ (8.45) L_{D}(\boldsymbol{\lambda})=\sum_{i} \lambda_{i}-\frac{1}{2} \boldsymbol{\lambda}^{\top} \mathbf{H} \boldsymbol{\lambda} \tag{8.45} LD(λ)=iλi21λHλ(8.45)

矩阵 H \mathbf{H} H的项 h i j = y i y j x i ⊤ x j h_{i j}=y_{i} y_{j} \mathbf{x}_{i}^{\top} \mathbf{x}_{j} hij=yiyjxixj 0 ≤ λ i ≤ c 0 \leq \lambda_{i} \leq c 0λic ∑ i λ i y i = 0 \sum_{i} \lambda_{i} y_{i}=0 iλiyi=0的约束条件下。因此,对偶问题的形式为

max ⁡ λ L D ( λ )  s.t.  0 ≤ λ i ≤ c , ∑ i λ i y i = 0 (8.46) \max _{\boldsymbol{\lambda}} L_{D}(\boldsymbol{\lambda}) \quad \text { s.t. } \quad 0 \leq \lambda_{i} \leq c, \sum_{i} \lambda_{i} y_{i}=0 \tag{8.46} λmaxLD(λ) s.t. 0λic,iλiyi=0(8.46)

然后,解由 w = ∑ i λ i y i x i \mathbf{w}=\sum_{i} \lambda_{i} y_{i} \mathbf{x}_{i} w=iλiyixi给出。因此,与可分离情况的唯一区别是 λ i \lambda_{i} λi有一个上限 c c c。方程 ( 8.37 ) (8.37) (8.37) ( 8.43 ) (8.43) (8.43)意味着如果 λ i < c , ξ i = 0 \lambda_{i}<c,\xi_{i}=0 λi<cξi=0。因此,任何训练样本 x i \mathbf{x}_{i} xi(如果 0 < λ i < c 0<\lambda_{i}<c 0<λi<c)是一个支持向量。此外,对于任何支持向量 x i \mathbf{x}_{i} xi 方程 ( 8.42 ) (8.42) (8.42)简化为 y i ( w ⊤ x i − b ) + 1 = 0 y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right)+1=0 yi(wxib)+1=0,可以用来计算 b ⋆ b^{\star} b。为了得到一个更稳定的解决方案,建议使用支持区所有点的平均值。具体来说,它被定义为

b ⋆ = 1 N S u p p ∑ i ∈ S u p p ( ( w ⋆ ) ⊤ x i − y i ) (8.47) b^{\star}=\frac{1}{N_{S u p p}} \sum_{i \in S u p p}\left(\left(\mathbf{w}^{\star}\right)^{\top} \mathbf{x}_{i}-y_{i}\right) \tag{8.47} b=NSupp1iSupp((w)xiyi)(8.47)

其中 Supp ⁡ \operatorname{Supp} Supp表示支持指数, N S u p p N_{S u p p} NSupp表示支持向量的数量。

8.4 核SVM

正如我们之前看到的,对于一组训练样本 ( x i , y i ) , i = 1 , … , N , x i ∈ R p , y i ∈ { − 1 , 1 } \left(\mathbf{x}_{i}, y_{i}\right), i=1, \ldots, N, \mathbf{x}_{i} \in \mathbb{R}^{p}, y_{i} \in\{-1,1\} (xi,yi),i=1,,N,xiRp,yi{ 1,1} 可以改写为对偶形式

max ⁡ λ ∑ i λ i − 1 2 λ ⊤ H λ  s.t.  0 ≤ λ i ≤ c , ∑ i λ i y i = 0 (8.48) \begin{array}{ll} \max _{\lambda} & \sum_{i} \lambda_{i}-\frac{1}{2} \boldsymbol{\lambda}^{\top} \mathbf{H} \boldsymbol{\lambda} \\ \text { s.t. } & 0 \leq \lambda_{i} \leq c, \sum_{i} \lambda_{i} y_{i}=0 \end{array} \tag{8.48} maxλ s.t. iλi21λHλ0λic,iλiyi=0(8.48)

带有Gram 矩阵 H \mathbf{H} H,其项定义为 h i j = y i y j x i ⊤ x j h_{i j}=y_{i} y_{j} \mathbf{x}_{i}^{\top} \mathbf{x}_{j} hij=yiyjxixj。我们在关于核PCA的章节中谈到了核技巧,即使用非线性函数 ϕ \phi ϕ将训练样本映射到高维希尔伯特空间 H \mathcal{H} H,其内积为 ⟨ ⋅ , ⋅ ⟩ H \langle\cdot, \cdot\rangle_{\mathcal{H}} ,H并直接用核函数 κ \kappa κ表达内积。也就是说,核函数 κ \kappa κ通过 κ ( x , y ) = ⟨ ϕ ( x ) , ϕ ( y ) ⟩ H \kappa(\mathbf{x}, \mathbf{y})=\langle\phi(\mathbf{x}), \phi(\mathbf{y})\rangle_{\mathcal{H}} κ(x,y)=ϕ(x),ϕ(y)H将两个点映射到 R \mathbb{R} R。在这种情况下也是如此。内积 x ⊤ y \mathbf{x}^{\top} \mathbf{y} xy可以用适当的核函数来代替。常见的选择是。
κ ( x , y ) = ( α x ⊤ y + β ) γ  polynomial kernel  κ ( x , y ) = exp ⁡ ( − ∥ x − y ∥ 2 / ( 2 σ 2 ) )  radial basis function kernel  κ ( x , y ) = tanh ⁡ ( γ x ⊤ y − δ )  sigmoid kernel  (8.49-51) \begin{array}{ll} \kappa(\mathbf{x}, \mathbf{y})=\left(\alpha \mathbf{x}^{\top} \mathbf{y}+\beta\right)^{\gamma} & \text { polynomial kernel } \\ \kappa(\mathbf{x}, \mathbf{y})=\exp \left(-\|\mathbf{x}-\mathbf{y}\|^{2} /\left(2 \sigma^{2}\right)\right) & \text { radial basis function kernel } \\ \kappa(\mathbf{x}, \mathbf{y})=\tanh \left(\gamma \mathbf{x}^{\top} \mathbf{y}-\delta\right) & \text { sigmoid kernel } \end{array} \tag{8.49-51} κ(x,y)=(αxy+β)γκ(x,y)=exp(xy2/(2σ2))κ(x,y)=tanh(γxyδ) polynomial kernel  radial basis function kernel  sigmoid kernel (8.49-51)

tanh ⁡ ( x ) = ( e x − e − x ) / ( e x + e − x ) \tanh (x)=\left(e^{x}-e^{-x}\right) /\left(e^{x}+e^{-x}\right) tanh(x)=(exex)/(ex+ex)。 然后使用这些核函数之一通过以下方式定义Gram矩阵的项

h i j = y i y j κ ( x i , x j ) (8.52) h_{i j}=y_{i} y_{j} \kappa\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right) \tag{8.52} hij=yiyjκ(xi,xj)(8.52)

关于前面提到的核的一些说明。

  • 在多项式核的情况下,当原始信号在 R p \mathbb{R}^{p} Rp中时,希尔伯特空间 H \mathcal{H} H的维度 H \mathcal{H} H ( p + d d ) \left(\begin{array}{c}p+d \\ d\end{array}\right) (p+dd)

  • 径向基函数核通常也被称为高斯核,它描述了一个非线性函数 ϕ \phi ϕ,它映射到一个无限维的希尔伯特空间 H . H . H.

  • sigmoid核只在 γ , δ \gamma, \delta γ,δ的特定选择下,以及在信号的平方准则 ∥ x ∥ 2 . \|\mathbf{x}\|^{2}. x2.的特定条件下产生一个s.p.d.核矩阵。

解决以下问题

max ⁡ λ ∑ i λ i − 1 2 λ ⊤ H λ  s.t.  0 ≤ λ i ≤ c , ∑ i λ i y i = 0 (8.53) \begin{array}{ll} \max _{\boldsymbol{\lambda}} & \sum_{i} \lambda_{i}-\frac{1}{2} \boldsymbol{\lambda}^{\top} \mathbf{H} \boldsymbol{\lambda} \\ \text { s.t. } & 0 \leq \lambda_{i} \leq c, \sum_{i} \lambda_{i} y_{i}=0 \end{array} \tag{8.53} maxλ s.t. iλi21λHλ0λic,iλiyi=0(8.53)

其中 h i j = y i y j κ ( x i , x j ) h_{i j}=y_{i} y_{j} \kappa\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right) hij=yiyjκ(xi,xj)提供了Lagrange系数 λ ⋆ \boldsymbol{\lambda}^{\star} λ,但我们如何用这个结果对新点进行分类?首先,注意到根据线性情况下的分类规则(即用 sign ⁡ ( w ⊤ z − b ) \operatorname{sign}\left(\mathbf{w}^{\top} \mathbf{z}-b\right) sign(wzb)规则对 z \mathbf{z} z进行分类,我们可以用以下方式表达决策函数

f ( z ) = ∑ i ∈ S u p p λ i y i κ ( x i , z ) − b (8.54) f(\mathbf{z})=\sum_{i \in S u p p} \lambda_{i} y_{i} \kappa\left(\mathbf{x}_{i}, \mathbf{z}\right)-b \tag{8.54} f(z)=iSuppλiyiκ(xi,z)b(8.54)

其中 Supp ⁡ \operatorname{Supp} Supp表示支持度(即,对于所有 i i i 0 < λ i ≤ c 0<\lambda_{i} \leq c 0<λic)。我们根据 f ( z ) f(\mathbf{z}) f(z)的符号来分配标签。

我们需要的唯一剩余成分是因子 b b b。从原问题的KKT条件中,我们知道方程

y i ( ⟨ ϕ ( x i ) , w ⟩ H ) − b ) − 1 = 0 \left.y_{i}\left(\left\langle\phi\left(\mathbf{x}_{i}\right), \mathbf{w}\right\rangle_{\mathcal{H}}\right)-b\right)-1=0 yi(ϕ(xi),wH)b)1=0

Supp ⁡ \operatorname{Supp} Supp中的任何 i i i都必须成立。向量 w \mathbf{w} w是高维希尔伯特空间 H \mathcal{H} H的一个元素,可以改写为映射的支持向量之和 ∑ j ∈ Supp ⁡ λ i y i ϕ ( x i ) \sum_{j \in \operatorname{Supp}} \lambda_{i} y_{i} \phi\left(\mathbf{x}_{i}\right) jSuppλiyiϕ(xi)。将此插入前述方程可得

b = ∑ j ∈ S u p p ( λ j y j ⟨ ϕ ( x i ) , ϕ ( x j ) ⟩ H ) − y i b=\sum_{j \in S u p p}\left(\lambda_{j} y_{j}\left\langle\phi\left(\mathbf{x}_{i}\right), \phi\left(\mathbf{x}_{j}\right)\right\rangle_{\mathcal{H}}\right)-y_{i} b=jSupp(λjyjϕ(xi),ϕ(xj)H)yi

对于支持中的任何 i i i来说。为了使这个结果更加稳健,我们对所有可能的指数 i i i进行平均,得到
b = 1 N S u p p ∑ i ∈ S u p p ( ∑ j ∈ S u p p ( λ j y j ⟨ ϕ ( x i ) , ϕ ( x j ) ⟩ H ) − y i ) b=\frac{1}{N_{S u p p}} \sum_{i \in S u p p}\left(\sum_{j \in S u p p}\left(\lambda_{j} y_{j}\left\langle\phi\left(\mathbf{x}_{i}\right), \phi\left(\mathbf{x}_{j}\right)\right\rangle_{\mathcal{H}}\right)-y_{i}\right) b=NSupp1iSuppjSupp(λjyjϕ(xi),ϕ(xj)H)yi

其中 N S u p p N_{S u p p} NSupp是支持向量的数量。因此,通过用核函数代替内积,我们可以计算出 b b b
b = 1 N S u p p ∑ i ∈ S u p p ( ∑ j ∈ S u p p ( λ j y j κ ( x i , x j ) ) − y i ) (8.55) b=\frac{1}{N_{S u p p}} \sum_{i \in S u p p}\left(\sum_{j \in S u p p}\left(\lambda_{j} y_{j} \kappa\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)\right)-y_{i}\right) \tag{8.55} b=NSupp1iSuppjSupp(λjyjκ(xi,xj))yi(8.55)

猜你喜欢

转载自blog.csdn.net/qq_37266917/article/details/122912181