注:如下的默认为2分类算法
一、SVM原理:函数
(1)输入空间到特征空间得映射学习
所谓输入空间便是输入样本集合,有部分状况输入空间与特征空间是相同得,有一部分状况两者是不一样的,而模型定义都是定义到特征空间的,特征空间是指全部的输入特征向量,特征向量是利用数值来表示的n维向量,输入空间到特征空间的映射,也就是对所用的特征进行数值量化(本人这么理解),与几率中的随机变量是同样的形式,随机变量是由样本空间到实数集的映射,例如:抛硬币的样本空间是{正面,反面},映射到实数集便为{1,0}优化
(2)求得间隔最大化最优分离超平面spa
所谓分离超平面,便是可以将全部的特征向量划分为两类的平面或直线(特征有两个变为直线,多个变为平面,即几维的问题),好比二维的状况下,一条线,可以坐标系中的全部点划分为两类,最优意为能够将全部的点尽可能进行正确的划分,间隔最大化意为:在两类区域中各自距离直线最近的点到直线的距离是最大的,所以能够求得惟一的间隔最大化最优分离超平面w*x+b*=0,因为是距离所以是由法向量和截距决定,w*为法向量,b*为截距,此处对这个方程进行解释:法向量是从点到平面的垂直方向,在几何中求平面的方程时,平面方程能够设为通常方程Ax+By+Cz+D=0,这即可以看做为(A,B,C)*(x,y,z)即w*=(A,B,C),特征向量x=(x,y,z),b*=D.同理在求直线直线可设为Ax+By+C=0,所以求超平面时即为求w*,b*.3d
(3)求分类决策函数blog
所谓分类决策函数只是一个符号函数f(x)=sign(w*x+b*),sign是一个符号函数,取输入值的符号(正负),在上边取得法向量和截距之后与输入特征向量运算后将结果带入sign()获得分类基础
二、基础概念学习方法
(1)函数间隔变量
上边已经说了是求到超平面的最近距离的点的距离最大的超平面,所以求距离是很重要的一步,根据点到平面的距离公式分子为|w*x+b|,因为分母是相同的,因此|w*x+b|能够相对的表示出距离的大小。y(向量)在此表示的是每一个特征向量的分类,而由上边已经知道,分类决策是求的符号的,所以能够肯定w*x+b与y的符号(相对应元素)是相同的,所以能够利用y(w*x+b)来表示分类的正确性和确信度,这就是函数间隔:
注:超平面关于特征空间的函数间隔是值全部特征向量到超平面的函数间隔中的最小值
(2)几何间隔
利用函数间隔来具体衡量时,会出现一个问题,当法向量和截距同时扩大两倍时,超平面不变,可是函数间隔却便为原来的两倍,所以引入几何间隔的概念,其实简单的来讲,几何间隔即是函数间隔除以法向量的模,具体公式以下:
同时由超平面关于特征空间的几何间隔是全部特征向量到超平面的几何间隔中的最小值
(3)支持向量
在线性可分的状况下,特征空间中距离分离超平面的距离最近的特征向量为支持向量
三、硬间隔最大化的求解方法
这里解释一下何为硬间隔最大化,这个是相对训练数据集或说特征空间来讲的,假如数据是彻底的线性可分的,则学习到的模型能够称为硬间隔支持向量机,除此以外还有软间隔支持向量机(近似线性可分),非线性支持向量机等,最终的目的都是为了求的w*,b*
(1)最大间隔法推导过程
根据以上的表述能够将求w*和b*归约到两个条件之上,首先求最大的关于特征空间的几何间隔,其次的约束条件为全部的几何间隔必须都大于关于特征空间的几何间隔,则约束最优化问题以下:
按照几何间隔与函数间隔的关系(都是关于超平面的),这个问题又能够以下表述:
在此能够将以上的式子进行优化,上边的第一个式子的分子(关于超平面函数间隔)会变化,而第二个式子不等号右边的(关于超平面函数间隔)也一样幅度变化,所以w与b也会一样幅度的变化,所以关于超平面的函数间隔变化不会影响上述的式子,所以能够利用1来代替。此时求max(1/||w||)与min(1/2*||w||)是同样的,一个在分母,一个在分子,至于为什么会取1/2*||w||^2,求导的时候好计算1/2*2=1,以下:
(2)学习的对偶算法
引入拉格朗日对偶性,经过求解对偶问题获得原始问题的最优解,这样作的优势:首先能够下降计算的难度,其次天然引入核函数(非线性可分数据的处理方式)利用拉格朗日对偶性能够构造等价对偶函数(更多请参考统计学习方法),以下:
此处由定理用于求w*和b*,以下:
所以根据上边的约束最优化问题便可求的拉格朗日算子,则可求的w*与b*