机器学习算法系列(五)-- 支持向量机(SVM)

news2024/11/28 2:38:24

机器学习算法系列之–支持向量机(揭开SVM的神秘面纱)

支持向量机(Support Vector Machine :SVM):二分类算法模型,数据集较小时,分类效果甚至优于神经网络。
其最大的特点在于:能够造出最大间距的决策边界,从而提高分类算法的鲁棒性。
主要用于解决模式识别领域中的数据分类问题,属于有监督学习算法的一种

一、算法概述

  • 我们希望寻找到这样的直线,使得距离这条直线最近的点到这条直线的距离最短
  • 我们从如下右图直观来解释这一句话就是要求的两条外面的线之间的间隔最大。
  • 这是可以理解的,因为假如数据样本是随机出现的,那么这样分割之后数据点落入到其类别一侧的概率越高那么最终预测的准确率也会越高。
  • 高维空间中这样的直线称之为超平面,因为当维数大于三的时候我们已经无法想象出这个平面的具体样子。
  • 那些距离这个超平面最近的点就是所谓支持向量,实际上如果确定了支持向量也就确定了这个超平面,找到这些支持向量之后其他样本就不会起作用了。

基本模型是定义在特征空间上的间隔最大的先行分类器,目标是找到一个决策边界(超平面),使得离超平面最近的点到超平面的距离越远越好。例如下图,3条线都可以将两类数据分开,如何选择“最好的”一条线,是支持向量机(SVM)算法思想的核心。

  • 超平面:如果空间是3维的,那么它的超平面是2维平面,而如果空间是2维的,则其超平面是1维线。
    在这里插入图片描述

二、算法原理

2.1、线性可分支持向量机

  • 支持向量机最简单的就是线性可分支持向量机,解决线性可分问题(能由一条线完全分为两类)。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,也称为硬间隔支持向量机,可以表示为凸二次规划问题。
  • 有些概念会提到,可能不清楚,但别急,往下看,自然就清楚了。

在这里插入图片描述

2.1.1、算法描述:

  • 给定训练样本集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) , 标签: y i ∈ D = {(x_1,y_1),(x_2,y_2),...,(x_m, y_m)} , 标签:y_i\in D=(x1,y1),(x2,y2),...,(xm,ym),标签:yi{-1, +1}
  • 假设训练样本的数据集是线性可分的。
  • 学习得到分离差超平面: w T x i + b = 0 w^Tx_i+b=0 wTxi+b=0。(一般化的向量形式)
  • 对应分类决策函数: f ( x ) = s i g n ( w T + b ) f(x)=sign(w^T+b) f(x)=sign(wT+b),其中sign( )为符号函数,
    s i g n ( x ) = { + 1 , x ≥ 0 − 1 , x ≤ 0 ; sign(x)= \begin{cases} +1, x\ge0\\ -1, x\le0 \end{cases}; sign(x)={+1,x01,x0;
    目标:“硬间隔”最大化
    注:(w,b)是带定参数,其中w是向量,b是常数; w = ( w 1 , w 2 , . . . , w n ) T w=(w_1,w_2,...,w_n)^T w=w1,w2,...,wn)T, x 1 = ( x 1 , x 2 , . . . , x n ) T x_1=(x_1,x_2,...,x_n)^T x1=x1,x2,...,xn)T
    在这里插入图片描述
(1)硬间隔、硬间隔最大化

样本空间中任意点x到超平面的距离可以写为
d = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ d=\frac{|w^Tx+b|}{||w||} d=∣∣w∣∣wTx+b
其中||W||为超平面的范数: w 2 \sqrt{w^2} w2 ,常数b类似于直线方程中的截距。

  • 二维空间中点(x, y)到直线的距离:(x,y) = ∣ A x + B y + C ∣ A 2 + B 2 \frac{|Ax+By+C|}{\sqrt{A^2+B^2}} A2+B2 Ax+By+C

  • 三维空间中点(x, y, z)到平面的距离:(x,y,z)= ∣ A x + B y + C z + D ∣ A 2 + B 2 + C 2 \frac{|Ax+By+Cz+D|}{\sqrt{A^2+B^2+C^2}} A2+B2+C2 Ax+By+Cz+D

支持向量:离超平面最近的几个训练样本点,使得 y i ( w T x i + b ) = + 1 y_i(w^Tx_i+b)=+1 yi(wTxi+b)=+1成立.
间隔:两个异类支持向量到超平面的距离和: d
硬间隔:满足所有样本都划分正确。
请添加图片描述

  • 图中 A 点即为支持向量,由其所在直线表达式可知: ∣ w T x + b ∣ = 1 |w^Tx+b|=1 wTx+b=1,

  • 最优分隔超平面由支持向量完全决定。

  • 因此,支持向量到分割超平面距离d为: 1 ∣ ∣ w ∣ ∣ + 1 ∣ ∣ w ∣ ∣ = 2 ∣ ∣ w ∣ ∣ \frac{1}{||w||}+\frac{1}{||w||}=\frac{2}{||w||} ∣∣w∣∣1+∣∣w∣∣1=∣∣w∣∣2;因此,离超平面最近的点到超平面的距离越远越好

  • 对于形状为“x”的点,必定满足 w T x + b ≥ 1 w^Tx+b\ge1 wTx+b1的约束条件;

  • 对于形状为“·”的点,必定满足 w T x + b ≤ − 1 w^Tx+b\le-1 wTx+b1的约束条件。

  • 相当于使用+1,-1当作类别标签,类似于逻辑回归中的0,1都是为了简化数学表达。

我们要求的就是距离d的最大值,于是可以转化为其等价形式:最小化 1 2 ∣ ∣ w ∣ ∣ 2 = 1 2 ∑ j = 1 n w j 2 s . t . : y i ( w x i + b ) − 1 ≥ 0 , i = 1 , 2 , . . . , N \frac{1}{2}||w||^2=\frac{1}{2}\sum_{j=1}^{n}w_j^2\\ s.t. :y_i(wx_i+b)-1\ge0,i=1,2,...,N 21∣∣w2=21j=1nwj2s.t.:yi(wxi+b)10,i=1,2,...,N其中 1 2 \frac{1}{2} 21是为了便于求导运算加上的,可简化运算。
这是一个凸二次规划问题。

(2)间隔最大化求解----拉格朗日乘子法

一般的极值优化问题的三种情况:
• 无约束条件:求导找到极值点、梯度下降: min f(x) ;
• 等式约束条件:拉格朗日乘子法、消元法转化问题
m i n f ( x ) , h ( x ) = 0. minf(x),\\h(x)=0. minf(x),h(x)=0.
• 不等式约束条件:拉格朗日乘子法 + KKT条件
m i n f ( x ) , g ( x ) ≤ 0 h ( x ) = 0. minf(x),\\g(x)\le0\\h(x)=0. minf(x),g(x)0h(x)=0.该约束最优化问题也就是凸优化问题。
其中 目标函数 f ( x ) 和约束函数 g ( x ) 目标函数f(x)和约束函数g(x) 目标函数f(x)和约束函数g(x)都是连续可微凸函数,约束函数 h ( x ) h(x) h(x)是仿射函数。

当目标函数是二次函数,且约束函数g(x)是仿射函数时,上述凸最优化问题成为凸二次规划问题。

约束最优化问题中,常常利用拉格朗日对偶性将原始问题转换为对偶问题,通过对对偶问题求解得到原问题的解:

  • 第一步:利用拉格朗日乘子法,得到原问题的对偶问题;
  • 第二步:再利用KKT条件,解得最优参数w,b。

二次规划的对偶问题
优点,是对偶问题往往更容易求解,二,自然引入核函数,进而推广到非线性分类问题

  • 首先将目标函数与约束条件构建成拉格朗日函数。为此,对每一个不等式约束引入拉格朗日乘子α。
    在这里插入图片描述
    根据拉格朗日的对偶性,原始问题极小极大问题转变为对偶问题极大极小问题在这里插入图片描述
  • 将拉格朗日函数 L ( w , b , α ) L(w,b,\alpha) L(w,b,α) 分别对w, b, α求偏导并令其为0(会涉及矩阵求导)。
    在这里插入图片描述
    得到:
    在这里插入图片描述
  • 将结果带入拉格朗日函数中,消去w,b:
    在这里插入图片描述
  • m i n w , b L ( w , b , α ) 对 α min_{w,b}L(w,b,\alpha)对\alpha minw,bL(w,b,α)α的极大,即得到对偶问题:
    在这里插入图片描述
    将其转化为求最小之后,便得到:

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 s . t . : ∑ i = 1 N α i y i = 0 , ( α i ≥ 0 , i = 1 , 2 , . . . , N ) min \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i\\ s.t.:\sum_{i=1}^N\alpha_iy_i=0, (\alpha_i\ge0,i=1,2,...,N) min21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t.:i=1Nαiyi=0,(αi0,i=1,2,...,N)
其中, α = ( α 1 , . . . , α N ) \alpha=(\alpha_1,...,\alpha_N) α=α1,...,αN是拉格朗日乘子向量。
通常,通过求解对偶问题学习线性可分支持向量机,即首先求解对偶问题的最优值 α ∗ \alpha^* α,然后求最优值 w ∗ w^* w b ∗ b^* b,得出分隔超平面和分类决策函数。

KKT条件要求

由上可得,设 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α m ∗ \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_m^* α=(α1,α2,...,αm是对偶问题的最优解,则存在下标j,使得0< α j ∗ \alpha_j^* αj<C,使得原始问题的最优参数 w ∗ , b ∗ w^*,b^* w,b为:
在这里插入图片描述

2.1.2算法流程总结

  • 输入:线性可分训练集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) , 标签: y i ∈ D = {(x_1,y_1),(x_2,y_2),...,(x_m, y_m)} , 标签:y_i\in D=(x1,y1),(x2,y2),...,(xm,ym),标签:yi{-1, +1}
  • 输出:分离超平面和分类决策函数
    ①、构造并求解带约束的最优化问题:
    在这里插入图片描述
    求得最优解(对偶问题的解) α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*) α=(α1,α2,...,αN)
    ②、计算: w ∗ = ∑ i = 1 N α i ∗ y i x i w^*=\sum_{i=1}^N\alpha_i^*y_ix_i w=i=1Nαiyixi
    并选择 α ∗ \alpha^* α的一个正分量 α j ∗ \alpha_j^* αj>0,计算 b ∗ = y j − ∑ i = 1 N α i ∗ y i x i T x j b^*=y_j-\sum_{i=1}^N\alpha_i^*y_ix_i^Tx_j b=yji=1NαiyixiTxj
    ③、由此求得分离超平面: w ∗ x + b ∗ = 0 w^*x+b^*=0 wx+b=0;以及分类决策函数: f ( x ) = s i g n ( w ∗ x + b ∗ ) f(x) = sign(w^*x+b^*) f(x)=sign(wx+b)

注:

  • 只要D线性可分,那就一定可以求出一个(w,b),存在且唯一存在;若线性不可分,则无法求出。
  • 一句话总结:求解SVM算法,就是在约束条件 y i ( w T x + b ) ≥ 1 y_i(w^Tx+b)\ge1 yi(wTx+b)1的前提下,求解 ∣ ∣ w ∣ ∣ 2 的最小值 ||w||^2的最小值 ∣∣w2的最小值
  • 在决定超平面时只有支持向量起作用,其他样本点并不起作用,所以这种分类模型称为支持向量机
  • 向量的个数一般很少,所以支持向量机是由“重要的”少量的训练样本确定的

2.2、线性支持向量机

2.2.1算法描述

前面的讨论中,我们一直假定训练样本在样本空间中是线性可分的,即存在一个超平面能将不同类的样本完全划分开,也就是硬间隔。然而现实任务中往往不太可能;

因此,我们引入软间隔,允许支持向量机在某些样本上出错。这样的线性支持向量机也成为软间隔支持向量机
硬间隔:所有样本都必须划分正确
软间隔:允许一些样本出错,也就是允许一些样本不满足 y i ( w T + b ) ≥ 1 y_i(w^T+b)\ge1 yi(wT+b)1
松弛系数:为了解决无法找到最大间距的分割超平面问题,引入了一个参数 ε \varepsilon ε,称为松弛系数

此时,为确保在最大化间隔,同时误分类点尽量少。对每个松弛标量付出一定的代价,所以目标优化函数变为
m i n w , b , ε i 1 2 ∣ ∣ w ∣ ∣ 2 + R ∑ i = 1 m ε i min_{w,b,\varepsilon_i} \frac{1}{2}||w||^2+R\sum_{i=1}^m\varepsilon_i minw,b,εi21∣∣w2+Ri=1mεi
其中m为数据集的个数,R为算法参数,其对应的约束条件(s.t.)也变成:
y i ( w T x + b ) ≥ 1 − ε i ε i ≥ 0 y_i(w^Tx+b)\ge1-\varepsilon_i\\ \varepsilon_i\ge0 yi(wTx+b)1εiεi0
如何理解松弛系数?我们可以把 ε i \varepsilon_i εi理解为样本数据违反最大间距规则的程度,对于正常样本,即满足约束条件 ε \varepsilon ε=0;而对于部分违反最大间距规则的样本 ε \varepsilon ε>0。
参数R则为惩罚参数,R值大,对误分类的惩罚增大,反之减小(以一定的步伐变化,找出最好的那个)。

可以看出,引入松弛系数类似于逻辑回归里成本函数引入正则项,目的都是为了纠正过拟合问题,让支持向量机对噪声数据有更强的适应性。

求参数也是采用拉格朗日乘子法,和上述方法步骤相同(仅多了一个惩罚因子),算法流程也基本相同。

对偶问题

  • 根据目标优化函数,通过拉格朗日乘子法得到拉格朗日函数:
    在这里插入图片描述
  • 分别对参数求偏导并令其为0:
    在这里插入图片描述
  • 将结果带入,得到对偶问题:
    在这里插入图片描述
    等价于:
    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 s . t . : ∑ i = 1 N α i y i = 0 , ( 0 ≤ α i ≤ C , i = 1 , 2 , . . . , N ) min \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i\\ s.t.:\sum_{i=1}^N\alpha_iy_i=0, \\ (0\le\alpha_i\le C,i=1,2,...,N) min21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t.:i=1Nαiyi=0,(0αiC,i=1,2,...,N)

2.2.2算法流程总结

  • 输入:线性可分训练集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) , 标签: y i ∈ D = {(x_1,y_1),(x_2,y_2),...,(x_m, y_m)} , 标签:y_i\in D=(x1,y1),(x2,y2),...,(xm,ym),标签:yi{-1, +1}
  • 输出:分离超平面和分类决策函数

①、构造并求解带约束的最优化问题:
在这里插入图片描述

求得最优解(对偶问题的解) α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*) α=(α1,α2,...,αN)
②、计算: w ∗ = ∑ i = 1 N α i ∗ y i x i w^*=\sum_{i=1}^N\alpha_i^*y_ix_i w=i=1Nαiyixi
并选择 α ∗ \alpha^* α的一个正分量 0 < α j ∗ 0<\alpha_j^* 0<αj<C,计算 b ∗ = y j − ∑ i = 1 N α i ∗ y i x i T x j b^*=y_j-\sum_{i=1}^N\alpha_i^*y_ix_i^Tx_j b=yji=1NαiyixiTxj
③、由此求得分离超平面: w ∗ x + b ∗ = 0 w^*x+b^*=0 wx+b=0;以及分类决策函数: f ( x ) = s i g n ( w ∗ x + b ∗ ) f(x) = sign(w^*x+b^*) f(x)=sign(wx+b)
注:此处的解 w ∗ 唯一,但 b ∗ 不一定 w^*唯一,但b^*不一定 w唯一,但b不一定

2.3、非线性支持向量机与核函数

在现实任务中,原始的样本空间可能并不存在一个能正确划分两类样本的超平面,因此,需要利用非线性模型才能很好地进行分类。这时可以使用非线性支持向量机,主要特点就是利用核技巧(kernel trick)
在这里插入图片描述

2.3.1、核技巧

非线性问题往往不好求解,所以我们希望能用解线性分类问题的方法来解决该问题。所以需要采取非线性变换,将非线性问题转变为线性问题,进而求解原来非线性问题。核技巧就属于这样的方法:

  • 高维映射:首先使用一个变换将原空间的数据映射到新空间(更高的维度);定义从原样本空间到新空间的变换(映射)函数为 φ ( x ) \varphi(x) φ(x)
  • 然后在新空间里用线性分类学习方法从训练数据中学习分类模型

注: φ ( x ) \varphi(x) φ(x)是无限维。
也就是将样本映射到一个更高维度的特征空间中,使得其线性可分。如:
在这里插入图片描述
如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分;且维度越高,越容易被线性划分
在这里插入图片描述
φ ( x ) \varphi(x) φ(x)为将x映射后的特征向量,于是在新的特征空间中划分超平面可以表示为
f ( x ) = w T φ ( x ) + b f(x)=w^T\varphi(x)+b f(x)=wTφ(x)+b
使用软间隔最大化,目标函数为:
m i n w , b , ε 1 2 ∣ ∣ w ∣ ∣ 2 + R ∑ i = 1 m ε i s . t . ( 约束条件 ) : { y i ( w T φ ( x i ) + b ) ≥ 1 − ε i , 此处将 x i 替换为了 φ ( x i ) ε i ≥ 0 , i = 1 , 2 , . . . , m min_{w,b,\varepsilon} \frac{1}{2}||w||^2+R\sum_{i=1}^m\varepsilon_i\\ s.t.(约束条件):\begin{cases} y_i(w^T\varphi(x_i)+b)\ge1-\varepsilon_i, 此处将x_i替换为了\varphi(x_i)\\ \varepsilon_i\ge0, i = 1,2,...,m \end{cases} minw,b,ε21∣∣w2+Ri=1mεis.t.(约束条件):{yi(wTφ(xi)+b)1εi,此处将xi替换为了φ(xi)εi0,i=1,2,...,m

其中w,b是模型参数,类似有: m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 min_{w,b} \frac{1}{2}||w||^2 minw,b21∣∣w2

对偶问题
在这里插入图片描述
由于特征维数可能很高,直接计算 ϕ ( x i ) T ϕ ( x j ) \phi(x_i)^T\phi(x_j) ϕ(xi)Tϕ(xj)通常会很困难,因此引入了核函数。于是,我们将对偶问题重写

在这里插入图片描述

核函数带入之后进行求解,可得分类决策函数为:
在这里插入图片描述

2.3.2、核函数

定义:设 χ \chi χ是输入空间, ψ \psi ψ为特征空间,如果存在一个从 χ \chi χ ψ \psi ψ的映射: ϕ ( x ) \phi(x) ϕ(x),使得对所有的 x , z ∈ χ x,z\in\chi x,zχ,函数 K ( x , z ) K(x,z) K(x,z)满足条件
K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) K(x,z)=\phi(x)\cdot\phi(z) K(x,z)=ϕ(x)ϕ(z)
则称K(x, z)为核函数(二者的内积), ϕ ( x ) \phi(x) ϕ(x)为映射函数。

  • 我们不需要知道无限维映射函数 ϕ ( x ) \phi(x) ϕ(x)的显示表达,我们只需要知道一个核函数(kernel function)K(x,z)= ϕ ( x ) T ϕ ( z ) \phi(x)^T\phi(z) ϕ(x)Tϕ(z)(两个无限维向量的内积),替换掉软间隔限制条件中的 x i 或者 φ ( x i ) x_i或者\varphi(x_i) xi或者φ(xi),则对应的优化式仍然是可解的。
  • :K(x,z)能写成 ϕ ( x ) T ϕ ( z ) \phi(x)^T\phi(z) ϕ(x)Tϕ(z)充要条件如下(Mercer’s Theorem),
    ① 交换性:K(x,z)= K(z, x)
    ② 半正定性: ∀ C i , X i ( i = 1 , 2 , . . . , N ) , 有 ∑ i = 1 N ∑ j = 1 N C i C j K ( X i , X j ) ≥ 0 \forall C_i,X_i(i=1,2,...,N),有 \sum_{i=1}^N\sum_{j=1}^NC_iC_jK(X_i, X_j) \ge0 Ci,Xi(i=1,2,...,N),i=1Nj=1NCiCjK(Xi,Xj)0

  • 在实际应用中往往依赖领域知识直接选择核函数,核函数的选择成为支持向量机最大的变数,模型的有效性需要通过实验验证。

常用的核函数:
  • 线性核Linear
    K ( x i , x j ) = x i T x j K(x_i,x_j)=x_i^Tx_j K(xi,xj)=xiTxj
    两向量的内积,相当于没有用核。

  • 多项式核Ploy(常用)
    K ( x i , x j ) = ( x i T x j ) d K(x_i,x_j)=(x_i^Tx_j)^d K(xi,xj)=(xiTxj)d
    其中d大于等于1,为多项式的次数;
    d值越大,维度越高。
    当d=1时,退化为线性核。

  • 高斯核Rbf(常用)
    K ( x i , x j ) = e − ∣ ∣ x i − x j ∣ ∣ 2 2 σ 2 K(x_i,x_j)=e^{-\frac{||x_i-x_j||^2}{2\sigma^2}} K(xi,xj)=e2σ2∣∣xixj2
    其中 σ \sigma σ为高斯核的带宽(width);
    例如,如果我们输入的特征是一维的标量,高斯核函数对应的形状是一个反钟形的曲线,该参数就是控制其宽度的。
    该核对应的 ϕ ( x ) \phi(x) ϕ(x)是无限维的:函数可以将输入特征映射到无限多维。公式的推导会用到泰勒公式。

  • 拉普拉斯核
    K ( x i , x j ) = e − ∣ ∣ x i − x j ∣ ∣ σ K(x_i,x_j)=e^{-\frac{||x_i-x_j||}{\sigma}} K(xi,xj)=eσ∣∣xixj∣∣
    其中 σ > 0 \sigma>0 σ>0

  • sigmoid核(常用)
    K ( x i , x j ) = t a n h ( β x T + b ) K(x_i,x_j)=tanh(\beta x^T+b) K(xi,xj)=tanh(βxT+b)
    其中tanh为双曲正切函数: t a n h ( x ) = e x − e − x e x + e − x , β > 0 , b < 0 tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}, \beta>0, b<0 tanh(x)=ex+exexex,β>0,b<0

PS: 情况不明时可先尝试高斯核

2.3.3算法流程总结

  • 输入:训练集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) , 标签: y i ∈ D = {(x_1,y_1),(x_2,y_2),...,(x_m, y_m)} , 标签:y_i\in D=(x1,y1),(x2,y2),...,(xm,ym),标签:yi{-1, +1}
  • 输出:分离超平面和分类决策函数

①、构造并求解带约束的最优化问题:
在这里插入图片描述

求得最优解(对偶问题的解) α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*) α=(α1,α2,...,αN)
②、计算: w ∗ = ∑ i = 1 N α i ∗ y i K ( x i , x j ) w^*=\sum_{i=1}^N\alpha_i^*y_iK(x_i,x_j) w=i=1NαiyiK(xi,xj)
并选择 α ∗ \alpha^* α的一个正分量 0 < α j ∗ 0<\alpha_j^* 0<αj<C,计算 b ∗ = y j − ∑ i = 1 N α i ∗ y i x i T K ( x i , x j ) b^*=y_j-\sum_{i=1}^N\alpha_i^*y_ix_i^TK(x_i,x_j) b=yji=1NαiyixiTK(xi,xj)
③、由此求得分离超平面: w ∗ x + b ∗ = 0 w^*x+b^*=0 wx+b=0;以及分类决策函数: f ( x ) = s i g n ( w ∗ x + b ∗ ) f(x) = sign(w^*x+b^*) f(x)=sign(wx+b)

三、SVM算法总结

在这里插入图片描述
优点
• 使用核函数可以向高维空间进行映射,解决非线性的分类
• 分类思想很简单:将样本与决策面的间隔最大化;
• 分类效果较好,计算开销不大;
• SVM 是一种有坚实理论基础的小样本学习方法
缺点
• 对缺失数据敏感,对参数调节和核函数的选择敏感;
• 对大规模数据训练比较困难
对偶问题以及KKT条件

  • 对偶问题就是使求解更加高效且目标函数值不变,通过先消去w,b,得到关于α的函数,然后单独计算 α,通过得到的α反求w,b,最后获得超平面的参数
  • 相比于先对α的不等式约束进行计算,对偶的方式使得计算更加便捷。
  • 另外KKT条件就是在约束下求得目标函数极值时αi满足的条件,只有满足了kkt条件,才算是满足了目标函数和约束函数,因此下面描述的计算迭代算法也是基于KKT条件,通过不断修改不满足KKT条件的α,使其满足KKT条件,从而求出目标函数的最优值。

四、序列最小最优化算法(SMO算法)

当训练样本容量很大时,很多实现算法往往变得非常低效,以至于无法使用。
SMO是一种启发式算法,基本思路是:

  • 如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了。(KKT条件是该最优化问题的充分必要条件)
  • 否则,选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题。(这个二次规划问题,关于这两个变量的解应该更接近原始二次规划问题的解,因为这会使得原始二次规划问题的目标函数值变得更小,这样就可以大大提高整个算法的计算速度,)
  • 子问题有两个变量,一个是违反KKT条件最严重的那一个,另一个由约束条件自动确定

如此SMO算法将原问题不断分解为子问题,并对子问题求解,直至全都满足KKT条件为止,进而达到求解原问题的目的

整个SMO算法包括两个部分:求解两个变量二次规划的解析方法,和选择变量的启发式方法

详细推导过程可参考:SVM支持向量机-SMO算法公式推导(2)

伪代码

  • 输入:训练数据集 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) , 标签: y i ∈ T = {(x_1,y_1),(x_2,y_2),...,(x_m, y_m)} , 标签:y_i\in T=(x1,y1),(x2,y2),...,(xm,ym),标签:yi{-1, +1},i=1,2,…,N,精度 ε \varepsilon ε;
  • 输出近似解 α \alpha α估计值。
    (1) 取初值 α ( 0 ) \alpha^{(0)} α(0),令k=0;
    (2)选取优化变量 α 1 ( k ) \alpha_1^{(k)} α1(k), α 2 ( k ) \alpha_2^{(k)} α2(k),解析求解两个变量的最优化问题,求得最优解 α 1 ( k + 1 ) \alpha_1^{(k+1)} α1(k+1) α 2 ( k + 1 ) \alpha_2^{(k+1)} α2(k+1),更新 α \alpha α α ( k + 1 ) \alpha^{(k+1)} α(k+1)
    (3)若在精度 ε \varepsilon ε范围内满足停机条件,则转(4);否则令k=k+1,转(2);
    (4)取 α \alpha α估计值= α ( k + 1 ) \alpha^{(k+1)} α(k+1)

SMO算法是支持向量机学习的一种快速算法,其特点是不断地将原二次规划问题分解为只有两个变量的二次规划子问题,并对子问题进行解析求解,知道所有变量满足KKT条件为止。这样通过启发式的方法得到原二次规划问题的最优解。因为子问题有解析解,所以每次计算子问题都很快,虽然计算子问题次数很多,但在总体上还是高效的。

四、算法实战

SVM支持向量机算法实战(SMO)可参考该博客:《机器学习实战》第六章 Python3代码-(亲自修改测试可成功运行)

以上就是关于决策树的分享,若有不妥之处,欢迎各路大佬不吝赐教~

参考:
《统计学习方法》,李航, 清华大学出版社,第二版
《机器学习》,周志华,清华大学出版社
https://blog.csdn.net/BIT_666/article/details/79865225

喜欢的伙伴点个赞关注一下吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/474658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ muduo日志库的使用

muduo日志库的使用 一、引用二、使用方法2.1、引入头文件2.2、 启动日志库2.3、记录日志2.4、输出格式2.5、日志滚动 三、总结 一、引用 muduo是一个高性能的网络库&#xff0c;它的日志库采用了异步、多线程的方式来记录日志&#xff0c;其主要特点包括&#xff1a; 能够按大…

使用Pano2VR实现全景图切换和平面图效果

内容简介 本文在文章《使用Pano2VR实现背景音乐、放大/缩小、旋转、缩略图和直线/立体/鱼眼模式等》基础上&#xff0c;增加全景图切换和平面图效果&#xff1b;效果如下图&#xff08;为了可以上传缩小屏幕&#xff0c;属于PC端运行&#xff09;&#xff1a; 实现过程 1. 运行…

【Bus】编写一个Demo虚拟的总线-设备-驱动模型

文章目录 1. 前言2. 总线驱动模型三要素2.1 总线2.2 设备2.3 驱动 3. Demo Code3.1 virt_bus_core.c3.2 virt_device.c3.3 virt_driver.c 4. 工程代码下载地址5. 参考资料 1. 前言 Linux平台为了驱动的可重用性&#xff0c;虚拟了很多的虚拟总线。很经典的就是platform总线&am…

Android Room数据库如何使用增删改查

先看运行效果图。 1.在app下的build.gradle。在dependencies{}闭包中添加如下依赖 //roomdef room_version "2.3.0"implementation "androidx.room:room-runtime:$room_version"annotationProcessor "androidx.room:room-compiler:$room_version&q…

爱奇艺DRM修炼之路

01 DRM的定义和作用 DRM&#xff0c;即数字版权管理&#xff08;digital rights management&#xff09;&#xff0c;是在数字内容交易过程中&#xff0c;对知识产权进行保护的技术、工具和处理过程。它的目的是防止数字内容被未经授权的用户复制、修改和分发&#xff0c;以保护…

解读TaskMatrix.AI

ChatGPT在广泛的开放域任务上展现出令人瞩目的强大对话、上下文学习和代码生成能力&#xff0c;而且它所获得的常识知识还可以为特定领域的任务生成高级解决方案概要。不过&#xff0c;除了更强大的学习、理解和生成能力&#xff0c;ChatGPT还有哪些问题需要解决呢&#xff1f;…

《利用光体积描记图信号的模糊递推特性估计无袖带血压的级联卷积神经网络模型》阅读笔记

目录 一、论文摘要 二、论文十问 Q1&#xff1a;论文试图解决什么问题&#xff1f; Q2&#xff1a;这是否是一个新的问题&#xff1f; Q3&#xff1a;这篇文章要验证一个什么科学假设&#xff1f; Q4&#xff1a;有哪些相关研究&#xff1f;如何归类&#xff1f;谁是这一…

城市的智能进化,汇成数字中国的璀璨银河

著名城市规划理论家刘易斯芒福德在《城市发展史——起源、演变和前景》中提出&#xff0c;“城市从其起源时代开始便是一种特殊的构造&#xff0c;它专门用来储存并流传人类文明的成果。这种构造致密而紧凑&#xff0c;足以用最小的空间容纳更多的设施。” 他认为&#xff0c;城…

我们如何将 Amazon Snowcone 送入轨道

我从 4 或 5 岁起就一直是太空旅行和美国太空计划的粉丝。我记得读过关于水星和双子星座计划的文章&#xff0c;兴奋地看着鹰号登月舱降落在月球上。 如今&#xff0c;随着每次发射到达近地轨道 (LEO) 的成本似乎都在不断下降&#xff0c;因此有比以往任何时候都要更多的机会&…

建设元宇宙基础设施——PPIO边缘云在云渲染/云游戏的思考和实践

关于“元宇宙”的讨论越发火热&#xff0c;而建设元宇宙不可避免需要布设基础设施&#xff0c;LiveVideoStackCon 2022 北京站邀请到PPIO边缘云联合创始人——王闻宇&#xff0c;同大家探讨元宇宙网络时延的最优解–边缘云基础设施的架构与建设&#xff0c;并介绍PPIO边缘云在泛…

Kafka Broker是如何基于Reactor模式来处理海量用户请求的?

介绍 https://kafka.apache.org/0110/documentation.html 参数名描述默认值queued.max.requestsbroker全局唯一的请求队列&#xff0c;用来保存请求500num.io.threads用来处理请求的线程数8 参考博客 [1]

Python环境设置

在了解Python语言的历史和介绍之后&#xff0c;要想开始学习Python语言&#xff0c;还需要在计算机中安装Python编译环境&#xff0c;本期就来聊聊怎么在计算机中安装Python环境。 在计算机中添加Python环境的几种选择&#xff1a; 直接安装Python程序&#xff0c;即Python官…

Spring Boot配置文件

日升时奋斗&#xff0c;日落时自省 目录 1、配置文件作用 2、配置文件格式 2.1、使用注意 3、properties配置文件 3.1、注释中文问题 3.2、properties语法格式 3.3、读取配置文件 3.3.1、Value读取 3.3.2、PropertySource读取 3.3.3、原生方式读取配置文件 3.4、pr…

C++-FFmpeg-1-VS2019-x264-fdk_aac-x265-pdb-QT5.14-makefile

1.环境搭建&#xff1a; 1.1VS2019 用的是控制台编译。 1.2.msys2 模拟linux的命令和指令。 2.源码编译与安装&#xff1a; 2.1.x264: ffmpeg :编码用X264 2.2x265: ffmpeg :编码用X265 c写的。msys2编译。 2.3.fdk-aac 音频编码。 2.4 ffmpeg源码4.3: 2.5.SDL2.0 视频渲…

ESP8266_RTOS_SDK之SPIFFS

需要在ESP8266的FLASH中存储一些可变参数&#xff0c;有两种方式&#xff0c;一种是调用SPI Flash API直接指定地址读写FLASH&#xff1b;二是在SPI FLASH上创建一块SPIFFS 分区&#xff0c;以读写文件的形式存取数据。 下面记录第二种方式&#xff0c;使用SPIFFS文件系统存取…

干货 | Elasticsearch 8.X 性能优化实战

Elasticsearch 是实现用户无缝搜索体验的关键工具。它通过提供快速、准确和相关的搜索结果&#xff0c;彻底改变了用户与应用程序的互动方式。然而&#xff0c;要确保 Elasticsearch 部署达到最佳性能&#xff0c;就必须关注关键指标&#xff0c;并对诸如索引、缓存、查询、搜索…

【计算机图形学】课堂习题汇总

在直线的光栅化算法中&#xff0c;如果不考虑最大位移方向则可能得到怎样的直线&#xff1f; A&#xff1a;斜率为1的线 B&#xff1a;总是垂直的 C&#xff1a;离散的点&#xff0c;无法构成直线 D&#xff1a;总是水平的 在直线的改进的Bresenham算法中&#xff0c;每当误…

Qt音视频开发42-网络推流(视频推流/本地摄像头推流/桌面推流/网络摄像头转发推流等)

一、前言 上次实现的文件推流&#xff0c;尽管优点很多&#xff0c;但是只能对现在存在的生成好的音视频文件推流&#xff0c;而现在更多的场景是需要将实时的视频流重新推流分发&#xff0c;用户在很多设备比如手机/平板/网页/电脑/服务器上观看&#xff0c;这样就可以很方便…

IP-GUARD如何通过流量控制策略限制客户端下载文件?

如何通过流量控制策略限制客户端下载文件? 可通过流量控制策略限制接收流量上限速度,实现控制客户端下载文件效果。流量控制支持网络地址和端口范围限制。 网络流量统计能否基于用户进行统计? 目前最新的客户端版本已经支持控制应用程序的网络流量,在应用层实现了控制…

专利进阶(二):专利撰写常用技术及算法汇总(持续更新中)

文章目录 一、前言二、常用技术及算法2.1 区跨链技术2.2 聚类算法2.3 边缘算法2.4 蚁群算法2.4.1 路径构建2.4.2 信息素更新 2.5 哈希算法2.5.1 常见算法 2.6 数字摘要2.72.82.92.10 三、拓展阅读 一、前言 专利撰写过程中使用已有技术或算法解决新问题非常常见&#xff0c;本…