连载|详细推算SVM

简介: 连载|详细推算SVM

支持向量机(SVM)

基础的SVM

了解SVM之前,先让我们来思考一个问题,有下图所示的两类样本点,我们需要找到一条直线(一个平面)来把这两类样本点区分开,在图中可以看到有很多条直线都满足条件,但是哪条直线的分类效果更好呢?

99.png

直观上看,图中加粗的那条直线分类效果更好,该分类方法对于新样本的泛化能力也是最强的,下面让我们来看一下具体应该如何确定这条直线。

假定给一个特征空间上的训练数据集image.png

其中:image.png

此时当y i = + 1 时image.png是正例,此时当image.pngxi是负例,特征空间中的( x i , y i ) 就是样本点。

对于线性可分的问题我们可以得到一条直线,image.png该直线将特征空间划分为了两个部分,一部分是正类,一部分是负类,SVM中我们可以称这条直线为分离超平面。

此时设有一个通过间隔最大化得到的分离超平面:

image.png

得到了分离超平面我们又要如何去进行分类呢?此时我们对分离超平面添加一个决策函数,得到如下的形式:

image.png

此时该函数我们就可以称之为线性可分支持向量机。sign函数的图像表示如下:

image.png

这就是我们简单的线性SVM的思想,那么我们又如何通过间隔最大化来确定分离超平面呢?让我们再来看一下下面的间隔问题。


间隔问题

函数间隔

100.png

上图中是一个简单的圆与三角的分类问题,我们来讨论一下圆这个类,图中有框出的红、绿、蓝三种颜色的圆,他们都落在圆类的一侧,但是红球距离超平面的距离较远,如果我们把红圆预测为圆类,就比较确信我们的预测是正确的;同理,相对于蓝色的圆,我们就不是很确信;而对于绿色的圆,我们可以认为确信度在二者之间。


image.png

我们可以用如下的形式来表示函数间隔:

image.png

几何间隔

image.png

我们对超平面中的法向量w进行一定的约束得到:

image.png

image.png

对于几何间隔上面是用函数间隔来推出的过程,如果不是很理解,可以把它认定是点到直线的距离(二维空间内)或者点到平面的距离(三维空间内)。


再对几何间隔添加上我们之前提到的表示分类正确性的y一项得到几何间隔的具体表达式:

image.png

间隔最大化

在一种我们提到过间隔最大化得到的分类超平面经过sign函数后可以得到线性可分支持向量机,下面我们来说一下间隔最大化具体是怎么回事。


第二节中我们提到了确信度的问题,为了保证更高的确信度我们是不是应该尽量让每一个点到分类超平面的几何间隔都达到最大化,这样做的目的是对于新的数据点,我们不仅能将它分到正负类别中,同时离分类超平面很近的点我们也可以将它很好的分类,并且能够保证有很大的确信度,我们就可以说这个超平面对新数据有很好的预测能力。


我们将间隔最大化的问题转换为约束最优化问题我们希望最大化几何间隔γ 的同时又希望超平面对于每个测试样本点的几何间隔至少是γ 。

则有如下的形式(s.t.表示约束条件):

image.png

根据上节末尾提到的几何间隔和函数间隔之间的关系我们可以把上述问题进一步转化:

image.png

此时我们便转化成了一个凸二次规划问题:


凸优化我们可以看做是一个凸函数去找最低点的问题(例如梯度下降法的过程)。


而二次规划是指目标函数为变量的二次函数和约束条件为变量的线性函数。


为了便于求解此类问题我们可以通过求解对偶问题得到原始问题的最优解,这样既可以简单的求解又可以引入后续对非线性分类问题的讨论(后面我们将会讨论对偶问题的求解)。


支持向量

image.png

如下图所示,距离超平面最近的几个点使得上述的等号成立,这几个点我们就称之为支持向量。

image.png

对偶问题求解

上面我们提到了间隔最大化的求解问题,本节让我们继续来讨论间隔最大化章节中转化为对偶问题的求解。


首先需要明确一下对偶问题的由来,对偶问题是一种应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解。


原始问题:

image.png

求极小

image.png

求极大

image.png

image.png

引入松弛变量的SVM

上文中我们讲述的内容全都是在样本分类很均匀的情况下,而实际问题中这种状况经常是不存在的,那么有噪声点存在的时候应该怎么办呢?

101.png

image.png

此时的间隔最大化我们称之为软间隔最大化

此时对于每一个松弛变量,我们目标函数同时也要添加一个ξ i,则目标函数变为:

image.png

这里的C我们称之为乘法系数(C>0),C越小时对误分类的惩罚越小,越大时惩罚也就越大,当C取到无穷时,可以认为给了误分类项足够大的惩罚(导致ξ i 变得极小),此时的最大间隔也自然又回到了硬间隔最大化上。


此时我们可以根据上两式得到原始问题,求解依然可以使用上文中的对偶问题,结果不发生变化,这里不再赘述。


损失函数

SVM中常用的损失函数是(hinge)合页损失函数。

image.png

而完整的SVM的损失函数其实就是在合页函数的后面多加了一个L2正则项:

image.png

加入L2正则项的目的:使求解稳定快速,防止过拟合。


非线性SVM

上文中我们首先提到了线性可分支持向量机,后来又引入了松弛变量说了一下线性支持向量机,下面我们再来说一下非线性支持向量机。

核技巧

对于非线性支持向量机,我们需要用核技巧将线性支持向量机推广到非线性支持向量机,不仅是SVM其他的一些类似问题也可以用该方式来解答。


所谓核技巧其实就是使得在原空间内不可分的数据映射到更高维度的空间上,然后再使用线性的方法将他们分开的一种思想,用下图来表示一下:

image.png

可以看到图左的数据在二维空间内不能用一条直线将他们分开,我们将它映射到一个三维的空间内,此时就会存在一个平面(黄色的部分)将两类分离开来,对于这种思想我们就可以称之为核技巧。


核函数

说了核技巧我们就不得不说它的重要部分——核函数。

核函数的定义:

image.png

常用的核函数

多项式核函数

image.png

高斯核函数:

image.png

相关文章
|
机器学习/深度学习 Linux vr&ar
ARIMA差分自回归移动平均模型
ARIMA是**差分自回归移动平均模型**的引文缩写,其中AR表示的是自回归模型,MA表示的是移动平均模型,I表示的是差分。一般写成ARIMA(p,d,q),p是自回归阶数,q是移动平均阶数,d表示差分的次数。
1336 0
ARIMA差分自回归移动平均模型
|
7月前
|
机器学习/深度学习 数据可视化
R语言MCMC的lme4二元对数Logistic逻辑回归混合效应模型分析吸烟、喝酒和赌博影响数据
R语言MCMC的lme4二元对数Logistic逻辑回归混合效应模型分析吸烟、喝酒和赌博影响数据
|
7月前
|
算法 Python
R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列
R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列
|
7月前
|
算法 vr&ar Python
R语言隐马尔可夫模型HMM连续序列重要性重抽样CSIR估计随机波动率模型SV分析股票收益率时间序列
R语言隐马尔可夫模型HMM连续序列重要性重抽样CSIR估计随机波动率模型SV分析股票收益率时间序列
|
7月前
贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据
贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据
贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据
|
7月前
R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析
R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析
|
7月前
|
数据可视化
R语言极值推断:广义帕累托分布GPD使用极大似然估计、轮廓似然估计、Delta法
R语言极值推断:广义帕累托分布GPD使用极大似然估计、轮廓似然估计、Delta法
|
7月前
|
算法
R语言贝叶斯METROPOLIS-HASTINGS GIBBS 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间
R语言贝叶斯METROPOLIS-HASTINGS GIBBS 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间
|
7月前
|
数据采集
R语言用线性模型进行臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值
R语言用线性模型进行臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值
|
7月前
R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测
R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测