SVM的简单理解

  对于经典的SVM以及核函数等概念,总是感觉有点陌生,平常都是直接调用现成的第三方库,没有深究其原理, 但该学还是得学,不学不行啊

问题:

  给定训练样本集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) D={(\pmb{x_1},y_1),(\pmb{x_2},y_2),...,(\pmb{x_n},y_n)} D=(x1x1x1,y1),(x2x2x2,y2),...,(xnxnxn,yn),其中 y i ∈ { − 1 , + 1 } y_i \in \{-1,+1\} yi{1,+1}(这里为什么是-1而不是0,主要是为了推出后面的公式)。在此假定样本集线性可分,即能在样本空间中找到一个超平面( x \pmb{x} xxx为二维时,该划分平面为直线; x \pmb{x} xxx三维时为平面),将不同类别的样本分开。如下图所示, x \pmb{x} xxx为二维向量,此时应该找到一条位于两类训练样本正中间的直线 A x 1 + B x 2 + C = 0 Ax_1+Bx_2+C=0 Ax1+Bx2+C=0,比较理想的即红色的那条
在这里插入图片描述
在样本空间中,划分超平面为
ω T x + b = 0 \pmb{\omega}^T\pmb{x} +b=0 ωωωTxxx+b=0
其中法向量 ω T = { ω 1 , ω 2 , . . . , ω n } \pmb{\omega}^T=\{\omega_1,\omega_2,...,\omega_n\} ωωωT={ω1,ω2,...,ωn}决定超平面的方向; b b b为位移项,决定了原点到超平面的距离。类似于点到平面的距离,对于样本空间中的任意点 x \pmb{x} xxx到该超平面的距离为
r = ∣ ω T x + b ∣ ∣ ∣ ω ∣ ∣ r=\frac{|\pmb{\omega}^T\pmb{x}+b|}{||\pmb{\omega}||} r=ωωωωωωTxxx+b
对于 y i = − 1 y_i=-1 yi=1,有 ω T x i + b < 0 \pmb{\omega}^T\pmb{x_i} +b<0 ωωωTxixixi+b<0;对于 y i = 1 y_i=1 yi=1,有 ω T x i + b > 0 \pmb{\omega}^T\pmb{x_i} +b>0 ωωωTxixixi+b>0。当线性可分时,存在 ω , b \pmb{\omega},b ωωωb使得下面成立
{ ω T x i + b ≥ + 1 , y i = 1 ω T x i + b ≤ − 1 , y i = − 1. \begin{cases} \pmb{\omega}^T\pmb{x_i} +b\geq+1,y_i=1\\ \pmb{\omega}^T\pmb{x_i} +b\leq-1,y_i=-1. \end{cases} {ωωωTxixixi+b+1yi=1ωωωTxixixi+b1yi=1.
使得上面两个不等式中的等号成立的点被称作支持向量(可以理解为不同类别的样本向量撑起了这个超平面),且两个不同类别的支持向量到超平面的距离之和如下,且被称为间隔
γ = 2 ∣ ∣ ω ∣ ∣ \gamma=\frac{2}{||\pmb{\omega}||} γ=ωωω2
找最优的划分超平面即寻找 ω , b \pmb{\omega},b ωωωb使得间隔 γ \gamma γ最大,等价于最小化 ∣ ∣ ω ∣ ∣ ||\pmb{\omega}|| ωωω。因此,原问题可以转化为一个凸二次规划问题,具体可以使用凸优化技术,比如拉格朗日数乘数法等进行求解:
arg min ⁡ ⁡ ω ,   b 1 2 ∣ ∣ ω ∣ ∣ s . t . y i ( ω T x i + b ) ≥ 1 , i = 1 , 2 , . . . , n \underset{\omega,\ b}{\operatorname{\argmin}} \quad \frac{1}{2}||\pmb{\omega}|| \\ s.t. \quad y_i(\pmb{\omega}^T\pmb{x_i} +b)\geq1,i=1,2,...,n ω, bargmin21ωωωs.t.yi(ωωωTxixixi+b)1,i=1,2,...,n
在这里插入图片描述

核函数

  上文所说的都是基于训练样本线性可分的前提下,而当样本线性不可分时,此时在原样本空间无法找到一个超平面能将样本正确de划分开来(比如下图的“异或”问题)。
在这里插入图片描述
对于这样的问题,可以将原始空间映射到一个更加高维的空间,原本在低维空间不可分的样本在更加高维的空间线性可分。例如下图,将“异或”问题对应的原始二维空间映射到一个合适的三维空间,就能找到一个合适的超平面。而且有,如果原始空间是有限维,即特征数量有限,则一定存在更加高维的空间使得样本可分。
在这里插入图片描述
ϕ ( x ) \phi(x) ϕ(x)表示一种非线性映射关系,表示将原来的 x x x映射到更高维的特征空间,在新的特征空间划分超平面所对应的模型变为
f ( x ) = ω T ϕ ( x ) + b f(x) = \pmb{\omega}^T\phi{(\pmb{x})} +b f(x)=ωωωTϕ(xxx)+b
在求解新模型时,会涉及到到 ϕ ( x i ) T ϕ ( x j ) \phi{(\pmb{x_i})}^T\phi{(\pmb{x_j})} ϕ(xixixi)Tϕ(xjxjxj)的计算,即 x i 和 x j \pmb{x_i}和\pmb{x_j} xixixixjxjxj映射到新的特征空间之后的内积,由于映射后的空间维度更大(可能无穷维),因此直接计算内积 ϕ ( x i ) T ϕ ( x j ) \phi{(\pmb{x_i})}^T\phi{(\pmb{x_j})} ϕ(xixixi)Tϕ(xjxjxj)通常比较困难,因此,核函数(kernel trick)被提出来解决这个问题。核函数是指,低维输入空间存在函数 κ \kappa κ,它恰好等于在高维空间中的这个内积,这样就避免了复杂的非线性变换以及高维内积的计算,公式如下所示。
κ ( x i , x j ) = < ϕ ( x i ) , ϕ ( x j ) > = ϕ ( x i ) T ϕ ( x j ) \kappa(\pmb{x_i},\pmb{x_j})=<\phi{(\pmb{x_i})},\phi{(\pmb{x_j})}>=\phi{(\pmb{x_i})}^T\phi{(\pmb{x_j})} κ(xixixi,xjxjxj)=<ϕ(xixixi),ϕ(xjxjxj)>=ϕ(xixixi)Tϕ(xjxjxj)
ϕ ( ∗ ) \phi(*) ϕ()已知,则可以求出对应的 κ ( ∗ , ∗ ) \kappa{(*,*)} κ(,),但问题是我们往往不知道 ϕ ( ∗ ) \phi(*) ϕ()是什么形式,而且我们通常也不会去显式地找到这个 ϕ ( ∗ ) \phi(*) ϕ()。若核函数的选择不合适,则样本被映射到的空间仍然不能构造出一个好的划分超平面,因此核函数的选择至关重要。下面是常用的几种核函数:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值