1、概念

支持向量机(support vector machines,SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器;同时,支持向量机包括的核技巧使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。

假设给定一个特征空间上的训练数据集
T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1​,y1​),(x2​,y2​),...,(xN​,yN​)}
其中, xi∈χ=Rnx_i\in\chi=R^nxi​∈χ=Rn,yi∈Υ={+1,−1}y_i\in\Upsilon=\{+1,-1\}yi​∈Υ={+1,−1},i=1,2,...Ni=1,2,...Ni=1,2,...N,xix_ixi​为第 iii个特征向量,也称为实例,yiy_iyi​为xix_ixi​的类标记,当 yi=+1y_i=+1yi​=+1时,称xix_ixi​为正例;当 yi=−1y_i=-1yi​=−1时,称xix_ixi​为负例,(xi,yi)(x_i,y_i)(xi​,yi​)称为样本点。

2、线性可分支持向量机

给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为
ω∗⋅x+b∗=0\omega^*\cdot x+b^*=0ω∗⋅x+b∗=0
以及相应的分类决策函数
f(x)=sign(ω∗⋅x+b∗)f(x)=sign(\omega^*\cdot x+b^*)f(x)=sign(ω∗⋅x+b∗)
称为线性可分支持向量机。

2.1、函数间隔和几何间隔
(1)(函数间隔) 对于给定的训练数据集 TTT 和超平面 (w,b)(w,b)(w,b) ,定义超平面 (w,b)(w,b)(w,b) 关于样本点 (xi,yi)(x_i,y_i)(xi​,yi​) 的函数间隔为
γi^=yi(w⋅xi+b)\hat{\gamma_i}=y_i(w\cdot x_i+b)γi​^​=yi​(w⋅xi​+b)
定义超平面 (w,b)(w,b)(w,b) 关于训练数据集 TTT 的函数间隔为超平面(w,b)(w,b)(w,b)关于TTT中所有样本点(xi,yi)(x_i,y_i)(xi​,yi​)的函数间隔之最小值,即
γ^=mini=1,...Nγi^\hat{\gamma}=\underset{i=1,...N}{min} \hat{\gamma_i}γ^​=i=1,...Nmin​γi​^​
函数间隔可以表示分类预测的正确性及确信度。但是选择分离超平面时,只有函数间隔还不够。因为只要成比例地改变 www和bbb,例如将它们改为 2w2w2w和2b2b2b,超平面并没有改变,但函数间隔却成为原来的2倍。这一事实启示我们,可以对分离超平面的法向量 www加某些约束,如规范化,∣∣ω∣∣=1||\omega||= 1∣∣ω∣∣=1,使得间隔是确定的。这时函数间隔成为几何间隔。

(2)(几何间隔) 对于给定的训练数据集TTT和超平面 (w,b)(w,b)(w,b),定义超平面 (w,b)(w,b)(w,b)关于样本点(xi,yi)(x_i,y_i)(xi​,yi​)的几何间隔为
γi=yi(ω∣∣ω∣∣⋅xi+b∣∣ω∣∣)\gamma_i=y_i(\frac{\omega}{||\omega||}\cdot x_i + \frac{b}{||\omega||})γi​=yi​(∣∣ω∣∣ω​⋅xi​+∣∣ω∣∣b​)
定义超平面(w,b)(w,b)(w,b)关于训练数据集TTT的几何间隔为超平面(w,b)(w,b)(w,b)关于TTT中所有样本点(xi,yi)(x_i,y_i)(xi​,yi​)的几何间隔之最小值,即
γ=mini=1,...Nγi{\gamma}=\underset{i=1,...N}{min} {\gamma_i}γ=i=1,...Nmin​γi​
2.2、间隔最大化
下面考虑如何求得一个几何间隔最大的分离超平面,即最大间隔分离超平面。具体地,这个问题可以表示为下面的约束最优化问题:
maxω,bγ\underset{\omega,b}{max}\ \gammaω,bmax​ γ
s.t.yi(ω∣∣ω∣∣⋅xi+b∣∣ω∣∣)≥γ,i=1,2,...,Ns.t.\qquad y_i(\frac{\omega}{||\omega||}\cdot x_i + \frac{b}{||\omega||})\geq\gamma,\quad i=1,2,...,Ns.t.yi​(∣∣ω∣∣ω​⋅xi​+∣∣ω∣∣b​)≥γ,i=1,2,...,N
考虑几何间隔和函数间隔的关系,可将这个问题改写为
maxω,bγ^∣∣ω∣∣\underset{\omega,b}{max} \quad \frac{\hat{\gamma}}{||\omega||}ω,bmax​∣∣ω∣∣γ^​​
s.t.yi(w⋅xi+b)≥γ^,i=1,2,...,Ns.t. \qquad y_i(w\cdot x_i+b)\geq\hat{\gamma}, \quad i=1,2,...,Ns.t.yi​(w⋅xi​+b)≥γ^​,i=1,2,...,N
函数间隔γ^\hat{\gamma}γ^​的取值并不影响最优化问题的解。事实上,假设将www和 bbb按比例改变为λw\lambda wλw和 λb\lambda bλb,这时函数间隔成为 λγ^\lambda \hat{\gamma}λγ^​。函数间隔的这一改变对上面最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,这样,就取γ^=1\hat{\gamma}=1γ^​=1,将 γ^=1\hat{\gamma}=1γ^​=1代入上面的最优化问题,注意到最大化1∣∣ω∣∣\frac{1}{||\omega||}∣∣ω∣∣1​和最小化 12∣∣ω∣∣2\frac{1}{2}{||\omega||}^221​∣∣ω∣∣2是等价的,于是引出线性可分支持向量机学习算法。

2.3、线性可分支持向量机学习算法——最大间隔法
输入:线性可分训练数据集分类决策函数T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1​,y1​),(x2​,y2​),...,(xN​,yN​)},其中,xi∈χ=Rnx_i\in\chi=R^nxi​∈χ=Rn,yi∈Υ={+1,−1}y_i\in\Upsilon=\{+1,-1\}yi​∈Υ={+1,−1},i=1,2,...Ni=1,2,...Ni=1,2,...N
输出:最大间隔分离超平面和分类决策函数。
(1)构造并求解约束最优化问题:
maxω,b12∣∣ω∣∣2\underset{\omega,b}{max} \quad \frac{1}{2}{||\omega||}^2ω,bmax​21​∣∣ω∣∣2
s.t.yi(w⋅xi+b)−1≥0,i=1,2,...,Ns.t. \qquad y_i(w\cdot x_i+b)-1\geq 0 ,\quad i=1,2,...,Ns.t.yi​(w⋅xi​+b)−1≥0,i=1,2,...,N
求得最优解:w∗w^*w∗, b∗b^*b∗。
(2)由此得到分离超平面:
ω∗⋅x+b∗=0\omega^*\cdot x+b^*=0ω∗⋅x+b∗=0
分类决策函数
f(x)=sign(ω∗⋅x+b∗)f(x)=sign(\omega^*\cdot x+b^*)f(x)=sign(ω∗⋅x+b∗)

3、学习的对偶算法

为了求解上述线性可分支持向量机的最优化问题,将它作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,这就是线性可分支持向量机的对偶算法(dual algorithm)。
这样做的优点,一是对偶问题往往更容易求解;二是自然引入核函数,进而推广到非线性分类问题。

3.1、拉格朗日函数
假设f(x)f(x)f(x), ci(x)c_i(x)ci​(x), hj(x)h_j(x)hj​(x)是定义在RnR^nRn上的连续可微函数。考虑约束最优化问题
minx∈Rnf(x)\underset{x\in R^n}{min} \quad f(x)x∈Rnmin​f(x)
s.t.ci(x)≤0,i=1,2,...,ks.t. \qquad c_i(x)\leq 0, \quad i=1,2,...,ks.t.ci​(x)≤0,i=1,2,...,k
hj(x)=0,j=1,2,...,l\qquad h_j(x)=0 ,j=1,2,...,lhj​(x)=0,j=1,2,...,l
称此约束最优化问题为原始最优化问题或原始问题。引进广义拉格朗日函数:
L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)L(x,\alpha,\beta)=f(x)+\sum_{i=1}^{k} \alpha_i c_i(x)+\sum_{j=1}^{l}\beta_j h_j(x)L(x,α,β)=f(x)+i=1∑k​αi​ci​(x)+j=1∑l​βj​hj​(x)
这里,x=(x(1),x(2),…,x(n))T∈Rnx=(x^{(1)},x^{(2)},…,x^{(n)})^T\in R^nx=(x(1),x(2),…,x(n))T∈Rn, αi\alpha_iαi​,βj\beta_jβj​是拉格朗日乘子,αi≥0\alpha_i≥0αi​≥0。

3.2、求解线性可分支持向量机的最优化问题(对偶算法)
对每一个不等式约束yi(w⋅xi+b)−1≥0y_i(w\cdot x_i+b)-1\geq 0yi​(w⋅xi​+b)−1≥0引进拉格朗日乘子αi≥0\alpha_i\geq 0αi​≥0,i=1,2,...,Ni=1,2,...,Ni=1,2,...,N,定义拉格朗日函数:
L(ω,b,α)=12∣∣ω∣∣2+∑i=1Nαi(1−yi(w⋅xi+b))L(\omega,b,\alpha)=\frac{1}{2}{||\omega||}^2+\sum_{i=1}^{N}\alpha_i (1-y_i(w\cdot x_i+b))L(ω,b,α)=21​∣∣ω∣∣2+i=1∑N​αi​(1−yi​(w⋅xi​+b))
其中,α=(α1,α2,...,αN)T\alpha=(\alpha_1,\alpha_2,...,\alpha_N)^Tα=(α1​,α2​,...,αN​)T为拉格朗日乘子向量。

根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
所以,为了得到对偶问题的解,需要先求 L(ω,b,α)L(\omega,b,\alpha)L(ω,b,α)对ω,b\omega,bω,b的极小,再求对α\alphaα的极大。
(1)求minω,bL(ω,b,α)\underset{\omega,b}{min} L(\omega,b,\alpha)ω,bmin​L(ω,b,α)
将拉格朗日函数L(ω,b,α)L(\omega,b,\alpha)L(ω,b,α)分别对ω,b\omega,bω,b求偏导数并令其等于0。
∇ωL(ω,b,α)=ω−∑i=1Nαiyixi=0\nabla_{\omega}{L(\omega,b,\alpha)}=\omega-\sum_{i=1}^{N} \alpha_i y_i x_i=0∇ω​L(ω,b,α)=ω−i=1∑N​αi​yi​xi​=0
∇bL(ω,b,α)=∑i=1Nαiyi=0\nabla_{b}{L(\omega,b,\alpha)}=\sum_{i=1}^{N} \alpha_iy_i=0∇b​L(ω,b,α)=i=1∑N​αi​yi​=0

ω=∑i=1Nαiyixi\omega=\sum_{i=1}^{N}\alpha_i y_i x_iω=i=1∑N​αi​yi​xi​
∑i=1Nαiyi=0\sum_{i=1}^{N}\alpha_i y_i=0i=1∑N​αi​yi​=0
代入拉格朗日函数,即得
minω,bL(ω,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi\underset{\omega,b}{min} L(\omega,b,\alpha)=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha_i\alpha_j y_i y_j (x_i\cdot x_j) +\sum_{i=1}^{N}\alpha_iω,bmin​L(ω,b,α)=−21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)+i=1∑N​αi​
(2)求minω,bL(ω,b,α)\underset{\omega,b}{min} L(\omega,b,\alpha)ω,bmin​L(ω,b,α)对α\alphaα的极大值,即是对偶问题
maxα−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi\underset{\alpha}{max} \ -\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha_i\alpha_j y_i y_j (x_i\cdot x_j) +\sum_{i=1}^{N}\alpha_iαmax​ −21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)+i=1∑N​αi​
s.t.∑i=1Nαiyi=0s.t. \qquad \sum_{i=1}^{N}\alpha_i y_i=0s.t.i=1∑N​αi​yi​=0
αi≥0,i=1,2,...,N\qquad \alpha_i\geq0,i=1,2,...,Nαi​≥0,i=1,2,...,N
将上述目标函数由求极大转换成求极小,就得到下面与之等价的对偶最优化问题:
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi\underset{\alpha}{min} \quad \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha_i\alpha_j y_i y_j (x_i\cdot x_j) -\sum_{i=1}^{N}\alpha_iαmin​21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)−i=1∑N​αi​
s.t.∑i=1Nαiyi=0s.t. \qquad \sum_{i=1}^{N}\alpha_i y_i=0s.t.i=1∑N​αi​yi​=0
αi≥0,i=1,2,...,N\qquad \alpha_i\geq0,i=1,2,...,Nαi​≥0,i=1,2,...,N
3.3、优化问题满足KKT条件
对线性可分训练数据集,假设对偶最优化问题对α\alphaα的解为α∗=(α1∗,α2∗,...,αN∗)T\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^Tα∗=(α1∗​,α2∗​,...,αN∗​)T,可以由α∗\alpha^*α∗求得原始最优化问题对(ω∗,b∗)(\omega^*,b^*)(ω∗,b∗)的解ω∗\omega^*ω∗ , b∗b^*b∗ 。
KKT条件如下:
∇ωL(ω∗,b∗,α∗)=ω∗−∑i=1Nαi∗yixi=0\nabla_{\omega}{L(\omega^*,b^*,\alpha^*)}=\omega^*-\sum_{i=1}^{N} \alpha_i^* y_i x_i=0∇ω​L(ω∗,b∗,α∗)=ω∗−i=1∑N​αi∗​yi​xi​=0
∇bL(ω∗,b∗,α∗)=∑i=1Nαi∗yi=0\nabla_{b}{L(\omega^*,b^*,\alpha^*)}=\sum_{i=1}^{N} \alpha_i^* y_i=0∇b​L(ω∗,b∗,α∗)=i=1∑N​αi∗​yi​=0
αi∗(yi(ω∗⋅xi+b∗)−1)=0,i=1,2,...,N\alpha_i^*(y_i(\omega^*\cdot x_i+b^*)-1)=0,i=1,2,...,Nαi∗​(yi​(ω∗⋅xi​+b∗)−1)=0,i=1,2,...,N
yi(ω∗⋅xi+b∗)−1≥0,i=1,2,...,Ny_i(\omega^*\cdot x_i+b^*)-1\geq 0,i=1,2,...,Nyi​(ω∗⋅xi​+b∗)−1≥0,i=1,2,...,N
αi∗≥0\alpha_i^*\geq 0αi∗​≥0
由此得
ω∗=∑i=1Nαi∗yixi\omega^*=\sum_{i=1}^{N}\alpha_i^* y_i x_iω∗=i=1∑N​αi∗​yi​xi​
其中至少有一个α∗>0\alpha^*>0α∗>0,对此jjj有
yj(ω∗⋅xj+b∗)−1=0y_j(\omega^*\cdot x_j+b^*)-1=0yj​(ω∗⋅xj​+b∗)−1=0
又yj2=1y_j^2=1yj2​=1,即得
b∗=yj−∑i=1Nαi∗yi(xi⋅xj)b^*=y_j-\sum_{i=1}^{N}\alpha_i^* y_i(x_i\cdot x_j)b∗=yj​−i=1∑N​αi∗​yi​(xi​⋅xj​)
3.4、线性可分支持向量机学习算法
输入:线性可分训练数据集分类决策函数T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1​,y1​),(x2​,y2​),...,(xN​,yN​)},其中,xi∈χ=Rnx_i\in\chi=R^nxi​∈χ=Rn,yi∈Υ={+1,−1}y_i\in\Upsilon=\{+1,-1\}yi​∈Υ={+1,−1},i=1,2,...Ni=1,2,...Ni=1,2,...N
输出:最大间隔分离超平面和分类决策函数。
(1)构造并求解约束最优化问题:
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi\underset{\alpha}{min} \quad \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha_i\alpha_j y_i y_j (x_i\cdot x_j) -\sum_{i=1}^{N}\alpha_iαmin​21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)−i=1∑N​αi​
s.t.∑i=1Nαiyi=0s.t. \quad \sum_{i=1}^{N}\alpha_i y_i=0s.t.i=1∑N​αi​yi​=0
αi≥0,i=1,2,...,N\alpha_i\geq0,i=1,2,...,Nαi​≥0,i=1,2,...,N
求得最优解α∗=(α1∗,α2∗,...,αN∗)T\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^Tα∗=(α1∗​,α2∗​,...,αN∗​)T
(2)计算
ω∗=∑i=1Nαi∗yixi\omega^*=\sum_{i=1}^{N}\alpha_i^* y_i x_iω∗=i=1∑N​αi∗​yi​xi​
并选择α∗\alpha^*α∗的一个正分量 αj∗>0\alpha_j^*>0αj∗​>0,计算
b∗=yj−∑i=1Nαi∗yi(xi⋅xj)b^*=y_j-\sum_{i=1}^{N}\alpha_i^* y_i(x_i\cdot x_j)b∗=yj​−i=1∑N​αi∗​yi​(xi​⋅xj​)
(3)求得分离超平面
ω∗⋅x+b∗=0\omega^*\cdot x+b^*=0ω∗⋅x+b∗=0
分类决策函数:
f(x)=sign(ω∗⋅x+b∗)f(x)=sign(\omega^*\cdot x+b^*)f(x)=sign(ω∗⋅x+b∗)

<机器学习>支持向量机(SVM)理论相关推荐

  1. 【机器学习】SVM理论与python实践系列

    理论部分: <机器学习--支持向量机SVM之线性模型> <机器学习--支持向量机SVM之非线性模型低维到高维映射> <机器学习--支持向量机SVM之非线性模型原问题与对偶 ...

  2. 影像组学视频学习笔记(11)-支持向量机(SVM)(理论)、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(11)主要介绍: SVM支持向量机(理论) 支持向量机 (support vector machine, SVM) 号称是鲁棒性(rob ...

  3. 机器学习——支持向量机SVM之非线性模型(原问题和对偶问题)

    目录 一.原问题(prime problem) 二.原问题的对偶问题(dual problem) 1.定义一个辅助函数 2.定义对偶问题 >>>问题1:上面说到遍历w,那w的取值范围 ...

  4. 机器学习——支持向量机SVM之非线性模型(低维到高维映射)

    目录 一.非线性模型的最优化问题 1.非线性模型最优化模型 2.两个概念 1)正则项(regularization term) 2)调参参数 2.高维映射 1)定义及作用 2)高维映射后的最优化模型 ...

  5. 机器学习——支持向量机SVM之线性模型

    目录 一.没有免费的午餐定理 二.支持向量机SVM(support vector machine) 1.线性模型和非线性模型 2.如何在线性模型中画出一条直线(优化过程--vplink) 1)多少条? ...

  6. 机器学习-支持向量机SVM算法

    文章目录 简介 原理 硬间隔 支持向量 对偶问题 软间隔 核函数 SMO算法 小结 多分类问题 回归问题 应用示例 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点 ...

  7. Python 西瓜书机器学习支持向量机(SVM)

    %matplotlib inline #为了在notebook中画图展示 import numpy as np import matplotlib.pyplot as plt from scipy i ...

  8. 机器学习——支持向量机SVM实例(兵王问题,SVM求解步骤以及思路,不求解不编程)

    目录 一.问题描述(兵王问题) 二.步骤 1.获得数据 2.样本划分(训练样本和测试样本) 3.训练样本得到SVM模型 ​ 1)数据处理 2)训练样本和测试样本归一化 3)选择核函数和调参 4)明确任 ...

  9. 机器学习——支持向量机SVM之非线性模型(原问题转化为对偶问题)

    目录 一.复习(原问题.对偶问题.KKT条件.凸函数) 二.将最优化问题标准化为原问题(严格转化为标准形式) 1.原最优化问题 2.标准化后的问题 三.转化为对偶问题(注意变量的对应关系) 四.对对偶 ...

最新文章

  1. RxJava中常见的几种Subject
  2. php运行条件,PHP配置环境要求 php运行的先决条件
  3. 冯提莫在B站的受欢迎度
  4. GitHub 6600星,面向中国人:微软AI教育与学习共建社区2.0登场!
  5. nio java是什么_Java NIO 的前生今世 之一 简介
  6. python解析html的库_python解析html开发库pyquery使用方法
  7. 13家电脑品牌来源大揭底
  8. 【游戏开发指路】Unity学习路线,三万字大纲(面试题大纲 | 知识图谱 | Unity游戏开发工程师)
  9. python中的各类除法总结
  10. 阿里云盾技术强在哪里?轻松防御DDoS、CC攻击 1
  11. 打造淘宝极简包的轻量化框架
  12. 老毛桃安装Linux系统ISO镜像,用U盘快速安装Ubuntu的方法
  13. 2022年 最新Java面试题汇总,看完这些面试足够了
  14. MySQL数据库实操教程(20)——视图
  15. cmdb自动发现mysql_干货 | EasyOps 的CMDB主机自动发现方案
  16. Blender插件天空地形山水自然环境生成器 TerrainScapes V2.0
  17. 利用Smart3D(CC)进行物体建模
  18. 信息爆炸时代的知识获取
  19. doubango编译过程中遇到的:Cannot open include file: 'com/sun/star/beans/XPropertySet.hpp
  20. 三阶矩阵的特征值一般求解

热门文章

  1. 5G NR - RLC协议阅读笔记 - 从LTE到NR的变化
  2. 历经一个月拿下<Linux鸟哥的私房菜>(基础篇)
  3. 人工智能基础——全局搜索方法
  4. zabbix Trapper 监控项配置
  5. 数据结构与算法笔记:哈希表——力扣389
  6. 为 Kubernetes 提供 CI/CD 服务 Jenkins X
  7. ArrayList 集合底层实现原理解析
  8. kivy中on_press,on_release事件用代码设置函数的问题
  9. 密码学速查笔记(一)-- 分组对称加密
  10. 前端HTML5+CSS3学习笔记