支持向量机原理
2024-04-27m.verywind.com
~
支持向量机原理SVM简介
支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧,这使它成为实质上的非线性分类器。SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。
SVM算法原理
SVM学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。如下图所示, \boldsymbol{w}\cdot x+b=0 即为分离超平面,对于线性可分的数据集来说,这样的超平面有无穷多个(即感知机),但是几何间隔最大的分离超平面却是唯一的。
在推导之前,先给出一些定义。假设给定一个特征空间上的训练数据集
T=\left\{ \left( \boldsymbol{x}_1,y_1 \right) ,\left( \boldsymbol{x}_2,y_2 \right) ,...,\left( \boldsymbol{x}_N,y_N \right) \right\}
其中, \boldsymbol{x}_i\in \mathbb{R}^n , y_i\in \left\{ +1,-1 \right\} ,i=1,2,...N , x_i 为第 i 个特征向量, y_i 为类标记,当它等于+1时为正例;为-1时为负例。再假设训练数据集是线性可分的。
几何间隔:对于给定的数据集 T 和超平面 w\cdot x+b=0 ,定义超平面关于样本点 \left( x_i,y_i \right) 的几何间隔为
\gamma _i=y_i\left( \frac{\boldsymbol{w}}{\lVert \boldsymbol{w} \rVert}\cdot \boldsymbol{x}_{\boldsymbol{i}}+\frac{b}{\lVert \boldsymbol{w} \rVert} \right)
超平面关于所有样本点的几何间隔的最小值为
\gamma =\underset{i=1,2...,N}{\min}\gamma _i
实际上这个距离就是我们所谓的支持向量到超平面的距离。
根据以上定义,SVM模型的求解最大分割超平面问题可以表示为以下约束最优化问题
\underset{\boldsymbol{w,}b}{\max}\ \gamma
s.t.\ \ \ y_i\left( \frac{\boldsymbol{w}}{\lVert \boldsymbol{w} \rVert}\cdot \boldsymbol{x}_{\boldsymbol{i}}+\frac{b}{\lVert \boldsymbol{w} \rVert} \right) \ge \gamma \ ,i=1,2,...,N
将约束条件两边同时除以 \gamma ,得到
y_i\left( \frac{\boldsymbol{w}}{\lVert \boldsymbol{w} \rVert \gamma}\cdot \boldsymbol{x}_{\boldsymbol{i}}+\frac{b}{\lVert \boldsymbol{w} \rVert \gamma} \right) \ge 1
因为 \lVert \boldsymbol{w} \rVert \text{,}\gamma 都是标量,所以为了表达式简洁起见,令
\boldsymbol{w}=\frac{\boldsymbol{w}}{\lVert \boldsymbol{w} \rVert \gamma}
b=\frac{b}{\lVert \boldsymbol{w} \rVert \gamma}
得到
y_i\left( \boldsymbol{w}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) \ge 1,\ i=1,2,...,N
又因为最大化 \gamma ,等价于最大化 \frac{1}{\lVert \boldsymbol{w} \rVert} ,也就等价于最小化 \frac{1}{2}\lVert \boldsymbol{w} \rVert ^2 ( \frac{1}{2} 是为了后面求导以后形式简洁,不影响结果),因此SVM模型的求解最大分割超平面问题又可以表示为以下约束最优化问题
\underset{\boldsymbol{w,}b}{\min}\ \frac{1}{2}\lVert \boldsymbol{w} \rVert ^2
s.t.\ \ y_i\left( \boldsymbol{w}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) \ge 1,\ i=1,2,...,N
这是一个含有不等式约束的凸二次规划问题,可以对其使用拉格朗日乘子法得到其对偶问题(dual problem)。
首先,我们将有约束的原始目标函数转换为无约束的新构造的拉格朗日目标函数
L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right) =\frac{1}{2}\lVert \boldsymbol{w} \rVert ^2-\sum_{i=1}^N{\alpha _i\left( y_i\left( \boldsymbol{w}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) -1 \right)}
其中 \alpha _i 为拉格朗日乘子,且 \alpha _i\ge 0 。现在我们令
\theta \left( \boldsymbol{w} \right) =\underset{\alpha _{_i}\ge 0}{\max}\ L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right)
当样本点不满足约束条件时,即在可行解区域外:
y_i\left( \boldsymbol{w}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) <1
此时,将 \alpha _i 设置为无穷大,则 \theta \left( \boldsymbol{w} \right) 也为无穷大。
当满本点满足约束条件时,即在可行解区域内:
y_i\left( \boldsymbol{w}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) \ge 1
此时, \theta \left( \boldsymbol{w} \right) 为原函数本身。于是,将两种情况合并起来就可以得到我们新的目标函数
\theta \left( \boldsymbol{w} \right) =\begin{cases} \frac{1}{2}\lVert \boldsymbol{w} \rVert ^2\ ,\boldsymbol{x}\in \text{可行区域}\\ +\infty \ \ \ \ \ ,\boldsymbol{x}\in \text{不可行区域}\\ \end{cases}
于是原约束问题就等价于
\underset{\boldsymbol{w,}b}{\min}\ \theta \left( \boldsymbol{w} \right) =\underset{\boldsymbol{w,}b}{\min}\underset{\alpha _i\ge 0}{\max}\ L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right) =p^*
看一下我们的新目标函数,先求最大值,再求最小值。这样的话,我们首先就要面对带有需要求解的参数 \boldsymbol{w} 和 b 的方程,而 \alpha _i 又是不等式约束,这个求解过程不好做。所以,我们需要使用拉格朗日函数对偶性,将最小和最大的位置交换一下,这样就变成了:
\underset{\alpha _i\ge 0}{\max}\underset{\boldsymbol{w,}b}{\min}\ L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right) =d^*
要有 p^*=d^* ,需要满足两个条件:
① 优化问题是凸优化问题
② 满足KKT条件
首先,本优化问题显然是一个凸优化问题,所以条件一满足,而要满足条件二,即要求
\begin{cases} \alpha _i\ge 0\\ y_i\left( \boldsymbol{w}_{\boldsymbol{i}}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) -1\ge 0\\ \alpha _i\left( y_i\left( \boldsymbol{w}_{\boldsymbol{i}}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) -1 \right) =0\\ \end{cases}
为了得到求解对偶问题的具体形式,令 L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right) 对 \boldsymbol{w} 和 b 的偏导为0,可得
\boldsymbol{w}=\sum_{i=1}^N{\alpha _iy_i\boldsymbol{x}_{\boldsymbol{i}}}
\sum_{i=1}^N{\alpha _iy_i}=0
将以上两个等式带入拉格朗日目标函数,消去 \boldsymbol{w} 和 b , 得
L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right) =\frac{1}{2}\sum_{i=1}^N{\sum_{j=1}^N{\alpha _i\alpha _jy_iy_j\left( \boldsymbol{x}_{\boldsymbol{i}}\cdot \boldsymbol{x}_{\boldsymbol{j}} \right)}}-\sum_{i=1}^N{\alpha _iy_i\left( \left( \sum_{j=1}^N{\alpha _jy_j\boldsymbol{x}_{\boldsymbol{j}}} \right) \cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) +}\sum_{i=1}^N{\alpha _i}
\ \ \ \ \ \ \ \ \ \ \ =-\frac{1}{2}\sum_{i=1}^N{\sum_{j=1}^N{\alpha _i\alpha _jy_iy_j\left( \boldsymbol{x}_{\boldsymbol{i}}\cdot \boldsymbol{x}_{\boldsymbol{j}} \right)}}+\sum_{i=1}^N{\alpha _i}
即
\underset{\boldsymbol{w,}b}{\min}\ L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right) =-\frac{1}{2}\sum_{i=1}^N{\sum_{j=1}^N{\alpha _i\al
支持向量机的英文缩写是 答:支持向量机(英语:Support Vector Machine, 简称SVM),是一种有监督学习方法,可被广泛应用于统计分类以及线性回归。Vapnik等人在多年研究统计学习理论基础上对线性分类器提出了另一种设计最佳准则。其原理也从线性可分说起,...
Support Vector Machine是什么,具体解释下 答:在分类任务中,它的原理是,将决策面(超平面)放置在这样的一个位置,两类中接近这个位置的点距离的都最远。我们来考虑两类线性可分问题,如果要在两个类之间画一条线,那么按照支持向量机的原理,我们会先找两类之间最...
支持向量机 这个名字是怎么来的? 答:其原理也从线svm 产品 性可分说起,然后扩展到线性不可分的情况。甚至扩展到使用非线性函数中去,这种分类器被称为支持向量机(Support Vector Machine,简称SVM)。支持向量机的提出有很深的理论背景。 支持向量机方法是在...
请高人指点!什么是支持向量机(SVM)?其本质原理是什么? 答:支持向量机SVM ( Support Vector Machines)是由Vanpik领导的AT&TBell实验室研究小组 在1963年提出的一种新的非常有潜力的分类技术, SVM是一种基于统计学习理论的模式识别方法,主要应用于模式识别领域.由于当时这些研究尚不十分...
为什么支持向量机可以理解为最宽大街法 答:支持向量机的原理是直截了当的。学习模型绘制了一条线,将数据点划分为多个类。在一个二元问题中,这个决策边界采用最宽的街道方法,最大限度地增加从每个类到最近的数据点的距离。在向量微积分中,点积可测量一个向量在另...
用于监督分类的算法 答:支持向量机算法 支持向量机算法是一种基于最大间隔分类的监督分类算法,其基本思想是将数据映射到高维空间中,通过寻找最优的超平面来进行分类。支持向量机算法的优点是对噪声和非线性数据具有较好的鲁棒性,但是需要对参数进行...
请简述线性可分svm的基本思想 答:1、当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;2、当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机;当训练数据线性不可分时...
从原理上来说,GBDT 和 SVM 哪个更强?为什么 答:GBDT 全称为 Gradient Boosting Decision Tree。是一种基于决策树(decision tree)实现的分类回归算法。GBDT 有两部分组成: gradient boosting, decision tree。支持向量机(support vector machine)是一种分类算法,通过寻求结构化...
什么是最小二乘支持向量机 答:最小二乘支持向量机 (least squares support veotor maohine,LSSVM)是一种遵循结构风险最小化 (structural risk minimization,SRM) 原则的核函数学习机器,其算法是最小二乘法,其原理是结构风险最小化(要理解这个去看看...
SVM常考细节 答:SVM是一种二类分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。(间隔最大是它有别于感知机)(1)当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;...
支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧,这使它成为实质上的非线性分类器。SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。
SVM算法原理
SVM学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。如下图所示, \boldsymbol{w}\cdot x+b=0 即为分离超平面,对于线性可分的数据集来说,这样的超平面有无穷多个(即感知机),但是几何间隔最大的分离超平面却是唯一的。
在推导之前,先给出一些定义。假设给定一个特征空间上的训练数据集
T=\left\{ \left( \boldsymbol{x}_1,y_1 \right) ,\left( \boldsymbol{x}_2,y_2 \right) ,...,\left( \boldsymbol{x}_N,y_N \right) \right\}
其中, \boldsymbol{x}_i\in \mathbb{R}^n , y_i\in \left\{ +1,-1 \right\} ,i=1,2,...N , x_i 为第 i 个特征向量, y_i 为类标记,当它等于+1时为正例;为-1时为负例。再假设训练数据集是线性可分的。
几何间隔:对于给定的数据集 T 和超平面 w\cdot x+b=0 ,定义超平面关于样本点 \left( x_i,y_i \right) 的几何间隔为
\gamma _i=y_i\left( \frac{\boldsymbol{w}}{\lVert \boldsymbol{w} \rVert}\cdot \boldsymbol{x}_{\boldsymbol{i}}+\frac{b}{\lVert \boldsymbol{w} \rVert} \right)
超平面关于所有样本点的几何间隔的最小值为
\gamma =\underset{i=1,2...,N}{\min}\gamma _i
实际上这个距离就是我们所谓的支持向量到超平面的距离。
根据以上定义,SVM模型的求解最大分割超平面问题可以表示为以下约束最优化问题
\underset{\boldsymbol{w,}b}{\max}\ \gamma
s.t.\ \ \ y_i\left( \frac{\boldsymbol{w}}{\lVert \boldsymbol{w} \rVert}\cdot \boldsymbol{x}_{\boldsymbol{i}}+\frac{b}{\lVert \boldsymbol{w} \rVert} \right) \ge \gamma \ ,i=1,2,...,N
将约束条件两边同时除以 \gamma ,得到
y_i\left( \frac{\boldsymbol{w}}{\lVert \boldsymbol{w} \rVert \gamma}\cdot \boldsymbol{x}_{\boldsymbol{i}}+\frac{b}{\lVert \boldsymbol{w} \rVert \gamma} \right) \ge 1
因为 \lVert \boldsymbol{w} \rVert \text{,}\gamma 都是标量,所以为了表达式简洁起见,令
\boldsymbol{w}=\frac{\boldsymbol{w}}{\lVert \boldsymbol{w} \rVert \gamma}
b=\frac{b}{\lVert \boldsymbol{w} \rVert \gamma}
得到
y_i\left( \boldsymbol{w}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) \ge 1,\ i=1,2,...,N
又因为最大化 \gamma ,等价于最大化 \frac{1}{\lVert \boldsymbol{w} \rVert} ,也就等价于最小化 \frac{1}{2}\lVert \boldsymbol{w} \rVert ^2 ( \frac{1}{2} 是为了后面求导以后形式简洁,不影响结果),因此SVM模型的求解最大分割超平面问题又可以表示为以下约束最优化问题
\underset{\boldsymbol{w,}b}{\min}\ \frac{1}{2}\lVert \boldsymbol{w} \rVert ^2
s.t.\ \ y_i\left( \boldsymbol{w}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) \ge 1,\ i=1,2,...,N
这是一个含有不等式约束的凸二次规划问题,可以对其使用拉格朗日乘子法得到其对偶问题(dual problem)。
首先,我们将有约束的原始目标函数转换为无约束的新构造的拉格朗日目标函数
L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right) =\frac{1}{2}\lVert \boldsymbol{w} \rVert ^2-\sum_{i=1}^N{\alpha _i\left( y_i\left( \boldsymbol{w}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) -1 \right)}
其中 \alpha _i 为拉格朗日乘子,且 \alpha _i\ge 0 。现在我们令
\theta \left( \boldsymbol{w} \right) =\underset{\alpha _{_i}\ge 0}{\max}\ L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right)
当样本点不满足约束条件时,即在可行解区域外:
y_i\left( \boldsymbol{w}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) <1
此时,将 \alpha _i 设置为无穷大,则 \theta \left( \boldsymbol{w} \right) 也为无穷大。
当满本点满足约束条件时,即在可行解区域内:
y_i\left( \boldsymbol{w}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) \ge 1
此时, \theta \left( \boldsymbol{w} \right) 为原函数本身。于是,将两种情况合并起来就可以得到我们新的目标函数
\theta \left( \boldsymbol{w} \right) =\begin{cases} \frac{1}{2}\lVert \boldsymbol{w} \rVert ^2\ ,\boldsymbol{x}\in \text{可行区域}\\ +\infty \ \ \ \ \ ,\boldsymbol{x}\in \text{不可行区域}\\ \end{cases}
于是原约束问题就等价于
\underset{\boldsymbol{w,}b}{\min}\ \theta \left( \boldsymbol{w} \right) =\underset{\boldsymbol{w,}b}{\min}\underset{\alpha _i\ge 0}{\max}\ L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right) =p^*
看一下我们的新目标函数,先求最大值,再求最小值。这样的话,我们首先就要面对带有需要求解的参数 \boldsymbol{w} 和 b 的方程,而 \alpha _i 又是不等式约束,这个求解过程不好做。所以,我们需要使用拉格朗日函数对偶性,将最小和最大的位置交换一下,这样就变成了:
\underset{\alpha _i\ge 0}{\max}\underset{\boldsymbol{w,}b}{\min}\ L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right) =d^*
要有 p^*=d^* ,需要满足两个条件:
① 优化问题是凸优化问题
② 满足KKT条件
首先,本优化问题显然是一个凸优化问题,所以条件一满足,而要满足条件二,即要求
\begin{cases} \alpha _i\ge 0\\ y_i\left( \boldsymbol{w}_{\boldsymbol{i}}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) -1\ge 0\\ \alpha _i\left( y_i\left( \boldsymbol{w}_{\boldsymbol{i}}\cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) -1 \right) =0\\ \end{cases}
为了得到求解对偶问题的具体形式,令 L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right) 对 \boldsymbol{w} 和 b 的偏导为0,可得
\boldsymbol{w}=\sum_{i=1}^N{\alpha _iy_i\boldsymbol{x}_{\boldsymbol{i}}}
\sum_{i=1}^N{\alpha _iy_i}=0
将以上两个等式带入拉格朗日目标函数,消去 \boldsymbol{w} 和 b , 得
L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right) =\frac{1}{2}\sum_{i=1}^N{\sum_{j=1}^N{\alpha _i\alpha _jy_iy_j\left( \boldsymbol{x}_{\boldsymbol{i}}\cdot \boldsymbol{x}_{\boldsymbol{j}} \right)}}-\sum_{i=1}^N{\alpha _iy_i\left( \left( \sum_{j=1}^N{\alpha _jy_j\boldsymbol{x}_{\boldsymbol{j}}} \right) \cdot \boldsymbol{x}_{\boldsymbol{i}}+b \right) +}\sum_{i=1}^N{\alpha _i}
\ \ \ \ \ \ \ \ \ \ \ =-\frac{1}{2}\sum_{i=1}^N{\sum_{j=1}^N{\alpha _i\alpha _jy_iy_j\left( \boldsymbol{x}_{\boldsymbol{i}}\cdot \boldsymbol{x}_{\boldsymbol{j}} \right)}}+\sum_{i=1}^N{\alpha _i}
即
\underset{\boldsymbol{w,}b}{\min}\ L\left( \boldsymbol{w,}b,\boldsymbol{\alpha } \right) =-\frac{1}{2}\sum_{i=1}^N{\sum_{j=1}^N{\alpha _i\al