支持向量机(SVM)推导

一、硬间隔支持向量机

        1.基于线性可分训练集D找到一个划分超平面支持向量机(SVM)推导,使超平面能够将不同类别样本分开。

        2.对于不同类别样本,令支持向量机(SVM)推导,仅有几个距离超平面最近的点使得等号成立。通过先调整b能使得超平面恰好在两个异类支持向量各产生一个平行超平面中间。取支持向量机(SVM)推导只是为了后面方便计算,其他常量也可以,只是相当于按比例放缩w和b,因为是依据w、b优化间隔最大,所以w、b的放缩对整体不影响。

支持向量机(SVM)推导

        于是两个异类支持向量到超平面的距离之和为支持向量机(SVM)推导,被称为间隔。

        3.目标:最大化间隔,目标函数:支持向量机(SVM)推导,等价于支持向量机(SVM)推导

          这就是SVM原始问题。

        4.对基本型使用拉格朗日乘子法:得到拉格朗日函数:支持向量机(SVM)推导

          该拉格朗日函数对w和b进行求导并等于0,得到:支持向量机(SVM)推导支持向量机(SVM)推导

          对偶问题就是(根据拉格朗日对偶性):支持向量机(SVM)推导

          再将上面求导结果带入,可得对偶问题:支持向量机(SVM)推导,                                                                                                                                 支持向量机(SVM)推导

        5.解出支持向量机(SVM)推导后,求出w和b即可得到模型:支持向量机(SVM)推导

          根据拉格朗日对偶性定理,对满足原始问题和对偶问题中的支持向量机(SVM)推导和x,需要满足KKT条件:

支持向量机(SVM)推导

          可以发现:对任意的训练样本支持向量机(SVM)推导,总有支持向量机(SVM)推导支持向量机(SVM)推导,若支持向量机(SVM)推导,则不会在求和求w中出现,也就不会对支持向量机(SVM)推导有任何影响,若支持向量机(SVM)推导,则必有支持向量机(SVM)推导,所对应的样本点在最大间隔上,是一个支持向量。这显示支持向量机的一个重要属性:训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关。(此步和求解最终结果无关)

        6.具体求解对偶问题。这是一个二次规划问题,使用SMO高效算法来求解。

          SMO不断执行如下两个步骤直至收敛:

                1.选取一对需要更新的变量支持向量机(SVM)推导

                2.固定支持向量机(SVM)推导以外的参数,求解4中对偶问题等式方程。

          选取支持向量机(SVM)推导时的技巧:使选取两变量所对应样本之间的间隔最大,这样的两个变量有很大的差别,与对两个相似的变量进行更新相比,对它们更新会带给目标函数更大的变化。

          具体:约束可重写为:支持向量机(SVM)推导,其中支持向量机(SVM)推导

                    再用支持向量机(SVM)推导消去对偶问题方程中的支持向量机(SVM)推导,则得到一个关于变量支持向量机(SVM)推导的单变量二次规划问题,这样的二次规划具有闭式解,可高效计算出更新后的支持向量机(SVM)推导

            7.w的确定把求出的支持向量机(SVM)推导带入可求出

               b的确定:注意到对任意的支持向量支持向量机(SVM)推导都有支持向量机(SVM)推导,即支持向量机(SVM)推导,其中S为支持向量集。可根据使用所有支持向量求解平均值:支持向量机(SVM)推导

二、核函数

        前面的求解基于一个最基本的条件:训练数据集线性可分。

        但当数据集并非线性可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间中线性可分。根据定理:如果原始空间是有限维,那么一定存在一个高维空间使得样本可分。

        令支持向量机(SVM)推导表示将x映射后的特征向量,则在特征空间中划分超平面所对应的模型表示为:支持向量机(SVM)推导

        类似地,SVM基本型问题:支持向量机(SVM)推导

        对偶问题:支持向量机(SVM)推导

                        支持向量机(SVM)推导

        直接计算支持向量机(SVM)推导通常比较困难,可设想这样一个函数:支持向量机(SVM)推导,这个函数就是核函数,这种处理叫做核技巧。将向量内积的计算转换为一个函数式的计算,简化计算复杂性。

        求解后可得到:支持向量机(SVM)推导

        下面核函数的选择成为了支持向量机的最大变数,常用的核函数有:

支持向量机(SVM)推导

                            高斯核也称为RBF核函数(径向基和函数)

        此外,核函数也可以通过组合得到:

                1.若支持向量机(SVM)推导是核函数,则对于任意的正数支持向量机(SVM)推导,其线性组合:支持向量机(SVM)推导也是核函数。

                2.支持向量机(SVM)推导是核函数,则核函数的直积支持向量机(SVM)推导也是核函数。

                3.若支持向量机(SVM)推导是核函数,则对于任意的函数支持向量机(SVM)推导,支持向量机(SVM)推导也是核函数。

三、软间隔支持向量机

        在现实任务中往往很难弄确定合适的核函数使得训练样本在特征空间中线性可分,即是确定了某个核函数,也很难确定这个线性可分的结果是否是由于过拟合造成的,因此:允许支持向量机在一些样本上出错,即引入软间隔,使得某些样本不满足约束:支持向量机(SVM)推导.

        注:软支持向量机使用的是hinge损失:支持向量机(SVM)推导

        1.即可引入一个松弛变量支持向量机(SVM)推导,使得函数间隔加上松弛变量大于等于1,约束条件就变为支持向量机(SVM)推导

          同时对每个松弛变量支持向量机(SVM)推导,要支付一定的代价,SVM原始问题就变为:

                支持向量机(SVM)推导

                支持向量机(SVM)推导

        2.将原始问题转化为拉格朗日函数:

        支持向量机(SVM)推导

        其中支持向量机(SVM)推导是拉格朗日乘子。

        拉格朗日函数对支持向量机(SVM)推导求偏导得零,可得:

                                                                    支持向量机(SVM)推导

        3.将上述偏导为0的条件带入拉格朗日函数中,即可得到对偶问题:

        支持向量机(SVM)推导

        支持向量机(SVM)推导

        注:小于等于C是从求偏导第三个式子和支持向量机(SVM)推导得到。

        4.对于软间隔支持向量机,KKT条件为:

            支持向量机(SVM)推导

        KKT条件说明:

                       1.若支持向量机(SVM)推导,则对应的该样本对f(x)没有影响。

                       2.若支持向量机(SVM)推导,则必有支持向量机(SVM)推导,则该样本是支持向量(只要不满足支持向量机(SVM)推导的点都是支持向量):

                                      若支持向量机(SVM)推导,则支持向量机(SVM)推导,进而有支持向量机(SVM)推导,则该样本恰在最大间隔边界上。

                                      若支持向量机(SVM)推导,则支持向量机(SVM)推导,此时若支持向量机(SVM)推导,则该样本落在最大间隔内部,若支持向量机(SVM)推导,则该样本被错误分类。