通俗讲解支持向量机SVM(三)非线性问题及软间隔之引出

点赞再看,养成习惯,您动动手指对原创作者意义非凡🤝
备战秋招面试 微信搜索公众号【TechGuide】关注更多新鲜好文和互联网大厂的笔经面经。
作者@TechGuide

当你的才华还撑不起你的野心时,你应该静下心去学习 。

前言

之前两篇文章我们解释了SVM作为线性模型的相关问题(还不理解的朋友可以点击文末链接阅读),如果你已经十分熟悉,那么这篇文章将会有新的内容,是关于SVM如何处理非线性的分类问题。这里我们引入硬间隔(Hard Margin)和软间隔(Soft Margin)的概念,之前我们讨论的分类问题是不允许有任何一个样本点被分类错误的,即间隔内是不能有样本点的,称为硬间隔。而软间隔则与之对应,允许一定量的错误分类,即允许一些样本点在我们“定义”的间隔内分布。

看到这里如果你有疑惑,请继续读下去,以下会有详细的说明。。

何谓非线性问题

前面我们讲到的都是线性可分的样本集,即可以用一条线(或超平面)将样本集划分成两类,但是在处理非线性问题,即不可用一条直线划分的样本集(如下图)时,如果我们想要严格的找到一个超平面分类下图中两种样本点,那么之前的优化问题将会无解,不存在这样的线性分类器。在这里插入图片描述

source:https://blog.csdn.net/guoziqing506/article/details/81120354

但是,如果我们考虑上左图样本点分布会发现,仿佛把“另类”的那个白点分类错(也就是分到黑点样本那一类),得到的分类效果和分类器应该更优,所以在处理一些非线性问题时,我们将划分的标准放宽反而会得到更好的效果,同时也使优化问题有解.

损失函数Hinge Loss的定义

如何放宽呢?我们引入一个损失函数loss,即把原优化问题的目标函数 Min   1 2 ω T ω \text{Min}\, \frac{1}{2} \omega^T\omega Min21ωTω改造为 Min   1 2 ω T ω + Loss (1) \text{Min}\, \frac{1}{2} \omega^T\omega + \text{Loss} \tag 1 Min21ωTω+Loss(1)。这样,我们允许在间隔内有一些样本点和一些错误分类的点,此之谓软间隔(Soft Margin)。
那么如何定义这个损失函数使其有解且能高效分类呢?这里我们有两点想法,最朴素的思想是从分错的点数来定义,分类错一个就增加一点loss,这样我们最小化这个loss就很合理。但是这样定义有一个问题,这样得到的loss函数是一个跳跃函数,非连续函数在优化问题中对求导会存在一些问题,为求简便,我们从距离的角度考虑,即点在间隔外loss为0,点在间隔内(分错的点)依据其与上图中的蓝线距离定义loss,最终得到如下定义:
L o s s = { if   y i ( ω T X + b ) ≥ 1 ,   = 0   ;      if   y i ( ω T X + b ) < 1   , = 1 − y i ( ω T X + b )   (2) Loss=\left\{ \begin{aligned} \text{if} \,y_i(\omega^TX+b) \geq 1,\,& = 0\,;\,\,\,\,\\ \text{if} \,y_i(\omega^TX+b) < 1\,,& = 1- y_i(\omega^TX+b)\, \end{aligned} \right.\tag 2 Loss={ifyi(ωTX+b)1,ifyi(ωTX+b)<1,=0;=1yi(ωTX+b)(2)
以上两式可以简化为 L o s s = Max { 0 , 1 − y i ( ω T X + b ) } (3) Loss= \text{Max} \left\{0,1- y_i(\omega^TX+b)\right\} \tag 3 Loss=Max{0,1yi(ωTX+b)}(3)
我们把上式即定义为Hinge Loss(外形像合页得名),可以画出它的图线加强记忆,由下图可以得到,它是一个凸函数,必然有极值。
在这里插入图片描述

改造优化问题及理解

这样我们可以把(1)式(结合(3)式)改为:
Min       1 2 ω T ω + C ∑ i = 1 N Max { 0 , 1 − y i ( ω T X + b ) } (4) \text{Min}\,\,\,\,\, \frac{1}{2} \omega^T\omega +C\sum_{i=1}^{N}\text{Max} \left\{0,1- y_i(\omega^TX+b)\right\} \tag 4 Min21ωTω+Ci=1NMax{0,1yi(ωTX+b)}(4)
但是,有没有觉得式子变得很复杂,不直观?所以我们接下来整理简化一下,引入松弛因子(slack variable) ζ i = 1 − y i ( ω T X + b ) \zeta_i=1- y_i(\omega^TX+b) ζi=1yi(ωTX+b),正如前面所说,我们是从距离的角度定义loss的,所以 ζ i ≥ 0 \zeta_i \geq 0 ζi0,它的约束条件相比于原约束问题 y i ( ω T X + b ) ≥ 1 y_i(\omega^TX+b) \geq 1 yi(ωTX+b)1只是加入了松弛因子 ζ i \zeta_i ζi,所以目标函数和约束条件化为:
Min       1 2 ω T ω + C ∑ i = 1 N ζ i (5) \text{Min}\,\,\,\,\, \frac{1}{2} \omega^T\omega +C\sum_{i=1}^{N} \zeta_i \tag 5 Min21ωTω+Ci=1Nζi(5)
Subject to: y i ( ω T X + b ) ≥ 1 − ζ i ,       ζ i ≥ 0 \text{Subject to:} y_i(\omega^TX+b) \geq 1-\zeta_i,\,\,\,\,\,\zeta_i \geq 0 Subject to:yi(ωTX+b)1ζi,ζi0
这样就得到一个简洁且物理意义明确的形式。

这里我们靴微停下来凝视一下,这个优化问题中如果 ζ i \zeta_i ζi足够大,约束条件肯定满足,那能不能无限大下去呢?不可以,我们目标函数就会最小化这个值 ζ i \zeta_i ζi,同时最大化margin,所以最优解将会得到一个合适的值。这里的 C ∑ i = 1 N ζ i C\sum_{i=1}^{N} \zeta_i Ci=1Nζi称为正则项(Regularization Term)。C的值是事先由经验确定的,它规定了目标函数值前后两项的比重,需要通过实验找到最适合的值。

你的鼓励是我创作的动力,如果你有收获,点个赞吧👍

我接下来还会陆续更新机器学习相关的学习笔记,补充这个系列。如果看到这里的话,说明你有认真看这篇文章,希望你能有所收获!最后,欢迎交流指正!

还有不明白的欢迎阅读其他文章:
通俗讲解支持向量机SVM(一)面试官:什么?线性模型你不会不清楚吧?
通俗讲解支持向量机SVM(二)另辟蹊径!对偶性的几何解释
通俗讲解支持向量机SVM(三)SVM处理非线性问题及软间隔之引出
通俗讲解支持向量机SVM(四)用尽洪荒之力把核函数与核技巧讲得明明白白(精华篇)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TechGuide

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值