关于核函数和SVM的几点思考

关于核函数和SVM中结构风险最小化的几点思考

今天了解了一些RBF径向基(高斯)核函数的问题,顺便又了解了一下SVM分类,从了解的情况来看我对核函数是什么,为什么要用核函数以及SVM里的结构风险最小化(Structure Risk Minimization,简称 SRM)也有了更加深入的了解。

核函数

首先,核函数是为了解决样本在低维不可分的问题而引入的,也就是将分类函数由非线性降为线性的过程,在这一过程中会新增一个內积计算的步骤,但是怎么解决呢,其实核函数主要是解决了一个內积计算的问题,也就是说将样本的特征构成的向量映射到高维之后要进行內积计算,那么我们就可以不用改变分类模型,直接使用低维向量作为输入,然后凡是遇到內积计算的时候就用核函数代替,这样就可以直接得到分类结果。

结构风险最小化

然后谈一谈SVM里的结构风险最小化这个概念,以前是不理解的,现在感觉对这一概念有了一些更清晰的认识,首先摆公式上来:

R(ω) ≤ Remp (ω)+ Φ(n/h) 公式1

这里R(ω)是期望误差,Remp (ω)是经验误差也就是训练误差,Φ(n/h)是置信范围,它是和样本数和VC维有关的。n是样本个数,h是VC维数。

这里训练误差我认为是可以控制的,当线性可分时,训练误差可以为0,当线性不可分时这里就有一个概念叫分类间隔,我们记为@,它和h有一个关系是:

h = f (1/@*@) 公式2

这里分类间隔越大,h越小,呈反比关系。

那么回到公式1,当我们控制经验误差也就是训练误差不变的情况下,看置信范围,置信范围表示经验风险和实际风险的差距,置信范围函数是个单调递减函数,也就是说:当h不变的情况下,n越大,置信范围越小,实际风险和经验风险差距越小,这个和实际理解也很吻合,也就是说拿来训练的样本数越多,训练的结果跟实际结果越靠近;反之,n越小,置信范围越大,实际风险和经验风险差距越大,也就越不靠谱。当n不变的情况下,VC维数h越大(机器学习的复杂性越大),置信范围越大,实际风险和经验风险差距越大,越不靠谱;反之,VC维数h越小,置信范围越小,实际风险和经验风险差距越小,越靠谱。也即,

在保证分类精度(经验风险)的同时,降低学习机器的 VC 维,可以使学习机器在整个样本集上的期望风险得到控制,这就是结构风险最小化(Structure Risk Minimization,简称 SRM)的由来。

那么问题就回到怎么降低学习机器的VC维数h上来了,我们接着看公式2,可以看出h是跟分类间隔成反比关系,也就是说分类间隔越大,h越小,那么怎么将分类间隔变大呢,这就是前面提到的在线性可分的情况下,能够找到分类误差为0的分类函数,但是在线性不可分的情况下,一定会存在错分样本,因此,我们的分类间隔的确定就要考虑在最小错分率的前提下达到最大的分类间隔(这里分类间隔可以简单理解为分类精度),这里又引入一个参数C,叫惩罚因子,其实可以理解为最小错分的权重,C越大,对错分惩罚越大,能保证一定的训练精度,但是就会降低模型的泛化能力;相反,C越小,惩罚越小,就不能保证训练精度,但是可以一定程度上提高模型的泛化能力。所以在实际运用的过程中,要选择合适的参数C。

你可能感兴趣的:(思考,知识点,总结)