一、最大间隔分类与SVM模型
以下分类面都能把数据分开,但无疑最右边的分类面是最好的,它能对测试样本具有较好的鲁棒性
由图可以看出,最右侧样本数据与分类面具有最大的距离,那么怎么保证分类面与训练数据之间有最大间隔呢?这就引出了SVM模型,怎么到的SVM模型?从逻辑回归开始
我们已经知道逻辑回归的假设函数和它的图像
若分类为y=1,我们想要的理想情况是远远大于0,这样就能保证
很接近于1,类似的分类为y=0,我们想要的理想情况是
远远小于0,这样就能保证
很接近于0
那么样本的代价函数就为
则对于样本分类y=1与y=0的代价函数图分别如上图左右所示(蓝线),对上图蓝色曲线做逼近,当大于1与小于-1时代价函数值为0,如上图紫色曲线,作为样本分类y=1与y=0的新代价函数,则将其代替逻辑回归的代价函数可得SVM的总体的代价函数为
其中C为正则化项,等于1/λ,当我们要求分类y=1时远远大于1,分类y=-1时
远远小于-1,加入这两个约束条件,这样分类的代价函数值就为0,则代价函数的优化问题就变为了
由此,优化所得到的=0,就为分类界面,预测时假设函数为
,而不是要求
大于1,
大于1是训练时要保证最大间隔的分类的约束条件
但是加入这样的约束条件之后,怎么就能保证得到的分类面为最大间隔?首先让我们看一下两个向量的内积
有两个向量u和v
,
则他们在几何坐标上的投影如图所示
向量u和v的内积等于,v在u上的投影p乘以u的欧几里德范数(等于模的长度),向量u的欧几里德范数为
则两向量的内积为
由于p为v在u上的投影,所以p是有方向的,相对与u来说有正负之分,当v和u的夹角大于90°时,投影p就为负,即两向量v和u的内积就为负
目光转到SVM的代价函数的优化问题上
其中最小化的项可化为
而对于约束条件来说,类别向量v和u,等同于向量x在向量θ上的投影p,乘以向量θ的长度
则代价函数的优化问题就可变为
由于向量θ为决策边界的法向量,则对于不同的决策边界,样本特征向量x到向量θ的投影如下所示
当决策边界距离样本数据很近时,样本到θ向量的投影p的长度就会很小,由于约束条件和
,当p的长度很小时
必定要增大才能满足约束条件,但这和最小化
相违背,最终要调整θ,进而调整决策边界
当决策边界距离样本数据很远时,样本到θ向量的投影p的长度就会很大,当p的长度很大时,在满足约束条件的情况下的值就会减小,这和最小化
的目标一致,所以有约束条件的存在,SVM可以做到最大间距分类。
对于正则化项C的解释,由于C与数据样本的代价相乘,当C取值很大时,如果有样本点分类有错误,则代价值就不再为0,就会有代价值产生,由于C的值很大,就算有很少的样本数据犯错,相乘以后代价函数也会得到很大,这与最小化代价函数的目标不符合,所以几乎就不允许样本犯错,为了拟合几乎是所有的数据,这样得出来的模型就会比较复杂,很容易发生过拟合,即正则化的力度较小;相反,当C取值较小时,当样本数据有犯错点,所得到的代价值与C相乘后不会很大,即最终的代价函数也不会很大,允许样本数据犯一些错误,忽略一些数据的拟合,这样得到的模型就相对简单,不容易发生过拟合,即正则化的力度较大
支持向量机的另一种解释方法:
假设已经有一个分类平面,可以把数据完美的分开,假设这个分类平面的假设函数为,分类面上的点x'和x''代入假设函数中可以得到
,
,样本点x到平面的距离表示为
,由于分类平面把样本的分类正确,则可得
,去掉距离公式的绝对值可得
,要保证最大化分类间隔,则需要距离分类面最近的样本点的距离最大,即
,放宽约束条件,由原来的
改变为样本点最小的约束为
,则约束条件变为
,样本点最近的距离变为
,现在目的是使这个距离最大,求导数之后则变为目标最小化
,即SVM的最终优化目标为
二、核函数
上述SVM是线性的分类,若应用到非线性分类,则需要设计特征的多项式,然后从X空间映射到Z空间,这样优化目标就变为了
,由于映射到高维度的空间,这样一来特征向量就变得很大,计算量比较复杂,能不能消除高维度的影响,只让优化目标和约束条件的个数有关?引入拉格朗日函数条件,
,优化目标变为
,利用对偶性质,优化目标变为
,求解里面的最小化问题,则就对里面的公式中各项参数进行求导,导数等于0的点则为最小值的点,对参数b进行求导
,可得
,代入上述优化目标函数可得
,去掉截距常数项b可得优化目标函数为
,对权重参数w进行求导可得
则权重参数w可表示为
,将之代入上述优化目标可得
,合并同类项并代入
可得,
,取负号变为最小化优化目标可得
,约束条件变为仅和
有关的项
,用二次规划求得
,进一步可知
,
但这些计算仍然与投影空间Z的特征向量维度有关,若维度较高计算量仍然复杂,怎么避免高维空间投影带来的计算量增加?引入核函数的概念
上述目标优化函数中,特征转化的形式为,先转换到高维空间,然后高维空间之间再做内积,计算量很大,能不能将这两个步骤合起来计算?
以转换特征向量x投影到二次多项式空间为例,转化后的特征向量为
两个转化后的向量做内积可表示为
,等同于原向量的内积与原向量内积的平方之和
把这样的转换计算叫做核函数,即原特征向量的高维投影特征向量的内积可以用原特征向量的某些形式表示
这样上述目标优化函数中的矩阵可表示为,所求得的截距常数项b可表示为
,假设函数的分类超平面可表示为
由于两个特征向量越相似,其内积就越大,核函数为两个向量的内积,所以其意义为两个向量的相似度,对于测试样本来说,它与训练样本的核函数计算结果表示了它与训练样本之间的相似度,测试样本与训练样本的相似度越高,说明测试样本的分类类别就越与训练样本接近,常用的核函数有多项式核函数和高斯核函数
多项式核函数的一般形式为,参数
与Q的取值对模型复杂度的影响如下图所示
由图可知,参数与Q越大最终得到的分类模型越复杂,就越容易发生过拟合
高斯核函数可以把原特征向量投影到无限维度的空间中,公式推导如下
,对最后一项进行泰勒级数展开可得核函数K(X,X')
,拆开之后得到核函数K(X,X')
,其中原特征向量x的转化为
,这样就表示原特征向量转化到了无限维的空间中
则高斯核函数可以表示为,参数
与
的取值对模型复杂度的影响如下图所示
可知,参数越大模型复杂度越高,越容易发生过拟合
而对于参数而言,若
取值较大则样本之间的相似度变化就比较平缓
,模型就会有高偏差和低方差,即模型复杂度降低,可能有欠拟合发生
若取值较小则样本之间的相似度变化就比较剧烈
,模型就会有低偏差和高方差,即模型复杂度升高,可能有过拟合发生