机器学习技法(4)--Soft-Margin Support Vector Machine

即便是有了margin的控制,SVM还是会有overfit。

如果我们坚持严格地将数据分开,那我们就免不了连noise一起算进去,这样就产生了过拟合。

和之前pocket的算法类似,我们可以不那么坚持严格地分界线。我们可以容忍一些错误,退而求其次,找一条犯错误最小的分类线。

所以:

最佳化的式子前半部分代表找个越短越好的w,后半部分代表犯的错误越少越好。

C这个参数是margin和noise tolerance的trade off。

将式子整理以下:

目前解上面的式子有两个困难的地方:

布尔问题没有办法最佳化NP Hard;

没有办法衡量小错误和大错误。

为了解决错误大小的问题,引入新变量ξn用来记录错误,1–ξn用来记录错误的大小(1是我们想要的值)。这样的话,通过衡量错误的大小来替代True or False的布尔型最佳化问题。

C控制着我们的margin。

还是用拉格朗日对偶来解决:

通过对ξn做偏微分,进行第一步的简化:

于是得到,ξn也顺带着消除了:

继续简化,分别对b和w做偏微分:

得到:

继续用QP程序来解就行了。

soft的kernel:

和之前比较,q多了一些上限,b的算法可能不同了。

类比之前的b的解法(complementary slackness),也可以求解出b:

如果没有free SV的话,b就是一个范围而不是一个固定的解。

上图讲述了free SV和bounded SV的区别。

总结:

 

posted @ 2016-09-29 21:45  cyoutetsu  阅读(257)  评论(0编辑  收藏  举报