IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> <机器学习>支持向量机(SVM)理论 -> 正文阅读

[数据结构与算法]<机器学习>支持向量机(SVM)理论

1、概念

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

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

2、线性可分支持向量机

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

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

(2)(几何间隔) 对于给定的训练数据集 T T T和超平面 ( w , b ) (w,b) (w,b),定义超平面 ( w , b ) (w,b) (w,b)关于样本点 ( x i , y i ) (x_i,y_i) (xi?,yi?)的几何间隔为
γ i = y i ( ω ∣ ∣ ω ∣ ∣ ? x i + b ∣ ∣ ω ∣ ∣ ) \gamma_i=y_i(\frac{\omega}{||\omega||}\cdot x_i + \frac{b}{||\omega||}) γi?=yi?(ωω??xi?+ωb?)
定义超平面 ( w , b ) (w,b) (w,b)关于训练数据集 T T T的几何间隔为超平面 ( w , b ) (w,b) (w,b)关于 T T T中所有样本点 ( x i , y i ) (x_i,y_i) (xi?,yi?)的几何间隔之最小值,即
γ = m i n i = 1 , . . . N γ i {\gamma}=\underset{i=1,...N}{min} {\gamma_i} γ=i=1,...Nmin?γi?
2.2、间隔最大化
下面考虑如何求得一个几何间隔最大的分离超平面,即最大间隔分离超平面。具体地,这个问题可以表示为下面的约束最优化问题:
m a x ω , b ? γ \underset{\omega,b}{max}\ \gamma ω,bmax??γ
s . t . y i ( ω ∣ ∣ ω ∣ ∣ ? x i + b ∣ ∣ ω ∣ ∣ ) ≥ γ , i = 1 , 2 , . . . , N s.t.\qquad y_i(\frac{\omega}{||\omega||}\cdot x_i + \frac{b}{||\omega||})\geq\gamma,\quad i=1,2,...,N s.t.yi?(ωω??xi?+ωb?)γ,i=1,2,...,N
考虑几何间隔和函数间隔的关系,可将这个问题改写为
m a x ω , b γ ^ ∣ ∣ ω ∣ ∣ \underset{\omega,b}{max} \quad \frac{\hat{\gamma}}{||\omega||} ω,bmax?ωγ^??
s . t . y i ( w ? x i + b ) ≥ γ ^ , i = 1 , 2 , . . . , N s.t. \qquad y_i(w\cdot x_i+b)\geq\hat{\gamma}, \quad i=1,2,...,N s.t.yi?(w?xi?+b)γ^?,i=1,2,...,N
函数间隔 γ ^ \hat{\gamma} γ^?的取值并不影响最优化问题的解。事实上,假设将 w w w b b b按比例改变为 λ 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?和最小化 1 2 ∣ ∣ ω ∣ ∣ 2 \frac{1}{2}{||\omega||}^2 21?ω2是等价的,于是引出线性可分支持向量机学习算法。

2.3、线性可分支持向量机学习算法——最大间隔法
输入:线性可分训练数据集分类决策函数 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1?,y1?),(x2?,y2?),...,(xN?,yN?)},其中, x i ∈ χ = R n x_i\in\chi=R^n xi?χ=Rn y i ∈ Υ = { + 1 , ? 1 } y_i\in\Upsilon=\{+1,-1\} yi?Υ={+1,?1} i = 1 , 2 , . . . N i=1,2,...N i=1,2,...N
输出:最大间隔分离超平面和分类决策函数。
(1)构造并求解约束最优化问题:
m a x ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 \underset{\omega,b}{max} \quad \frac{1}{2}{||\omega||}^2 ω,bmax?21?ω2
s . t . y i ( w ? x i + b ) ? 1 ≥ 0 , i = 1 , 2 , . . . , N s.t. \qquad y_i(w\cdot x_i+b)-1\geq 0 ,\quad i=1,2,...,N s.t.yi?(w?xi?+b)?10i=1,2,...,N
求得最优解: w ? w^* w?, b ? b^* b?
(2)由此得到分离超平面:
ω ? ? x + b ? = 0 \omega^*\cdot x+b^*=0 ω??x+b?=0
分类决策函数
f ( x ) = s i g n ( ω ? ? 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), c i ( x ) c_i(x) ci?(x), h j ( x ) h_j(x) hj?(x)是定义在 R n R^n Rn上的连续可微函数。考虑约束最优化问题
m i n x ∈ R n f ( x ) \underset{x\in R^n}{min} \quad f(x) xRnmin?f(x)
s . t . c i ( x ) ≤ 0 , i = 1 , 2 , . . . , k s.t. \qquad c_i(x)\leq 0, \quad i=1,2,...,k s.t.ci?(x)0i=1,2,...,k
h j ( x ) = 0 , j = 1 , 2 , . . . , l \qquad h_j(x)=0 ,j=1,2,...,l hj?(x)=0j=1,2,...,l
称此约束最优化问题为原始最优化问题或原始问题。引进广义拉格朗日函数:
L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( 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=1k?αi?ci?(x)+j=1l?βj?hj?(x)
这里, x = ( x ( 1 ) , x ( 2 ) , … , x ( n ) ) T ∈ R n x=(x^{(1)},x^{(2)},…,x^{(n)})^T\in R^n x(x(1),x(2),,x(n))TRn, α i \alpha_i αi?, β j \beta_j βj?是拉格朗日乘子, α i ≥ 0 \alpha_i≥0 αi?0

3.2、求解线性可分支持向量机的最优化问题(对偶算法)
对每一个不等式约束 y i ( w ? x i + b ) ? 1 ≥ 0 y_i(w\cdot x_i+b)-1\geq 0 yi?(w?xi?+b)?10引进拉格朗日乘子 α i ≥ 0 \alpha_i\geq 0 αi?0 i = 1 , 2 , . . . , N i=1,2,...,N i=1,2,...,N,定义拉格朗日函数:
L ( ω , b , α ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + ∑ i = 1 N α i ( 1 ? y i ( w ? x i + 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=1N?α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)求 m i n ω , b L ( ω , 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 = 1 N α i y i x i = 0 \nabla_{\omega}{L(\omega,b,\alpha)}=\omega-\sum_{i=1}^{N} \alpha_i y_i x_i=0 ?ω?L(ω,b,α)=ω?i=1N?αi?yi?xi?=0
? b L ( ω , b , α ) = ∑ i = 1 N α i y i = 0 \nabla_{b}{L(\omega,b,\alpha)}=\sum_{i=1}^{N} \alpha_iy_i=0 ?b?L(ω,b,α)=i=1N?αi?yi?=0

ω = ∑ i = 1 N α i y i x i \omega=\sum_{i=1}^{N}\alpha_i y_i x_i ω=i=1N?αi?yi?xi?
∑ i = 1 N α i y i = 0 \sum_{i=1}^{N}\alpha_i y_i=0 i=1N?αi?yi?=0
代入拉格朗日函数,即得
m i n ω , b L ( ω , b , α ) = ? 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ? x j ) + ∑ i = 1 N α 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=1N?j=1N?αi?αj?yi?yj?(xi??xj?)+i=1N?αi?
(2)求 m i n ω , b L ( ω , b , α ) \underset{\omega,b}{min} L(\omega,b,\alpha) ω,bmin?L(ω,b,α) α \alpha α的极大值,即是对偶问题
m a x α ? ? 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ? x j ) + ∑ i = 1 N α 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=1N?j=1N?αi?αj?yi?yj?(xi??xj?)+i=1N?αi?
s . t . ∑ i = 1 N α i y i = 0 s.t. \qquad \sum_{i=1}^{N}\alpha_i y_i=0 s.t.i=1N?αi?yi?=0
α i ≥ 0 , i = 1 , 2 , . . . , N \qquad \alpha_i\geq0,i=1,2,...,N αi?0i=1,2,...,N
将上述目标函数由求极大转换成求极小,就得到下面与之等价的对偶最优化问题:
m i n α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ? x j ) ? ∑ i = 1 N α 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=1N?j=1N?αi?αj?yi?yj?(xi??xj?)?i=1N?αi?
s . t . ∑ i = 1 N α i y i = 0 s.t. \qquad \sum_{i=1}^{N}\alpha_i y_i=0 s.t.i=1N?αi?yi?=0
α i ≥ 0 , i = 1 , 2 , . . . , N \qquad \alpha_i\geq0,i=1,2,...,N αi?0i=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 = 1 N α i ? y i x i = 0 \nabla_{\omega}{L(\omega^*,b^*,\alpha^*)}=\omega^*-\sum_{i=1}^{N} \alpha_i^* y_i x_i=0 ?ω?L(ω?,b?,α?)=ω??i=1N?αi??yi?xi?=0
? b L ( ω ? , b ? , α ? ) = ∑ i = 1 N α i ? y i = 0 \nabla_{b}{L(\omega^*,b^*,\alpha^*)}=\sum_{i=1}^{N} \alpha_i^* y_i=0 ?b?L(ω?,b?,α?)=i=1N?αi??yi?=0
α i ? ( y i ( ω ? ? x i + 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)=0i=1,2,...,N
y i ( ω ? ? x i + b ? ) ? 1 ≥ 0 , i = 1 , 2 , . . . , N y_i(\omega^*\cdot x_i+b^*)-1\geq 0,i=1,2,...,N yi?(ω??xi?+b?)?10i=1,2,...,N
α i ? ≥ 0 \alpha_i^*\geq 0 αi??0
由此得
ω ? = ∑ i = 1 N α i ? y i x i \omega^*=\sum_{i=1}^{N}\alpha_i^* y_i x_i ω?=i=1N?αi??yi?xi?
其中至少有一个 α ? > 0 \alpha^*>0 α?>0,对此 j j j
y j ( ω ? ? x j + b ? ) ? 1 = 0 y_j(\omega^*\cdot x_j+b^*)-1=0 yj?(ω??xj?+b?)?1=0
y j 2 = 1 y_j^2=1 yj2?=1,即得
b ? = y j ? ∑ i = 1 N α i ? y i ( x i ? x j ) b^*=y_j-\sum_{i=1}^{N}\alpha_i^* y_i(x_i\cdot x_j) b?=yj??i=1N?αi??yi?(xi??xj?)
3.4、线性可分支持向量机学习算法
输入:线性可分训练数据集分类决策函数 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1?,y1?),(x2?,y2?),...,(xN?,yN?)},其中, x i ∈ χ = R n x_i\in\chi=R^n xi?χ=Rn y i ∈ Υ = { + 1 , ? 1 } y_i\in\Upsilon=\{+1,-1\} yi?Υ={+1,?1} i = 1 , 2 , . . . N i=1,2,...N i=1,2,...N
输出:最大间隔分离超平面和分类决策函数。
(1)构造并求解约束最优化问题:
m i n α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ? x j ) ? ∑ i = 1 N α 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=1N?j=1N?αi?αj?yi?yj?(xi??xj?)?i=1N?αi?
s . t . ∑ i = 1 N α i y i = 0 s.t. \quad \sum_{i=1}^{N}\alpha_i y_i=0 s.t.i=1N?αi?yi?=0
α i ≥ 0 , i = 1 , 2 , . . . , N \alpha_i\geq0,i=1,2,...,N αi?0i=1,2,...,N
求得最优解 α ? = ( α 1 ? , α 2 ? , . . . , α N ? ) T \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T α?=(α1??,α2??,...,αN??)T
(2)计算
ω ? = ∑ i = 1 N α i ? y i x i \omega^*=\sum_{i=1}^{N}\alpha_i^* y_i x_i ω?=i=1N?αi??yi?xi?
并选择 α ? \alpha^* α?的一个正分量 α j ? > 0 \alpha_j^*>0 αj??>0,计算
b ? = y j ? ∑ i = 1 N α i ? y i ( x i ? x j ) b^*=y_j-\sum_{i=1}^{N}\alpha_i^* y_i(x_i\cdot x_j) b?=yj??i=1N?αi??yi?(xi??xj?)
(3)求得分离超平面
ω ? ? x + b ? = 0 \omega^*\cdot x+b^*=0 ω??x+b?=0
分类决策函数:
f ( x ) = s i g n ( ω ? ? x + b ? ) f(x)=sign(\omega^*\cdot x+b^*) f(x)=sign(ω??x+b?)

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-08-27 12:07:09  更:2021-08-27 12:08:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 8:14:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计