机器学习 | 支持向量机SVM

支持向量机(Support Vector Machine,SVM)

支持向量机是一种用于二分类和回归分析的监督学习模型。它的目标是找到一个超平面,将数据集分割成两个类别,同时最大化分类边界(间隔)的宽度。SVM在高维空间中表现良好,对于线性和非线性数据都具有很强的泛化能力。

线性SVM

对于二分类问题,我们考虑线性可分的情况,即存在一个超平面可以完全分隔两个类别的样本。即存在 w ⋅ x + b = 0 \mathbf{w} \cdot \mathbf{x} + b = 0 wx+b=0将特征空间划分为两个部分。其中, w \mathbf{w} w 是法向量(权重), b b b 是偏置(截距),我们可以定义决策函数:

f ( x ) = sign ( w ⋅ x + b ) f(\mathbf{x}) = \text{sign}(\mathbf{w} \cdot \mathbf{x} + b) f(x)=sign(wx+b)

其中, sign ( ⋅ ) \text{sign}(\cdot) sign() 是符号函数,如果 w ⋅ x + b > 0 \mathbf{w} \cdot \mathbf{x} + b > 0 wx+b>0,则 f ( x ) = 1 f(\mathbf{x}) = 1 f(x)=1,否则 f ( x ) = − 1 f(\mathbf{x}) = -1 f(x)=1

间隔margin

对于给定的超平面 w ⋅ x + b = 0 \mathbf{w} \cdot \mathbf{x} + b = 0 wx+b=0,样本点 x i \mathbf{x}_i xi 到超平面的距离可以表示为:

r i = ∣ w ⋅ x i + b ∣ ∥ w ∥ r_i = \frac{\left|\mathbf{w} \cdot \mathbf{x}_i + b\right|}{\|\mathbf{w}\|} ri=wwxi+b

其中, ∥ w ∥ \|\mathbf{w}\| w 是权重向量的模。

优化问题

在这里插入图片描述

SVM的目标是找到一个最大间隔的超平面。最大化间隔等价于最小化 ∥ w ∥ \|\mathbf{w}\| w,同时满足分类约束:

y i ( w ⋅ x i + b ) ≥ 1 对于所有的 i y_i(\mathbf{w} \cdot \mathbf{x}_i + b) \geq 1 \quad \text{对于所有的} i yi(wxi+b)1对于所有的i

其中, y i y_i yi 是样本 x i \mathbf{x}_i xi 的类别标签(+1 或 -1)。为了找到最大间隔超平面,我们可以建立如下的凸二次规划问题:

min  1 2 ∥ w ∥ 2  , s.t. y i ( w ⋅ x i + b ) ≥ 1   \begin{aligned} \text{min } \frac{1}{2}\|\mathbf{w}\|^2 \text{ , s.t.} y_i(\mathbf{w} \cdot \mathbf{x}_i + b) \geq 1 \ \end{aligned} min 21w2 , s.t.yi(wxi+b)1 

通过拉格朗日乘子法,我们可以得到拉格朗日函数:

L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 N α i [ y i ( w ⋅ x i + b ) − 1 ] L(\mathbf{w}, b, \boldsymbol{\alpha}) = \frac{1}{2}\|\mathbf{w}\|^2 - \sum_{i=1}^{N} \alpha_i \left[ y_i(\mathbf{w} \cdot \mathbf{x}_i + b) - 1 \right] L(w,b,α)=21w2i=1Nαi[yi(wxi+b)1]

其中, α = ( α 1 , α 2 , … , α N ) \boldsymbol{\alpha} = (\alpha_1, \alpha_2, \ldots, \alpha_N) α=(α1,α2,,αN) 是拉格朗日乘子向量, N N N 是样本数。通过对 L ( w , b , α ) L(\mathbf{w}, b, \boldsymbol{\alpha}) L(w,b,α)分别对 w \mathbf{w} w b b b求偏导并令其等于零,可以得到最优解:

w = ∑ i = 1 N α i y i x i 0 = ∑ i = 1 N α i y i \begin{aligned} \mathbf{w} & = \sum_{i=1}^{N} \alpha_i y_i \mathbf{x}_i \\ 0 & = \sum_{i=1}^{N} \alpha_i y_i \end{aligned} w0=i=1Nαiyixi=i=1Nαiyi

代入原始问题,得到对偶问题:

max ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j , s.t.  α i ≥ 0 \begin{aligned} \text{max} \sum_{i=1}^{N} \alpha_i - \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j \mathbf{x}_i \cdot \mathbf{x}_j \text{, s.t. } \alpha_i \geq 0 \end{aligned} maxi=1Nαi21i=1Nj=1Nαiαjyiyjxixj, s.t. αi0

且满足约束条件 ∑ i = 1 N α i y i = 0 \sum_{i=1}^{N} \alpha_i y_i = 0 i=1Nαiyi=0,通过求解对偶问题,我们可以得到最优的 α \boldsymbol{\alpha} α,然后可以计算 w \mathbf{w} w b b b,最终得到最大间隔超平面。

非线性SVM与核函数

当数据不是线性可分的时候,我们需要使用非线性SVM。非线性SVM通过引入核函数来将特征空间映射到一个高维空间,从而使得在高维空间中的数据线性可分。常用的核函数包括线性核、多项式核和径向基函数(RBF)核。

核函数引入

对于一个输入特征 x \mathbf{x} x,我们将其映射到高维空间中的特征空间 ϕ ( x ) \phi(\mathbf{x}) ϕ(x)。然后,我们可以在高维空间中使用线性SVM找到一个超平面,将映射后的数据分隔开。

决策函数

在高维空间中,决策函数可以表示为:

f ( x ) = sign ( w ⋅ ϕ ( x ) + b ) f(\mathbf{x}) = \text{sign}(\mathbf{w} \cdot \phi(\mathbf{x}) + b) f(x)=sign(wϕ(x)+b)

优化问题

对于非线性SVM,我们的优化问题变为:
max ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) , s.t.  α i ≥ 0 \begin{aligned} \text{max} \sum_{i=1}^{N} \alpha_i - \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j K(\mathbf{x}_i, \mathbf{x}_j) \text{, s.t. } \alpha_i \geq 0 \end{aligned} maxi=1Nαi21i=1Nj=1NαiαjyiyjK(xi,xj), s.t. αi0

并且满足约束条件 ∑ i = 1 N α i y i = 0 \sum_{i=1}^{N} \alpha_i y_i = 0 i=1Nαiyi=0,其中, K ( x i , x j ) = ϕ ( x i ) ⋅ ϕ ( x j ) K(\mathbf{x}_i, \mathbf{x}_j) = \phi(\mathbf{x}_i) \cdot \phi(\mathbf{x}_j) K(xi,xj)=ϕ(xi)ϕ(xj)是核函数,它直接计算在特征空间中的内积。

常用核函数

  • 线性核函数 K ( x i , x j ) = x i ⋅ x j K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i \cdot \mathbf{x}_j K(xi,xj)=xixj

  • 多项式核函数 d d d 是多项式的次数): K ( x i , x j ) = ( x i ⋅ x j + 1 ) d K(\mathbf{x}_i, \mathbf{x}_j) = (\mathbf{x}_i \cdot \mathbf{x}_j + 1)^d K(xi,xj)=(xixj+1)d

  • 径向基函数(RBF)核函数 σ \sigma σ是一个控制函数宽度的参数): K ( x i , x j ) = exp ⁡ ( − ∥ x i − x j ∥ 2 2 σ 2 ) K(\mathbf{x}_i, \mathbf{x}_j) = \exp\left(-\frac{\|\mathbf{x}_i - \mathbf{x}_j\|^2}{2\sigma^2}\right) K(xi,xj)=exp(2σ2xixj2)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值