Note 8 支持向量机(Support Vector Machines)
支持向量机
- Note 8 支持向量机(Support Vector Machines)
-
- 8.1 SVM的几何学基础
-
-
- Lemma 8.18.18.1 有符号的仿射超平面距离 (Signed distance to affine hyperplanes)
-
- 8.2 基础的线性SVM(Basic Linear SVM)
-
- 8.2.1 Karush-Kuhn-Tucker条件
-
- 定理8.2 Karush-Kuhn-Tucker(KKT)条件 (Karush-Kuhn-Tucker (KKT) conditions)
- 8.2.2 拉格朗日对偶性 (Lagrangian Duality)
- 8.2.3 线性SVM: 原始和对偶问题 (Linear SVM: Primal and Dual Problem)
- 8.3 软边际线性SVM (Soft Margin Linear SVM)
- 8.4 核SVM
支持向量机背后的想法是非常简单的。在最简单的情况下,我们假设两个类的样本可以线性分离,也就是说,我们假设存在一个可以分离两个类的二维仿射超平面。SVM是有监督的学习算法,在给定两类的训练样本时,它可以找到 "最佳 "分离超平面。一旦找到它,就很容易对新的数据点进行分类。根据传入的新数据点位于超平面的哪一侧,它被分配到相应的类别。
8.1 SVM的几何学基础
对于一些w∈Rp\mathbf{w} \in \mathbb{R}^{p}w∈Rp和一些非负的b≥0b \geq 0b≥0,Rp\mathbb{R}^{p}Rp中的仿射超平面被定义为集合
Hw,b:={x∈Rp∣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?:={
x∈Rp∣w?x?b=0}.(8.1)
向量w\mathbf{w}w是法线,或者说垂直于Hw,b\mathcal{H}_{\mathbf{w}, b}Hw,b?,因为只要我们在超平面上有一个任意的线段x2?x1\mathrm{x}_{2}-\mathrm{x}_{1}x2??x1?,在x1,x2∈Hw,b\mathrm{x}_{1}, \mathrm{x}_{2} \in \mathcal{H}_{\mathrm{w}, b}x1?,x2?∈Hw,b?,则
w?(x2?x1)=0.(8.2)\mathbf{w}^{\top}\left(\mathbf{x}_{2}-\mathbf{x}_{1}\right)=0 . \tag{8.2}w?(x2??x1?)=0.(8.2)
由此也很容易得出两个仿射超平面Hw,b,Hw~,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)。
任何超平面都将Rp\mathbb{R}^{p}Rp完全分离在两个半空间1{ }^{1}1。从某个点x\mathbf{x}x到Hw,b\mathcal{H}_{\mathbf{w}, b}Hw,b?的有符号距离定义为
δ(x,Hw,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?)=∥w∥w?x?b?.(8.3)
这个定义的理由是因为以下的Lemma。
Lemma 8.18.18.1 有符号的仿射超平面距离 (Signed distance to affine hyperplanes)
从x\mathrm{x}x到Hw,b\mathcal{H}_{\mathbf{w}, b}Hw,b?的欧氏距离由∣δ(x,Hw,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∈Hw,b(8.4)\min \|\mathbf{r}\| \quad \text { s.t. } \quad \mathbf{x}+\mathbf{r} \in \mathcal{H}_{\mathbf{w}, b} \tag{8.4}min∥r∥ s.t. x+r∈Hw,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}r?w=b?x?w.(8.5)
从这个等式可以看出,解决(8.4)的r\mathbf{r}r必须是w\mathbf{w}w的倍数。我们在下文中证明这一点。假设r\mathbf{r}r不是w\mathbf{w}w的倍数。那么对于wi⊥\mathbf{w}_{i}^{\perp}wi⊥?正交于w\mathbf{w}w,我们总是可以把它写成r=λw+∑iμiwi⊥\mathbf{r}=\lambda \mathbf{w}+\sum_{i} \mu_{i} \mathbf{w}_{i}^{\perp}r=λw+∑i?μi?wi⊥?。由于正交性,(λw+∑iμiwi⊥)?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?μi?wi⊥?)?w=λw?w成立,同时根据三角不等式有∥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. λ∥w∥2=b?x?w(8.6)
它的解是有符号的距离的绝对值
∣w?x?b∣∥w∥=∣δ(x,Hw,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}∥w∥∣∣?w?x?b∣∣??=∣δ(x,Hw,b?)∣(8.7)
很容易看出,与超平面的有符号距离在一半空间中是正的,而在另一半空间中是负的。我们把Hw,b\mathcal{H}_{\mathbf{w}, b}Hw,b?的边际定义为接近Hw,b\mathcal{H}_{\mathbf{w}, b}Hw,b?的点的集合。更确切地说,让
H+:={x∈Rp∣w?x?b=1}H?:={x∈Rp∣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+?:={ x∈Rp∣w?x?b=1}H??:={ x∈Rp∣w?x?b=?1}?(8.8;8.9)
是两个平行于Hw,b\mathcal{H}_{\mathbf{w}, b}Hw,b?的仿射超平面。那么Hw,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}\|}∣w∥2?给出。因此,如果我们想找到一个仿射超平面Hw,b\mathcal{H}_{\mathbf{w}, b}Hw,b?,允许 "最好 "地分离两类数据点,如果我们通过允许最大的余量来量化 “最好”,同时仍然防止数据点落在这个余量之内,我们将不得不在一些约束条件下最大化2∥w∥\frac{2}{\|\mathbf{w}\|}∥w∥2?,这使我们想到线性SVM。
8.2 基础的线性SVM(Basic Linear SVM)
如上所述,SVM是一种有监督的学习方法,所以我们从NNN标记的训练数据开始,(xi,yi)∈Rp×{?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。这里,yiy_{i}yi?为111或?1-1?1,表示数据属于两类中的哪一类。对于线性SVM,我们必须假设这个数据确实是线性可分离的,也就是说,我们必须假设存在一个将两个类分开的仿射超平面Hw,b\mathcal{H}_{\mathrm{w}, b}Hw,b?。没有数据点位于Hw,b\mathcal{H}_{\mathbf{w}, b}Hw,b?的边际内,这一约束相当于要求所有属于yi=1y_{i}=1yi?=1的点与H+\mathcal{H}_{+}H+?的距离为正,而所有属于yi=?1y_{i}=-1yi?=?1的数据与H?\mathcal{H}_{-}H??的距离为负,即。
w?xi?b≥+1for yi=+1w?xi?b≤?1for yi=?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}w?xi??b≥+1w?xi??b≤?1? for yi?=+1 for yi?=?1?(8.10)
这可以更简洁地写成
yi(w?xi?b)≥1for 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?(w?xi??b)≥1 for all i=1,…,N(8.11)
因此,寻找允许最大余量的仿射超平面的任务,同时仍然分离两个类,由优化问题来描述
max?2∥w∥2s.t. yi(w?xi?b)≥1for 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}max∥w∥22? s.t. yi?(w?xi??b)≥1 for all i=1,…,N(8.12)
或者等价地,以
min?12∥w∥2s.t. yi(w?xi?b)≥1for 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}min21?∥w∥2 s.t. yi?(w?xi??b)≥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∈Rnf(z)s.t. ci(z)=0for i∈Eand cj(z)≥0for 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}minz∈Rn? s.t. ?f(z)ci?(z)=0 for i∈E and cj?(z)≥0 for j∈I?(8.14)
与平滑实值函数f,cif, 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λici(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)?i∈I∪E∑?λi?ci?(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}λ?,使得
?zL(z?,λ?)=0ci(z?)=0for i∈Eci(z?)≥0for i∈Iλi?≥0for i∈Iλi?ci(z?)=0for 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}?z?L(z?,λ?)ci?(z?)ci?(z?)λi??λi??ci?(z?)?=0=0 for i∈E≥0 for i∈I≥0 for i∈I=0 for i∈I∪E?(8.16-8.21)
由于SVM的优化问题是凸的(一个凸的目标函数和定义了一个凸的可行区域的约束条件),KKT条件是z?,λ?\mathbf{z}^{\star}, \boldsymbol{\lambda}^{\star}z?,λ?成为一个解决方案的必要和充分条件。最后一个条件意味着,要么约束条件iii在活动集合中,要么拉格朗日乘数的第iii分量为零,或者可能两者都是。
2{ }^{2}2这在它们是线性的情况下是被满足的,所以特别是对于线性SVM的情况。
8.2.2 拉格朗日对偶性 (Lagrangian Duality)
像以前一样,我们将考虑一般的优化问题
min?f(z)s.t. ci(z)=0,i∈E,cj(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,i∈E,cj?(z)≥0,j∈I
这也被称为原始问题。相应的拉格朗日函数被定义为
L(z,λ)=f(z)?∑i∈I∪Eλici(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)?i∈I∪E∑?λi?ci?(z)
带有拉格朗日乘数(也称为对偶变量)λi≥0\lambda_{i} \geq 0λi?≥0。基于拉格朗日函数,我们可以创建一个新的函数,为目标函数fff提供一个下限。由于对偶变量都是正数,即λi≥0\lambda_{i} \geq 0λi?≥0,我们知道f(z)≥f(\mathbf{z}) \geqf(z)≥ L(z,λ)L(\mathbf{z}, \boldsymbol{\lambda})L(z,λ)对于所有可行的z\mathbf{z}z。这就促使拉格朗日对偶函数的定义为
g(λ)=inf?zL(z,λ)=inf?z(f(z)?∑i∈I∪Eλici(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(λ)=zinf?L(z,λ)=zinf?(f(z)?i∈I∪E∑?λi?ci?(z))(8.22)
对偶函数g(?)g(\cdot)g(?)是凹的,即使原来的问题不是凸的,因为它是仿射函数的逐点下确界(point-wise infimum of affine functions)。对偶形式产生了目标函数fff的最优值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 λmax?g(λ) s.t. λi?≥0
在某些条件下(在SVM的情况下成立),原始问题的最小值与对偶问题的最大值重合,即d?=max?g(λ)=d^{\star}=\max g(\boldsymbol{\lambda})=d?=maxg(λ)= inf?zf(z)=p?\inf _{\mathbf{z}} f(\mathbf{z})=p^{\star}infz?f(z)=p?。这被称为强对偶性。
Remark
对偶性使我们能够使用凸优化来计算任何问题的最优值的下限,无论是否凸,都可以。然而,对偶函数ggg可能不容易计算,因为它本身被定义为一个优化问题。当ggg可以写成封闭形式时,使用对偶性效果最好。即使如此,也可能不容易找到对偶问题的解决方案,因为不是所有的凸问题都容易解决。
8.2.3 线性SVM: 原始和对偶问题 (Linear SVM: Primal and Dual Problem)
根据这一动机,对于手头的问题,我们必须解决以下问题
min?w,b,λ≥0L(w,b,λ)with L(w,b,λ)=12∥w∥2?∑iλi(yi(w?xi?b)?1)=12∥w∥2?∑iλiyi(w?xi?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,λ≥0min?L(w,b,λ) with L(w,b,λ)=21?∥w∥2?i∑?λi?(yi?(w?xi??b)?1)=21?∥w∥2?i∑?λi?yi?(w?xi??b)+i∑?λi??(8.23-25)
这个问题是严格凸的,因此,如果它存在的话,它的解是唯一的。拉格朗日函数的梯度与优化参数(w,bw, bw,b )的关系为
?(w,b)L(w,b,λ)=[w?∑iλiyixi∑iλiyi](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,λ)=[w?∑i?λi?yi?xi?∑i?λi?yi??](8.26)
因此,KKT条件(8.17)(8.17)(8.17)和(8.21)(8.21)(8.21)得到
w??∑iλi?yixi=0∑iλi?yi=0λi?(yi((w?)?xi?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}w??∑i?λi??yi?xi?=0∑i?λi??yi?=0λi??(yi?((w?)?xi??b?)?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}?)方程
12∥w∥2?∑iλiyi(w?xi?b)+∑iλi=12∑i,jλiλjyiyjxi?xj?∑i,jλiλjyiyjxi?xj+∑iλiyib+∑iλi=∑iλi?12∑i,jλiλjyiyjxi?xj.\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} ==?21?∥w∥2?i∑?λi?yi?(w?xi??b)+i∑?λi?21?i,j∑?λi?λj?yi?yj?xi??xj??i,j∑?λi?λj?yi?yj?xi??xj?+i∑?λi?yi?b+i∑?λi?i∑?λi??21?i,j∑?λi?λj?yi?yj?xi??xj?.?
这个只取决于λ\boldsymbol{\lambda}λ的新表述是问题的对偶形式(参见(8.22)(8.22)(8.22)),我们把它写成
LD(λ)=∑iλi?12λ?Hλs.t. λi≥0,∑iλiyi=0L_{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∑?λi??21?λ?Hλ s.t. λi?≥0,i∑?λi?yi?=0
其中H\mathbf{H}H的项定义为内积hij=yiyjxi?xjh_{i j}=y_{i} y_{j} \mathbf{x}_{i}^{\top} \mathbf{x}_{j}hij?=yi?yj?xi??xj?。 最佳的拉格朗日乘数是通过解决最大化问题找到的。
max?λ(∑iλi?12λ?Hλ)s.t. λi≥0,∑iλiyi=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∑?λi??21?λ?Hλ) s.t. λi?≥0,i∑?λi?yi?=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?对应于点xi\mathbf{x}_{i}xi?。如果λi\lambda_{i}λi?不等于零,则方程(8.29)(8. 29)(8.29)意味着yi(w?xi?b)=1y_{i}\left(\mathbf{w}^{\top}\mathbf{x}_{i}-b\right)=1yi?(w?xi??b)=1,即相应的xi\mathbf{x}_{i}xi?是H+\mathcal{H}_{+}H+?或H?\mathcal{H}_{-}H??的一个元素。
8.3 软边际线性SVM (Soft Margin Linear SVM)
显然,如果训练集不是线性可分离的,上述方法就会失败,因为在这种情况下,没有满足约束条件的点。为了克服这个明显的缺点,软边际SVMS V MSVM允许一些错误分配的数据样本。它在大余量和错误分类的程度之间寻找一种折衷。这种错误分类由一组NNN的额外变量ξi\xi_{i}ξi?来量化,这些变量被假定为非负的,从而导致了约束条件
yi(w?xi?b)≥1?ξifor 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?(w?xi??b)≥1?ξi? for all i=1,…,N(8.31)
因此,为了获得一个大的余地,同时保持适度的错误分类,我们考虑优化问题
min?w,b,ξ12∥w∥22+c∑i=1Nξis.t. yi(w?xi?b)≥1?ξiand ξ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. ?21?∥w∥22?+c∑i=1N?ξi?yi?(w?xi??b)≥1?ξi? and ξi?≥0?i?(8.32-33)
因此,为了获得一个大的余量,同时自由参数c>0c>0c>0在大的余量和错误分类之间进行权衡。选择的ccc越大,对违反分离规则的惩罚就越大。如前所述,这是一个二次规划问题,可以用QP求解器来解决。相应的KKT条件将在下面讨论。我们的软边际SVM的拉格朗日为:保持适度的错误分类,我们考虑优化问题
L(w,b,ξ,λ,μ)=12∥w∥2+c∑iξi?∑iλi(yi(w?xi?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,ξ,λ,μ)=21?∥w∥2+ci∑?ξi??i∑?λi?(yi?(w?xi??b)?1+ξi?)?i∑?μi?ξi?(8.34)
其中μi\mu_{i}μi?是为强制执行ξi\xi_{i}ξi?的正性而引入的Lagrange乘数。相应的KKT条件为
?wL=w?∑iλiyixi=0?bL=∑iλiyi=0?ξiL=c?λi?μi=0yi(w?xi?b)?1+ξi≥0ξi≥0λi≥0μi≥0λi(yi(w?xi?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}?w?L=w?∑i?λi?yi?xi?=0?b?L=∑i?λi?yi?=0?ξi??L=c?λi??μi?=0yi?(w?xi??b)?1+ξi?≥0ξi?≥0λi?≥0μi?≥0λi?(yi?(w?xi??b)?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?的依赖性。
12w?w?∑iλi(yi(w?xi?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}21?w?w?i∑?λi?(yi?(w?xi??b)?1)(8.44)
接下来,我们利用(8.35)(8.35)(8.35)的事实:w=∑iλiyixi\mathbf{w}=\sum_{i} \lambda_{i} y_{i} \mathbf{x}_{i}w=∑i?λi?yi?xi?并将其代入(8.44)。通过使用属性(8.36)(8.36)(8.36),我们得到对偶形式
LD(λ)=∑iλi?12λ?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∑?λi??21?λ?Hλ(8.45)
矩阵H\mathbf{H}H的项 hij=yiyjxi?xjh_{i j}=y_{i} y_{j} \mathbf{x}_{i}^{\top} \mathbf{x}_{j}hij?=yi?yj?xi??xj? 在0≤λi≤c0 \leq \lambda_{i} \leq c0≤λi?≤c 与 ∑iλiyi=0\sum_{i} \lambda_{i} y_{i}=0∑i?λi?yi?=0的约束条件下。因此,对偶问题的形式为
max?λLD(λ)s.t. 0≤λi≤c,∑iλiyi=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}λmax?LD?(λ) s.t. 0≤λi?≤c,i∑?λi?yi?=0(8.46)
然后,解由w=∑iλiyixi\mathbf{w}=\sum_{i} \lambda_{i} y_{i} \mathbf{x}_{i}w=∑i?λi?yi?xi?给出。因此,与可分离情况的唯一区别是λi\lambda_{i}λi?有一个上限ccc。方程(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。因此,任何训练样本xi\mathbf{x}_{i}xi?(如果0<λi<c0<\lambda_{i}<c0<λi?<c)是一个支持向量。此外,对于任何支持向量xi\mathbf{x}_{i}xi? 方程(8.42)(8.42)(8.42)简化为yi(w?xi?b)+1=0y_{i}\left(\mathbf{w}^{\top} \mathbf{x}_{i}-b\right)+1=0yi?(w?xi??b)+1=0,可以用来计算b?b^{\star}b?。为了得到一个更稳定的解决方案,建议使用支持区所有点的平均值。具体来说,它被定义为
b?=1NSupp∑i∈Supp((w?)?xi?yi)(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?=NSupp?1?i∈Supp∑?((w?)?xi??yi?)(8.47)
其中Supp?\operatorname{Supp}Supp表示支持指数,NSuppN_{S u p p}NSupp?表示支持向量的数量。
8.4 核SVM
正如我们之前看到的,对于一组训练样本(xi,yi),i=1,…,N,xi∈Rp,yi∈{?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,xi?∈Rp,yi?∈{ ?1,1} 可以改写为对偶形式
max?λ∑iλi?12λ?Hλs.t. 0≤λi≤c,∑iλiyi=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?λi??21?λ?Hλ0≤λi?≤c,∑i?λi?yi?=0?(8.48)
带有Gram 矩阵H\mathbf{H}H,其项定义为hij=yiyjxi?xjh_{i j}=y_{i} y_{j} \mathbf{x}_{i}^{\top} \mathbf{x}_{j}hij?=yi?yj?xi??xj?。我们在关于核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}x?y可以用适当的核函数来代替。常见的选择是。
κ(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)=(αx?y+β)γκ(x,y)=exp(?∥x?y∥2/(2σ2))κ(x,y)=tanh(γx?y?δ)? polynomial kernel radial basis function kernel sigmoid kernel ?(8.49-51)
且tanh?(x)=(ex?e?x)/(ex+e?x)\tanh (x)=\left(e^{x}-e^{-x}\right) /\left(e^{x}+e^{-x}\right)tanh(x)=(ex?e?x)/(ex+e?x)。 然后使用这些核函数之一通过以下方式定义Gram矩阵的项
hij=yiyjκ(xi,xj)(8.52)h_{i j}=y_{i} y_{j} \kappa\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right) \tag{8.52}hij?=yi?yj?κ(xi?,xj?)(8.52)
关于前面提到的核的一些说明。
-
在多项式核的情况下,当原始信号在Rp\mathbb{R}^{p}Rp中时,希尔伯特空间H\mathcal{H}H的维度H\mathcal{H}H为(p+dd)\left(\begin{array}{c}p+d \\ d\end{array}\right)(p+dd?)。
-
径向基函数核通常也被称为高斯核,它描述了一个非线性函数?\phi?,它映射到一个无限维的希尔伯特空间H.H .H.。
-
sigmoid核只在γ,δ\gamma, \deltaγ,δ的特定选择下,以及在信号的平方准则∥x∥2.\|\mathbf{x}\|^{2}.∥x∥2.的特定条件下产生一个s.p.d.核矩阵。
解决以下问题
max?λ∑iλi?12λ?Hλs.t. 0≤λi≤c,∑iλiyi=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?λi??21?λ?Hλ0≤λi?≤c,∑i?λi?yi?=0?(8.53)
其中hij=yiyjκ(xi,xj)h_{i j}=y_{i} y_{j} \kappa\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)hij?=yi?yj?κ(xi?,xj?)提供了Lagrange系数λ?\boldsymbol{\lambda}^{\star}λ?,但我们如何用这个结果对新点进行分类?首先,注意到根据线性情况下的分类规则(即用sign?(w?z?b)\operatorname{sign}\left(\mathbf{w}^{\top} \mathbf{z}-b\right)sign(w?z?b)规则对z\mathbf{z}z进行分类,我们可以用以下方式表达决策函数
f(z)=∑i∈Suppλiyiκ(xi,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)=i∈Supp∑?λi?yi?κ(xi?,z)?b(8.54)
其中Supp?\operatorname{Supp}Supp表示支持度(即,对于所有iii有 0<λi≤c0<\lambda_{i} \leq c0<λi?≤c)。我们根据 f(z)f(\mathbf{z})f(z)的符号来分配标签。
我们需要的唯一剩余成分是因子bbb。从原问题的KKT条件中,我们知道方程
yi(??(xi),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?),w?H?)?b)?1=0
对Supp?\operatorname{Supp}Supp中的任何iii都必须成立。向量w\mathbf{w}w是高维希尔伯特空间H\mathcal{H}H的一个元素,可以改写为映射的支持向量之和∑j∈Supp?λiyi?(xi)\sum_{j \in \operatorname{Supp}} \lambda_{i} y_{i} \phi\left(\mathbf{x}_{i}\right)∑j∈Supp?λi?yi??(xi?)。将此插入前述方程可得
b=∑j∈Supp(λjyj??(xi),?(xj)?H)?yib=\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=j∈Supp∑?(λj?yj???(xi?),?(xj?)?H?)?yi?
对于支持中的任何iii来说。为了使这个结果更加稳健,我们对所有可能的指数iii进行平均,得到
b=1NSupp∑i∈Supp(∑j∈Supp(λjyj??(xi),?(xj)?H)?yi)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=NSupp?1?i∈Supp∑????j∈Supp∑?(λj?yj???(xi?),?(xj?)?H?)?yi????
其中NSuppN_{S u p p}NSupp?是支持向量的数量。因此,通过用核函数代替内积,我们可以计算出bbb为
b=1NSupp∑i∈Supp(∑j∈Supp(λjyjκ(xi,xj))?yi)(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=NSupp?1?i∈Supp∑????j∈Supp∑?(λj?yj?κ(xi?,xj?))?yi????(8.55)