1、支持向量机介绍

1.1 二分类问题延展

首先我们在去了解支持向量机的作用原理之前,我们应该先弄明白支持向量机是解决分类问题的。先前我们在Task1逻辑回归解决二分类问题中,我们在二维情况下,要找到一条线将不同类的样本划分开来。从图中不难看出,仅仅是将两种不同类样本划分开,可以有很多种选择。那究竟哪一种比较好?或者说我们应该如何找出最优的划分曲线。这就是支持向量机要做的东西。
Task 3 基于支持向量机的分类预测

1.2 间隔、支持向量、支持向量机模型

1.2.1 间隔与支持向量

在样本空间中,划分超平面可以用线性方程来表示:wTx+b=0w^{T}x+b=0。这个超平面完全由ww=(w1;w2;w3;...;wd)w=(w_{1};w_{2};w_{3};...;w_{d}))和b来决定,其中w为超平面的法向量,b为位移项。
我们再考虑用逻辑回归进行分类时,我们将z>0z>0时,令y=0y=0z>0z>0时,令y=1y=1。参考于此,我们同样方法得到下列式子{wTxi+1,yi=+1wTxi1,yi=1\begin{cases} & \text{} w^{T}x_{i}\geq +1,y_{i}=+1\\ & \text{} w^{T}x_{i}\leq -1 ,y_{i}=-1 \end{cases}
Task 3 基于支持向量机的分类预测
根据上式,其中γ=2w\gamma =\frac{2}{\left \| w \right \|}w{\left \| w \right \|}是二阶范数,w=wTw{\left \| w \right \|}=\sqrt{w^{T}w})被称为间隔,而画红圈的样本是恰好使得上式的等号成立,它们就被成为支持向量
关于间隔是如何求出来的,是要根据样本空间上的点到超平面的距离公式算出来的。距离公式是:r=wTx+bwr=\frac{w^{T}x+b}{\left \| w \right \|},推导如下:
Task 3 基于支持向量机的分类预测
我们已经知道ww是划分超平面的法向量,对于求点xx到超平面wTx+b=0w^{T}x+b=0的距离,就是求xx0\overrightarrow{xx_{0}}w\vec{w}上的投影。
于是,有:
r=(xx0)wwr=(\vec{x}-\vec{x_{0}})\cdot \frac{\vec{w}}{||\vec{w}||}
wTx0+b=0w^{T}x_{0}+b=0,代入上式
得:r=wTx+bwr=\frac{w^{T}x+b}{\left \| w \right \|}
同理,可推出间隔γ\gamma

1.2.2 支持向量机模型

我们找到的超平面以γ\gamma最大为最优。也就是要找到满足{wTxi+1,yi=+1wTxi1,yi=1\begin{cases} & \text{} w^{T}x_{i}\geq +1,y_{i}=+1\\ & \text{} w^{T}x_{i}\leq -1 ,y_{i}=-1 \end{cases}约束的参数wwbb,使得γ\gamma最大,即
w,bmax2w_{w,b}^{max} \frac{2}{||w||}
s.t.s.t. yi(wTxi+b)1y_{i}(w^{T}x_{i}+b)\geqslant 1
为了后续推导方便,我们可以将这种规划问题换一种方式,很容易得出,求2w12||w||^{-1}的最大值问题可以转化为求12w2\frac{1}{2}||w||^{2}的最小值问题,于是,得
w,bmin12w2_{w,b}^{min} \frac{1}{2}||w||^{2}
s.t.s.t. yi(wTxi+b)1,i=1,2,...,my_{i}(w^{T}x_{i}+b)\geqslant 1,i=1,2,...,m
这就是支持向量机(Support Vector Machine)SVM 的基本型。

2、支持向量机的对偶问题

2.1 对偶问题的推导

我们注意到SVM的基本型实际上式一个凸二次规划问题,可以通过现有的优化计算包进行求解。我们在这里却不这样计算,而是通过引入拉格朗日乘子转化为其对偶问题。我们引入拉格朗日乘子αi0\alpha_{i}\geqslant0得到该问题的拉格朗日函数:
L(w,b,α)=12w2+i=1mαi(1yi(wTxi+b))L(w,b,\alpha)=\frac{1}{2}||w||^{2}+\sum_{i=1}^{m}\alpha_{i}(1-y_{i}(w^{T}x_{i}+b))
其中α=(αi;αi;...;αm)\alpha=(\alpha_{i};\alpha_{i};...;\alpha_{m});
L(w,b,α)L(w,b,\alpha)分别对wwbb的偏导为0,得
(1)w=i=1mαiyixiw=\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i}
(2)0=i=1mαiyi0=\sum_{i=1}^{m}\alpha_{i}y_{i}
将式(1)(2)代入L(w,b,α)L(w,b,\alpha)
L(w,b,α)=12w2+i=1mαi(1yi(wTxi+b))L(w,b,\alpha)=\frac{1}{2}||w||^{2}+\sum_{i=1}^{m}\alpha_{i}(1-y_{i}(w^{T}x_{i}+b))
=12wTw+i=1m(αiαiyiwTxiαiyib)=\frac{1}{2}w^{T}w+\sum_{i=1}^{m}(\alpha_{i}-\alpha_{i}y_{i}w^{T}x_{i}-\alpha_{i}y_{i}b)
=i=1m12αiyiwTxi+i=1mαii=1mαiyiwTxii=1mαiyib=\sum_{i=1}^{m}\frac{1}{2}\alpha_{i}y_{i}w^{T}x_{i}+\sum_{i=1}^{m}\alpha_{i}-\sum_{i=1}^{m}\alpha_{i}y_{i}w^{T}x_{i}-\sum_{i=1}^{m}\alpha_{i}y_{i}b
=i=1m12αiyiwTxi+i=1mαi=-\sum_{i=1}^{m}\frac{1}{2}\alpha_{i}y_{i}w^{T}x_{i}+\sum_{i=1}^{m}\alpha_{i}
=i=1mj=1m12αiαjyiyjxjTxi+i=1mαi=-\sum_{i=1}^{m}\sum_{j=1}^{m}\frac{1}{2}\alpha_{i}\alpha_{j}y_{i}y_{j}x_{j}^{T}x_{i}+\sum_{i=1}^{m}\alpha_{i}
考虑约束条件可得其对偶问题
αmaxi=1mαi12i=1mj=1mαiαjyiyjxiTxj_{\alpha}^{max}\sum_{i=1}^{m}\alpha_{i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i}\alpha_{j}y_{i}y_{j}x_{i}^{T}x_{j}
s.t.i=1mαiyi=0s.t. \sum_{i=1}^{m}\alpha_{i}y_{i}=0
αi0,i=1,2,...,m\alpha_{i}\geqslant0,i=1,2,...,m
对偶问题的KKT条件
{αi0yif(xi)10αi(yif(xi)1)=0\begin{cases} & \alpha_{i}\geqslant 0\\ & y_{i}f(x_{i})-1\geqslant 0\\ & \alpha_{i}(y_{i}f(x_{i})-1)=0 \end{cases}
对偶问题详细推导及证明请点击这里
另外对于求解这个二次规划问题,比较高效的算法式SMO算法,具体见SMO算法

3、核函数

3.1 引入

上述的支持向量机解决的分类问题还都只是处理线性问题,但如果是像下图所示的情况我们的SVM就不能解决。那有什么办法呢?
Task 3 基于支持向量机的分类预测
我们可以设想把二维平面上的点映射到更高维的空间中去,比如说二维映射到三维,见下图,这样我们就能将非线性的分类问题转化为线性问题,进而可以用SVM去解决。
Task 3 基于支持向量机的分类预测
为此,我们引入ϕ(x)\phi (x)来表示xx映射后的特征向量,于是SVM的基本型变为:
w,bmin12w2_{w,b}^{min} \frac{1}{2}||w||^{2}
s.t.s.t. yi(wTϕ(x)i+b)1,i=1,2,...,my_{i}(w^{T}\phi(x)_{i}+b)\geqslant 1,i=1,2,...,m
其对偶问题是:
αmaxi=1mαi12i=1mj=1mαiαjyiyjϕ(xi)Tϕ(xj)_{\alpha}^{max}\sum_{i=1}^{m}\alpha_{i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i}\alpha_{j}y_{i}y_{j}\phi(x_{i})^{T}\phi(x_{j})
s.t.i=1mαiyi=0s.t. \sum_{i=1}^{m}\alpha_{i}y_{i}=0
αi0,i=1,2,...,m\alpha_{i}\geqslant0,i=1,2,...,m
求解上面的问题,我们需要计算ϕ(xi)Tϕ(xj)\phi(x_{i})^{T}\phi(x_{j})但是我们并不知道特征空间的维数,这个特征空间的维数可能很高,计算内积可能不好计算。为了避开这个障碍,我们假设有一个函数:
κ(xi,xj)=ϕ(xi)Tϕ(xj)\kappa(x_{i},x_{j})=\phi(x_{i})^{T}\phi(x_{j})
这个函数就是核函数

3.2 核函数

首先介绍一个定理:令χ\chi 为输入空间,κ(,)\kappa(·,·)是定义在χ×χ\chi\times\chi上的对称函数,则κ\kappa是核函数当且仅当对于任意数据D={x1,x2,...,xm}D=\left\{x_{1},x_{2},...,x_{m}\right\},“核矩阵”总是半正定的。
下图实际中常用的核函数。
Task 3 基于支持向量机的分类预测

相关文章:

  • 2021-09-09
  • 2022-02-28
  • 2021-06-12
  • 2021-04-25
  • 2021-07-11
  • 2022-01-06
  • 2022-02-19
  • 2022-12-23
猜你喜欢
  • 2021-08-07
  • 2021-11-19
  • 2021-12-09
  • 2021-10-19
  • 2021-11-28
  • 2021-08-20
相关资源
相似解决方案