台湾大学机器学习笔记——Soft-Margin 支持向量机

问题:接着第三讲的加核的支持向量机,如果现在有以下样本,按照左边的线性法,会有少部分样本点出现误判。但是之前讲的所有SVM问题中,我们都是要求所有的点都必须分正确,并且在分正确的情况下找出margin最大的情况,所以在很多场合下运用Hard-Margin SVM很容易出现过拟合。
台湾大学机器学习笔记——Soft-Margin 支持向量机_第1张图片
1.那么此时为了控制容忍错误的能力,我们将问题转化为下列式子:
台湾大学机器学习笔记——Soft-Margin 支持向量机_第2张图片
我们将pocket和hard-margin合起来,第一项为hard-margin中原有的,二莜面那一项意思是将所有翻的错误加起来,没犯错,值为0,犯错后值为1,条件则变成了当n点没犯错时,还是原来的要求,就是跟原标签的乘积大于等于1,对于犯错的点则没有要求,其中C代表我们容忍错误的能力,如果我们希望错误越少越好,那么C的值就可以定义的很大。则:
台湾大学机器学习笔记——Soft-Margin 支持向量机_第3张图片
2.那么现在的SVM问题并不是一个QP,二次规划的问题了,并且现在的式子并不能区分错误的大小。我们将错误定义为:ε_n,那么此时我们不在记录和惩罚错误的个数,而惩罚和记录错误的大小,然后将等式转化为:
台湾大学机器学习笔记——Soft-Margin 支持向量机_第4张图片
3.此时的问题就被转化为了一个QP问题,也可以带到二次规划里面进行计算。但是很明显跟前面讲过的一样,还是会存在特征维度过大,解二次规划问题很耗时的问题。所以我们还是需要将这个问题转化为拉格朗日对偶问题,将上式的条件转化到min中,则:
台湾大学机器学习笔记——Soft-Margin 支持向量机_第5张图片
4.再做括号内的min时,跟之前一样可以对ε_n求偏导,得出β_n=C-α_n,
这里写图片描述
5.那么我们可以求出α_n的范围,并且可以将β_n和ε_n全部拿掉,此时式子可以继续化简为:
这里写图片描述
6.此时的式子跟之前解得Hard-Margin的式子min部分一样,只是alpha多了一个上界C,同样我们能得到以下等式:
台湾大学机器学习笔记——Soft-Margin 支持向量机_第6张图片
然后继续化简,使之成为跟第二讲中讲到的一样,又成为了一个二次规划的QP问题,在这个问题中,不一样的是alpha有了上限:
台湾大学机器学习笔记——Soft-Margin 支持向量机_第7张图片
7.推导完对偶问题,继续进行加核。在上一个问题的求解中,唯一不一样的就是加上了upper bound,就是根据C得出的上限,求出最好的alpha后,接着就是求b,再接着求出最终的SVM的hypothsis。
台湾大学机器学习笔记——Soft-Margin 支持向量机_第8张图片
8.现在就来看第三步中的b怎么求,在hard-margin中大家很熟悉了,就是找出一个alpha大于0的点,也就是支持向量,通过这些点求出b。但是如果用相同的方法求soft-margin中的b,找出支持向量带入,得出b还是跟误差ε_n有关,那么怎么很容易的得出b呢,最想做的就是将ε_n那一项干掉,让ε_n等于0的话,那么alpha就必须小于C。即:
台湾大学机器学习笔记——Soft-Margin 支持向量机_第9张图片
那么我们通过free support vector就可以算出b的值:
台湾大学机器学习笔记——Soft-Margin 支持向量机_第10张图片
9.这些都是高斯核,拥有不同的C值做出的实验,所以C值的选择很重要,搞不好就会overfit:
台湾大学机器学习笔记——Soft-Margin 支持向量机_第11张图片
10.通过不同的alpha的值,我们可以给样本点分类:当alpha等于0的时候,ε_n就会等于0,所以代表并没有犯错的非支持向量的点,就是远在margin之外的那些点,图中圆形所示。当alpha大于0小于C的时候,ε_n还是会等于0,此时还是没有犯错误,所以此时的样本点为支持向量点,在边界Margin上,图中的正方形所示。当alpha等于C时,那么ε_n就会存在,它就表示了那些有误差,有犯错的点,图中的三角形所示。
台湾大学机器学习笔记——Soft-Margin 支持向量机_第12张图片

你可能感兴趣的:(机器学习,台湾,svm,机器学习算法)