支持向量机(Support Vector Machine, SVM)是一种二分类模型。它的基本思想是间隔最大化。

1、线性可分支持向量机

给定训练集 T={(x1,y1),(x2,y2),...,(xm,ym)} T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } T=\{(\boldsymbol x_1, y_1), (\boldsymbol x_2, y_2), ..., (\boldsymbol x_m, y_m)\},其中 (xi,yi) ( x i , y i ) (\boldsymbol x_i, y_i)表示第 i i i个训练样本。输入实例xi∈Rd'>xi∈Rdxi∈Rd\boldsymbol x_i \in \mathbb R^d, 标记 yi∈{+1,−1} y i ∈ { + 1 , − 1 } y_i\in \{ +1, -1\},+1代表正例,-1代表反例。

假设训练集线性可分,即存在超平面能正确划分训练集,并且很容易看出这种超平面有无穷多个。分类超平面用 ωTx+b=0 ω T x + b = 0 \boldsymbol \omega^T \boldsymbol x+b = 0表示,对所有 ωTx+b>0 ω T x + b > 0 \boldsymbol \omega^T \boldsymbol x+b>0的实例,超平面将其划分为正类;对所有 ωTx+b<0 ω T x + b < 0 \boldsymbol \omega^T \boldsymbol x+b的实例,超平面将其划分为反例。

学习的目的,就是找到这样一个分类超平面,使其对训练集进行正确划分。上面也说了,在训练集线性可分的情况下,这样的分类超平面有无穷多个。支持向量机通过间隔最大化求最优分类超平面,这个最优超平面的解是唯一的。

1.1 函数间隔与几何间隔

函数间隔
超平面 ωTx+b=0 ω T x + b = 0 \boldsymbol \omega^T \boldsymbol x+b=0关于样本点 (xi,yi) ( x i , y i ) (\boldsymbol x_i, y_i)的函数间隔为

γ^i=yi(ωTxi+b),(1) (1) γ ^ i = y i ( ω T x i + b ) ,

\hat \gamma_i = y_i(\boldsymbol \omega^T \boldsymbol x_i+b), \tag 1
关于训练集T的函数间隔为

γ^=miniγ^i.(2) (2) γ ^ = min i γ ^ i .

\hat \gamma = \min_i \hat \gamma_i. \tag 2

对于分类超平面 ωTx+b=0 ω T x + b = 0 \boldsymbol \omega^T \boldsymbol x+b=0与样本 (xi,yi) ( x i , y i ) (\boldsymbol x_i, y_i), (ωTxi+b) ( ω T x i + b ) (\boldsymbol \omega^T \boldsymbol x_i+b)的符号与 yi y i y_i的符号是否一致能够表示分类是否正确; |ωTxi+b| | ω T x i + b | |\boldsymbol \omega^T \boldsymbol x_i+b|能够相对地表示 xi x i \boldsymbol x_i距离超平面的远近,而实例点距离分类超平面的远近可以表示分类的确信程度。所以函数间隔不仅包含了超平面是否将样本正确分类的信息,还包含了超平面对样本分类的确信度。

几何间隔
超平面 ωTx+b=0 ω T x + b = 0 \boldsymbol \omega^T \boldsymbol x+b=0关于样本点 (xi,yi) ( x i , y i ) (\boldsymbol x_i, y_i)的几何间隔为

γi=yi(ωTxi+b)||ω||,(3) (3) γ i = y i ( ω T x i + b ) | | ω | | ,

\gamma_i = \frac{y_i(\boldsymbol \omega^T \boldsymbol x_i+b)}{||\boldsymbol \omega||}, \tag3
关于训练集T的函数间隔为

γ=miniγi.(4) (4) γ = min i γ i .

\gamma = \min_i \gamma_i. \tag 4

几何间隔是有符号距离,只有在样本点被超平面正确分类时才是实例点到超平面的距离。

由(1)~(4)可以得到

γ=γ^||ω||.(5) (5) γ = γ ^ | | ω | | .

\gamma = \frac{\hat \gamma}{||\boldsymbol \omega||} . \tag 5

1.2 间隔最大化

线性可分支持向量机的目的是找到把训练数据正确划分且几何间隔最大的分类超平面。间隔最大的分类超平面对未知实例有很好的泛化能力。

寻找几何间隔最大的超平面可以表示为优化问题:

maxω,bγ=maxω,bminiγi=maxω,bminiyi(ωTxi+b)||ω||(6) (6) max ω , b γ = max ω , b min i γ i = max ω , b min i y i ( ω T x i + b ) | | ω | |

\max_{\boldsymbol \omega, b} \gamma= \max_{\boldsymbol \omega, b}\min_i \gamma_i= \max_{\boldsymbol \omega, b}\min_i \frac{y_i(\boldsymbol \omega^T \boldsymbol x_i+b)}{||\boldsymbol \omega||} \tag 6

可以写成约束优化问题:

maxω,bs.t.γyi(ωTxi+b)||ω||≥γ(1)(2)(7) (7) (1) max ω , b γ (2) s . t . y i ( ω T x i + b ) | | ω | | ≥ γ

\begin{align} \max_{\boldsymbol \omega, b} & \qquad \gamma \\ s.t. & \qquad \frac{y_i(\boldsymbol \omega^T \boldsymbol x_i+b)}{||\boldsymbol \omega||} \geq \gamma \end{align} \tag 7

把(5)代入(7)中,得到

maxω,bs.t.γ^||ω||yi(ωTxi+b)≥γ^(3)(4)(8) (8) (3) max ω , b γ ^ | | ω | | (4) s . t . y i ( ω T x i + b ) ≥ γ ^

\begin{align} \max_{\boldsymbol \omega, b} & \qquad \frac{\hat \gamma}{||\boldsymbol \omega||} \\ s.t. & \qquad {y_i(\boldsymbol \omega^T \boldsymbol x_i+b)}\geq {\hat \gamma}\end{align} \tag 8

无论 γ^ γ ^ \hat \gamma取什么值,优化问题(8)的最优解对应的超平面和最优值总是不变的。比如取 γ^=1 γ ^ = 1 \hat \gamma =1,此时求出最优解为 (ω∗|γ^=1,b∗|γ^=1) ( ω ∗ | γ ^ = 1 , b ∗ | γ ^ = 1 ) ( \boldsymbol \omega^*|_{\hat\gamma=1}, b^*|_{\hat\gamma=1} ),对应的最优值为 1||ω∗|γ^=1|| 1 | | ω ∗ | γ ^ = 1 | | \frac{1}{||\omega^*|_{\hat\gamma=1}||};现在取 γ^=2 γ ^ = 2 \hat \gamma = 2,可以求出最优解为 (2ω∗|γ^=1,2b∗|γ^=1) ( 2 ω ∗ | γ ^ = 1 , 2 b ∗ | γ ^ = 1 ) (2\boldsymbol \omega^*|_{\hat\gamma=1}, 2b^*|_{\hat\gamma=1} ),对应的最优值为 1||ω∗|γ^=1|| 1 | | ω ∗ | γ ^ = 1 | | \frac{1}{||\omega^*|_{\hat\gamma=1}||}。可以看出,两个最优解对应的超平面是同一个超平面。

于是,令 γ=1 γ = 1 \gamma=1,优化问题(8)等价于优化问题

maxω,bs.t.1||ω||yi(ωTxi+b)≥1(5)(6)(9) (9) (5) max ω , b 1 | | ω | | (6) s . t . y i ( ω T x i + b ) ≥ 1

\begin{align} \max_{\boldsymbol \omega, b} & \qquad \frac{1}{||\boldsymbol \omega||} \\ s.t. & \qquad {y_i(\boldsymbol \omega^T \boldsymbol x_i+b)}\geq {1}\end{align} \tag 9

而最大化 1||ω|| 1 | | ω | | \frac{1}{||\boldsymbol \omega||} 等价于最小化 12||ω||2 1 2 | | ω | | 2 \frac{1}{2}||\boldsymbol \omega||^2,于是优化问题(9)等价于

minω,bs.t.12||ω||2yi(ωTxi+b)≥1(7)(8)(10) (10) (7) min ω , b 1 2 | | ω | | 2 (8) s . t . y i ( ω T x i + b ) ≥ 1

\begin{align} \min_{\boldsymbol \omega, b} & \qquad \frac{1}{2}||\boldsymbol \omega||^2\\ s.t. & \qquad {y_i(\boldsymbol \omega^T \boldsymbol x_i+b)}\geq {1}\end{align} \tag {10}

(10)就是线性可分支持向量机的最优化问题。这是一个凸二次规划问题。可以用一般的凸二次规划算法求解,也可以用优化问题的拉格朗日法求解。

1.3 对偶问题

原始优化问题(10)可以通过极大极小化拉格朗日函数得到对偶优化问题,然后根据对偶问题的最优解得到原始问题的最优解。

引入拉格朗日乘子 αi≥0,i=1,2,⋯,m α i ≥ 0 , i = 1 , 2 , ⋯ , m \alpha_i \geq 0, i=1, 2, \cdots, m,构建拉格朗日函数

L(ω,b,α)=12||ω||2+∑i=1mαi(1−yi(ωTxi+b))(11) (11) L ( ω , b , α ) = 1 2 | | ω | | 2 + ∑ i = 1 m α i ( 1 − y i ( ω T x i + b ) )

L(\boldsymbol \omega, b, \boldsymbol \alpha)=\frac{1}{2}||\boldsymbol \omega||^2 +\sum_{i=1}^{m}\alpha_i (1-y_i(\boldsymbol \omega^T \boldsymbol x_i+b)) \tag {11}

原始问题的对偶问题是极大极小问题:

maxαminω,bL(ω,b,α). max α min ω , b L ( ω , b , α ) .

\max_{\boldsymbol \alpha}\min_{\boldsymbol \omega, b}L(\boldsymbol \omega, b, \boldsymbol \alpha).

为了求对偶问题,首先求 minω,bL(ω,b,α) min ω , b L ( ω , b , α ) \min_{\boldsymbol \omega, b} L(\boldsymbol \omega, b, \boldsymbol \alpha),令

∇ωL=ω−∑i=1mαiyixi=0(12) (12) ∇ ω L = ω − ∑ i = 1 m α i y i x i = 0

{\nabla_\boldsymbol \omega L}=\boldsymbol \omega -\sum_{i=1}^m\alpha_i y_i \boldsymbol x_i=0 \tag{12}

∇bL=−∑i=1mαiyi=0(13) (13) ∇ b L = − ∑ i = 1 m α i y i = 0

{\nabla_b L}=-\sum_{i=1}^m\alpha_i y_i =0 \tag{13}
得到

ω=∑i=1mαiyixi(14) (14) ω = ∑ i = 1 m α i y i x i

\boldsymbol \omega =\sum_{i=1}^m\alpha_i y_i \boldsymbol x_i \tag{14}

∑i=1mαiyi=0(15) (15) ∑ i = 1 m α i y i = 0

\sum_{i=1}^m\alpha_i y_i =0 \tag{15}

代入L中,得到

minω,bL(ω,b,α)=12(∑i=1mαiyixTi∑j=1mαjyjxj)+∑i=1mαi−∑i=1mαiyi(∑j=1mαjyjxTj)xi−∑i=1mαiyib=12(∑i=1m∑j=1mαiαjyiyjxTixj)+∑i=1mαi−∑i=1m∑j=1mαiαjyiyjxTixj=−12∑i=1m∑j=1mαiαjyiyjxTixj+∑i=1mαi(9)(10)(11)(12)(13)(16) (16) (9) min ω , b L ( ω , b , α ) = 1 2 ( ∑ i = 1 m α i y i x i T ∑ j = 1 m α j y j x j ) + ∑ i = 1 m α i − ∑ i = 1 m α i y i ( ∑ j = 1 m α j y j x j T ) x i − ∑ i = 1 m α i y i b (10) (11) = 1 2 ( ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j ) + ∑ i = 1 m α i − ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j (12) (13) = − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j + ∑ i = 1 m α i

\begin{align} \min_{\boldsymbol \omega, b} L(\boldsymbol \omega, b, \boldsymbol \alpha)&=\frac{1}{2}\left( \sum_{i=1}^m\alpha_i y_i \boldsymbol x_i^T \sum_{j=1}^m\alpha_j y_j \boldsymbol x_j \right) + \sum_{i=1}^{m}\alpha_i - \sum_{i=1}^m \alpha_i y_i \left( \sum_{j=1}^m\alpha_j y_j \boldsymbol x_j ^T \right ) \boldsymbol x_i - \sum_{i=1}^m \alpha_i y_i b \\\\ &=\frac{1}{2}\left( \sum_{i=1}^m\sum_{j=1}^m\alpha_i \alpha_j y_i y_j \boldsymbol x_i^T \boldsymbol x_j \right) + \sum_{i=1}^{m}\alpha_i - \sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_j y_i y_j \boldsymbol x_i ^T \boldsymbol x_j \\\\ &= - \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m\alpha_i \alpha_j y_i y_j \boldsymbol x_i^T \boldsymbol x_j + \sum_{i=1}^{m}\alpha_i \end{align} \tag{16}

然后求 minω,bL(ω,b,α) min ω , b L ( ω , b , α ) \min_{\boldsymbol \omega, b} L(\boldsymbol \omega, b, \boldsymbol \alpha)对 α α \boldsymbol \alpha的极大,得到:

maxαs.t.−12∑i=1m∑j=1mαiαjyiyjxTixj+∑i=1mαi∑i=1mαiyi=0αi≥0,i=1,2,⋯,m(14)(15)(16)(17)(18)(17) (17) (14) max α − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j + ∑ i = 1 m α i (15) (16) s . t . ∑ i = 1 m α i y i = 0 (17) (18) α i ≥ 0 , i = 1 , 2 , ⋯ , m

\begin{align} \max_{\boldsymbol \alpha} & \qquad - \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m\alpha_i \alpha_j y_i y_j \boldsymbol x_i^T \boldsymbol x_j + \sum_{i=1}^{m}\alpha_i \\\\ s.t. &\qquad \sum_{i=1}^m\alpha_i y_i =0 \\\\ & \qquad \alpha_i \geq 0, i=1,2, \cdots, m \end{align} \tag{17}

求得的对偶问题可以重写成

minαs.t.12∑i=1m∑j=1mαiαjyiyjxTixj−∑i=1mαi∑i=1mαiyi=0αi≥0,i=1,2,⋯,m(19)(20)(21)(22)(23)(18) (18) (19) min α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j − ∑ i = 1 m α i (20) (21) s . t . ∑ i = 1 m α i y i = 0 (22) (23) α i ≥ 0 , i = 1 , 2 , ⋯ , m

\begin{align} \min_{\boldsymbol \alpha} & \qquad \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m\alpha_i \alpha_j y_i y_j \boldsymbol x_i^T \boldsymbol x_j - \sum_{i=1}^{m}\alpha_i \\\\ s.t. &\qquad \sum_{i=1}^m\alpha_i y_i =0 \\\\ & \qquad \alpha_i \geq 0, i=1,2, \cdots, m \end{align} \tag{18}

偶优化问题(18)的最优解和原始优化问题(10)的最优解存在,且满足KKT条件:

∇ωL(ω∗,b∗,α∗)=ω∗−∑i=1mα∗iyixi=0(19) (19) ∇ ω L ( ω ∗ , b ∗ , α ∗ ) = ω ∗ − ∑ i = 1 m α i ∗ y i x i = 0

{\nabla_\boldsymbol \omega L(\boldsymbol \omega^*, b^*, \boldsymbol \alpha^*)}=\boldsymbol \omega^* -\sum_{i=1}^m\alpha_i^* y_i \boldsymbol x_i=0 \tag{19}

∇bL(ω∗,b∗,α∗)=−∑i=1mα∗iyi=0(20) (20) ∇ b L ( ω ∗ , b ∗ , α ∗ ) = − ∑ i = 1 m α i ∗ y i = 0

{\nabla_b L(\boldsymbol \omega^*, b^*, \boldsymbol \alpha^*)}=-\sum_{i=1}^m\alpha_i^* y_i =0 \tag{20}

α∗i(1−yi(ω∗Txi+b∗))=0,i=1,2,⋯,m(21) (21) α i ∗ ( 1 − y i ( ω ∗ T x i + b ∗ ) ) = 0 , i = 1 , 2 , ⋯ , m

\alpha_i^* (1-y_i({\boldsymbol \omega^*}^T \boldsymbol x_i+b^*)) = 0, i=1, 2, \cdots, m \tag{21}

1−yi(ω∗Txi+b∗)≤0,i=1,2,⋯,m(22) (22) 1 − y i ( ω ∗ T x i + b ∗ ) ≤ 0 , i = 1 , 2 , ⋯ , m

1-y_i({\boldsymbol \omega^*}^T \boldsymbol x_i+b^*) \leq 0, i=1, 2, \cdots, m \tag{22}

α∗i≥0,i=1,2,⋯,m(23) (23) α i ∗ ≥ 0 , i = 1 , 2 , ⋯ , m

\alpha_i ^*\geq 0, i=1, 2, \cdots, m \tag{23}

所以求出对偶问题(18)的最优解 α∗ α ∗ \alpha^*后,可以根据(19)得到 ω∗ ω ∗ \boldsymbol \omega ^*:

ω∗=∑i=1mα∗iyixi(24) (24) ω ∗ = ∑ i = 1 m α i ∗ y i x i

\boldsymbol \omega^* = \sum_{i=1}^m\alpha_i^* y_i \boldsymbol x_i \tag{24}

至于 b∗ b ∗ b^*,由公式(21)知道,如果 αj>0 α j > 0 \alpha_j\gt 0,那么 1−yj(ω∗Txj+b∗)=0 1 − y j ( ω ∗ T x j + b ∗ ) = 0 1-y_j({\boldsymbol \omega^*}^T \boldsymbol x_j+b^*)=0,所以

b∗=yj−ω∗Txj=yj−∑i=1mα∗iyi(xTixj)(25) (25) b ∗ = y j − ω ∗ T x j = y j − ∑ i = 1 m α i ∗ y i ( x i T x j )

b^*=y_j-{\boldsymbol \omega^*}^Tx_j=y_j-\sum_{i=1}^m\alpha_i^* y_i \boldsymbol (x_i^Tx_j) \tag {25}

至于怎么求解对偶问题(18),阅读SMO一节。

支持向量机(一)——线性可分支持向量机相关推荐

  1. 线性支持向量机、线性可分支持向量机、非线性支持向量机是怎么区分的?

    SVM(Support Vector Machine)是一种二类分类模型. 它的基本模型是定义在特征空间上的间隔最大的线性分类器. 支持向量就是最大间隔或者分割超平面上的那几个临界点,具体入下图所示: ...

  2. 支持向量机专题——线性可分支持向量机

    原文 支持向量机(support vector machine, SVM)是一种经典的分类器,其主要思想是学习一个在特征空间上使间隔最大的分类器.支持向量机的学习可以看成是一个求解凸二次规划问题的过程 ...

  3. 支持向量机之线性可分支持向量机(一)

    简介 支持向量机(support vector machines,SVM)是一种二分类分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使得它有别于感知机:支持向量机还包括核技巧 ...

  4. 统计学习方法笔记(五)-线性可分支持向量机原理及python实现

    支持向量机 支持向量机 线性可分支持向量机 最大间隔法 代码实现 案例地址 支持向量机 支持向量机(support vector machines,SVM)是一种二分类模型,它的基本类型是定义在特征空 ...

  5. 线性可分支持向量机、线性支持向量机、非线性支持向量机的区别

    线性可分支持向量机: 线性可分支持向量机处理的是严格线性可分的数据集. 其分类超平面为: 相应的决策函数为:或者 其学习的优化问题为: 线性支持向量机: 线性支持向量机处理的是线性不可分的数据集.对于 ...

  6. 支持向量机1-线性可分支持向量机

    线性可分支持向量机 一.理论基础 一.支持向量机分类 二.函数间隔与几何间隔 三.支持向量 四.线性可分支持向量机 4.1 线性可分支持向量机的优化函数 4.2 线性可分支持向量机的最优化问题求解 4 ...

  7. 支持向量机(SVM):超平面及最大间隔化、支持向量机的数学模型、软间隔与硬间隔、线性可分支持向量机、线性支持向量机、非线性支持向量机、核函数、核函数选择、SMO算法、SVM vs LR、优缺点

    支持向量机(SVM):超平面及最大间隔化.支持向量机的数学模型.软间隔与硬间隔.线性可分支持向量机.线性支持向量机.非线性支持向量机.核函数.核函数选择.SMO算法.SVM vs LR.优缺点 目录

  8. 【统计学习方法】线性可分支持向量机对鸢尾花(iris)数据集进行二分类

    本文摘要 · 理论来源:[统计学习方法]第七章 SVM · 技术支持:pandas(读csv).numpy.sklearn.svm.svm思想.matplotlib.pyplot(绘图) · 代码目的 ...

  9. 【机器学习基础】数学推导+纯Python实现机器学习算法8-9:线性可分支持向量机和线性支持向量机...

    Python机器学习算法实现 Author:louwill 前面两讲我们对感知机和神经网络进行了介绍.感知机作为一种线性分类模型,很难处理非线性问题.为了处理非线性的情况,在感知机模型的基础上有了两个 ...

  10. 支持向量机——线性可分支持向量机

    文章目录 1 线性可分支持向量机 2 函数间隔和几何间隔 3 间隔最大化 4 学习的对偶算法 GitHub 简书 CSDN 1 线性可分支持向量机 支持向量机(Support vector machi ...

最新文章

  1. 博客文章的置顶功能『博客帮助』
  2. php中cookie的用法
  3. boost::hana::fix用法的测试程序
  4. Linux下进程通信的八种方法
  5. 李开复:21世纪7种人才最抢手
  6. php解析目录函数怎么用,PHP中目录解析函数
  7. creator 静态属性_cocos creator 属性面板设置
  8. sp_MSforeachtable简介; 遍历数据库中的所有表运行命令
  9. 求求你们了,别再写满屏的 if/ else 了!
  10. 数字化转型、智能制造、工业软件及其应用案例资源列表
  11. 吴伯凡-认知方法论-矩阵式认知与苏格拉底
  12. r52500u学计算机,AMD锐龙R5 2500U性能评测 性能提升幅度让Intel八代酷睿汗颜
  13. 配置MyBatis Plus 的乐观锁功能
  14. 假设你有8个球,其中一个略微重一些,但是找出这个球的唯一方法是将两个球放在天平上对比。最少要称多少次才能找出这个较重的球?
  15. 微信小程序 申请第三方平台流程
  16. [硬件选型] 工业镜头之参数和选型
  17. 已知IP地址,如何计算其子网掩码,默认网关地址,网络地址等。
  18. svg 低面图形的变形动画
  19. 2021-09-12 Autodesk inventor 技巧整理
  20. 零基础小白,学UI设计能找到高薪工作吗?

热门文章

  1. 什么是数字化?企业如何实现数字化?
  2. 习练真气运行法必须从调整呼吸入手
  3. 仿知音漫画网站源码 PC+手机端 帝国cms7.5内核
  4. 中原银行实时风控体系建设实践
  5. 微信小程序搭建项目起步
  6. 从键盘读入一个字符串,若遇到字母,则输出0;若遇到数字则输出1;否则不输出。例如:输入ab@12c,输出00110
  7. 新浪微博密码加密分析
  8. DxO PhotoLab for Mac(照片编辑软件)
  9. 用Python画小篮子
  10. yum命令执行卡住不能退出