SVM 相关公式推导解释
2014-08-20 20:20
232 查看
题记:
写这篇文章的背景是这样的,近期在看《机器学习实战》这本书,看过一段时间昨天打算大致的回顾下常用分类器的原理和特性,比如K尽量,决策树,logistic regression,naive bayes 和SVM,但当想到SVM的时候,自己只知道他的作用及特性,对于其中的原理感觉很模糊,所以就决定仔细的把其中的过程弄明白。自己也查阅了很多网上相关的博客等,写的都不错,但是对于我这种小白来说,强行的去理解记忆其中的公式感觉还是有压力的,所以自己打算自己简单的把整个过程捋清楚,公式试着推导。进入正题,我所理解的SVM的大致过程可以分如下几个过程:
1.线性可分的情况---目标函数确定
SVM的primal problem 是利用样本找到一个超平面,我们定义为
,
![](https://img-blog.csdn.net/20140821092403964?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hpeWFud2VpMTk4OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
找到一些样本点(称之为支撑向量)离这个平面最近,但同时呢有要使这些支撑向量和超平面的间隔(距离)最大,因为样本点离超平面越远,那么分类的confidence越大,这样通过这个思路我们就可以确定目标函数,这里有几何间隔和函数间隔两种度量方式,具体的两种间隔的定义和公式可以在相关的博客中找到,在这里我们选择几何间隔作为度量。这里我们先给出最大间隔(几何)分类器原型为:
![](https://img-blog.csdn.net/20140821092250875?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hpeWFud2VpMTk4OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
其中,max部分表示最大几何间隔,y(i)表示分类标签,后面的成书项表示该样本点在分类面什么地方,通过判断二者符号是否一致确定分类的正确性,因此用二者乘积表示分类的正确性和可信度,等号右边的是函数间隔,这即是函数间隔的定义公式。接下来对这个分类器进行改造和转换,已使满足我们要求的结果。几何间隔的定义;
![](https://img-blog.csdn.net/20140821092733098?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hpeWFud2VpMTk4OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这里令r =1,以便于问题的求解和优化,则我们的目标函数为:
![](https://img-blog.csdn.net/20140821092942298?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hpeWFud2VpMTk4OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
进一步转换为
![](https://img-blog.csdn.net/20140821093000051?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hpeWFud2VpMTk4OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
公式进化到这一步,也就找到了我们想要的目标函数。
2.求解目标函数
这一步就是对上面所得到的目标函数进行求解,很明显,这是一个带约束条件的求极值问题,很自然的我们会想到用拉格朗日乘数法进行,然后对其中的参数进行求偏导,再将求得的参数值带入原目标函数,就可求出最终的结果。这一步也就会出现众多博客当中所说的对偶问题,第一次听到“对偶问题”这个词的时候感觉好高大上啊,神马叫对“对偶”?是不是复数当中的对偶?,各种疑问油然而生,不过仔细分析过程之后,所谓对偶也就是我经常用到的方法,再给出具体求解中之后再详细分析。前面提到我们要用拉格朗日乘数法进行求解,因此我们可以将上面的目标函数用通过拉格朗日乘子变换为如下的目标函数:
![](https://img-blog.csdn.net/20140821092939843?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hpeWFud2VpMTk4OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
说明,1代表我们构造出来的新有关那个三个参数的函数,2仍然是目标函数,3为增加了拉格朗日乘子将约束条件加入到函数中,这里为什么用求和,是因为我们所有计算的不是针对的是个样本集,也就是在整个样本集上寻找最佳的答案。
转换为新的函数之后,假定拉格朗日因子为常数,对另外两个参数W和b进行求偏导,过程如下:
![](https://img-blog.csdn.net/20140820194258671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hpeWFud2VpMTk4OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
推导说明,在对w求导的过程中,将W的平方视作普通变量处理,并且对它的转置不做区别。求导结果如(2)和(3),将所得结构带入目标函数L中的结果如下:
![](https://img-blog.csdn.net/20140820195012718?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hpeWFud2VpMTk4OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
因此从式子可以得知,最终的结果之和变量有关,求出了它,那么也就能求出w和b,从而分类函数也可到。关于这个推导过程还有一点需要说明的也即是对偶问题转换,刚开始对于目标函数L先求min使w和b最小然后再求max ,而经过拉格朗日因子转换之后,先求max ,然后再min求w和b,这个转换的过程即使对偶求解的过程,在对偶转换的问题上需要满足一个KKT条件,这里就不多说了。
写这篇文章的背景是这样的,近期在看《机器学习实战》这本书,看过一段时间昨天打算大致的回顾下常用分类器的原理和特性,比如K尽量,决策树,logistic regression,naive bayes 和SVM,但当想到SVM的时候,自己只知道他的作用及特性,对于其中的原理感觉很模糊,所以就决定仔细的把其中的过程弄明白。自己也查阅了很多网上相关的博客等,写的都不错,但是对于我这种小白来说,强行的去理解记忆其中的公式感觉还是有压力的,所以自己打算自己简单的把整个过程捋清楚,公式试着推导。进入正题,我所理解的SVM的大致过程可以分如下几个过程:
1.线性可分的情况---目标函数确定
SVM的primal problem 是利用样本找到一个超平面,我们定义为
,
找到一些样本点(称之为支撑向量)离这个平面最近,但同时呢有要使这些支撑向量和超平面的间隔(距离)最大,因为样本点离超平面越远,那么分类的confidence越大,这样通过这个思路我们就可以确定目标函数,这里有几何间隔和函数间隔两种度量方式,具体的两种间隔的定义和公式可以在相关的博客中找到,在这里我们选择几何间隔作为度量。这里我们先给出最大间隔(几何)分类器原型为:
其中,max部分表示最大几何间隔,y(i)表示分类标签,后面的成书项表示该样本点在分类面什么地方,通过判断二者符号是否一致确定分类的正确性,因此用二者乘积表示分类的正确性和可信度,等号右边的是函数间隔,这即是函数间隔的定义公式。接下来对这个分类器进行改造和转换,已使满足我们要求的结果。几何间隔的定义;
这里令r =1,以便于问题的求解和优化,则我们的目标函数为:
进一步转换为
公式进化到这一步,也就找到了我们想要的目标函数。
2.求解目标函数
这一步就是对上面所得到的目标函数进行求解,很明显,这是一个带约束条件的求极值问题,很自然的我们会想到用拉格朗日乘数法进行,然后对其中的参数进行求偏导,再将求得的参数值带入原目标函数,就可求出最终的结果。这一步也就会出现众多博客当中所说的对偶问题,第一次听到“对偶问题”这个词的时候感觉好高大上啊,神马叫对“对偶”?是不是复数当中的对偶?,各种疑问油然而生,不过仔细分析过程之后,所谓对偶也就是我经常用到的方法,再给出具体求解中之后再详细分析。前面提到我们要用拉格朗日乘数法进行求解,因此我们可以将上面的目标函数用通过拉格朗日乘子变换为如下的目标函数:
说明,1代表我们构造出来的新有关那个三个参数的函数,2仍然是目标函数,3为增加了拉格朗日乘子将约束条件加入到函数中,这里为什么用求和,是因为我们所有计算的不是针对的是个样本集,也就是在整个样本集上寻找最佳的答案。
转换为新的函数之后,假定拉格朗日因子为常数,对另外两个参数W和b进行求偏导,过程如下:
推导说明,在对w求导的过程中,将W的平方视作普通变量处理,并且对它的转置不做区别。求导结果如(2)和(3),将所得结构带入目标函数L中的结果如下:
因此从式子可以得知,最终的结果之和变量有关,求出了它,那么也就能求出w和b,从而分类函数也可到。关于这个推导过程还有一点需要说明的也即是对偶问题转换,刚开始对于目标函数L先求min使w和b最小然后再求max ,而经过拉格朗日因子转换之后,先求max ,然后再min求w和b,这个转换的过程即使对偶求解的过程,在对偶转换的问题上需要满足一个KKT条件,这里就不多说了。
相关文章推荐
- 支持向量机(SVM)公式推导及代码对应解释1
- 向量点乘相关公式推导及 几何解释
- 向量点乘相关公式推导及 几何解释
- SVM原理---公式推导以及核函数
- SVM相关的推导
- 潜在语义索引(LSI)相关公式推导
- 向量点乘相关公式推导
- SVM相关的推导
- Integration by parts积分数学公式推导及图形解释
- 推荐算法学习-SVM,RSVM,ASVM,SVDPP学习公式推导
- 机器学习20-线性支持向量机svm公式推导(二)
- 一 核相关滤波(KCF)公式推导
- 机器学习SVM之SMO方法α,ω和b迭代公式的推导过程
- 数论相关公式的推导
- SVM相关的推导
- SVM相关的推导
- SVM相关的推导
- svm流程与公式推导
- SVM相关的推导
- 机器学习19-SVM线性可分公式推导(一)