机器学习7:SVM(支持向量机)

本文详细介绍了支持向量机(SVM)的基本原理,包括优化目标、大间距分类器的概念。解释了SVM如何通过最大化决策边界的间距来避免过拟合,并探讨了核函数的作用,尤其是高斯核函数。此外,还讨论了SVM的使用场景和参数选择,如C和σ的设定,以及特征缩放的重要性。
摘要由CSDN通过智能技术生成

优化目标

  • 对于逻辑回归的假设函数而言,在y=1的情况下,我们希望假设函数约等于1,且z远大于0;在y=0的情况下,我们希望假设函数约等于0,且z远小于0。

  • 对于支持向量机,则希望在y=1的情况下,z大于等于0,;在y=0的情况下,z取其他值(小于0)

  • 对于逻辑回归的代价函数,其中的 l o g h θ ( x ) logh_\theta(x) loghθ(x)替代为 c o s t 1 ( z ) cost_1(z) cost1(z),这两个函数的图如下:
    在这里插入图片描述
    其中的 l o g ( 1 − h θ ( x ) ) log(1-h_\theta(x)) log(1hθ(x))替代为 c o s t 0 ( z ) cost_0(z) cost0(z),这两个函数的图如下:
    在这里插入图片描述

也就是说,在y=1的情况下,目标函数需要z大于等于1;在y=0的情况下,目标函数需要z小于等于-1。

  • 对于支持向量机的代价函数而言,如上所述替代后,再去掉m项,将 λ \lambda λ用C代替( C = 1 λ C=\frac{1}{\lambda} C=λ1),如下所示:
    在这里插入图片描述

大间距分类器

如上所述,在y=1的情况下,目标函数需要z大于等于1;在y=0的情况下,目标函数需要z小于等于-1。

也就是说,对于决策边界(z=0)而言,与训练样本的距离尽量保持在1以上,因此会纠正过拟合的问题,取分类两组数据的中间,与双方保持一定距离的线为边界,如下方的margin(圆圈和红叉表示两种类型的样本):在这里插入图片描述

但是如果C取值过大,也即 λ \lambda λ的值过小,即便采用上述算法还是会容易过拟合,如下:
在这里插入图片描述

数学原理

目标函数中,有该项 m i n θ 1 2 ∑ j = 1 n θ j 2 min_\theta\frac{1}{2}\sum_{j=1}^n\theta_j^2 minθ21j=1nθj2,也即等同于求向量 θ \theta θ的长度平方的二分之一: 1 2 ∣ θ ∣ 2 \frac{1}{2}|\theta|^2 21θ2

因此,在决定决策边界时,如果如下图所示( θ T x ( i ) \theta^Tx^{(i)} θTx(i),相当于两个向量的内积):
在这里插入图片描述
由于上图所示,样本 x ( i ) x^{(i)} x(i)投影到向量 θ \theta θ(注意的是,向量 θ \theta θ与决策边界垂直,因为与决策边界的内积z为0)上的值p较小,而为了与p值相乘大于等于1或小于等于-1,就会导致 ∣ θ ∣ |\theta| θ的值较大,不符合目标函数的预期。

如果如下图所示:
在这里插入图片描述

那么,样本投影到向量 θ \theta θ上得到的值p较大,同理,可知,能使 ∣ θ ∣ |\theta| θ的值较小,符合目标函数的预期。

核函数一

对于非线性边界如下图所示的,在逻辑回归中通常采用多项式构造特征: x 1 、 x 1 2 、 x 1 x 2 、 . . . . . . x_1、x_1^2、x_1x_2、...... x1x12x1x2......
在这里插入图片描述
而如果采用支持向量机这一算法,那就要将 x i x_i xi替代为 f i f_i fi
f i f_i fi的定义如下:
f i = e x p ( − ∣ x − l ( i ) ∣ 2 2 σ 2 ) = e x p ( − ∑ j = 1 n ( x j − l j ( i ) ) 2 2 σ 2 ) f_i=exp(-\frac{|x-l^{(i)}|^2}{2\sigma^2})=exp(-\frac{\sum_{j=1}^n(x_j-l^{(i)}_j)^2}{2\sigma^2}) fi=exp(2σ2xl(i)2)=exp(2σ2j=1n(xjlj(i))2)
其中的 x x x为输入特征, l ( i ) l^{(i)} l(i)为下图中的点(可表示为长度为特征数目n的向量):
在这里插入图片描述
f i f_i fi的性质有:如果 x = l ( i ) x=l^{(i)} x=l(i),则 f i = 1 f_i=1 fi=1;如果如果 x x x l ( i ) l^{(i)} l(i)相差过大,则 f i ≈ 0 f_i\approx0 fi0

f i f_i fi中的 σ \sigma σ过小时,容易低偏差,高方差,过大时容易高偏差,低方差,当 f i = [ 3 5 ] f_i={3\brack 5} fi=[53]时, f i f_i fi的图像如下:
在这里插入图片描述

θ 0 + θ 1 f 1 + θ 2 f 2 + θ 3 f 3 ≥ 0 \theta_0+\theta_1f_1+\theta_2f_2+\theta_3f_3\ge0 θ0+θ1f1+θ2f2+θ3f30时,y=1。

核函数二

在这里插入图片描述
如上图所示,将训练集 x ( i ) x^{(i)} x(i)作为 l ( i ) l^{(i)} l(i),所以参数f是m+1维向量(包括 f 0 f_0 f0)。

代价函数:
在这里插入图片描述

使用

  • 需要制定C( 1 λ \frac{1}{\lambda} λ1)和 σ \sigma σ。但是线性核函数(大间距分类器)不用,上面的核函数一和核函数二指的是高斯核函数。

  • 需要对x进行特征缩放或均值归一化,因为涉及平方,数据较大。

  • 其他核函数: k ( x , l ) = ( x T l ) 2 , ( x T l ) 3 , ( x T l + 1 ) 3 , . . . k(x,l)=(x^Tl)^2,(x^Tl)^3,(x^Tl+1)^3,... k(x,l)=(xTl)2,(xTl)3,(xTl+1)3,...
    在这里插入图片描述

  • 对于多分类问题,可以像逻辑回归一样,训练多个分类器,一一分类即可。

  • 如果特征数目比样本数量多(比如文本处理),则应该用线性核函数(大间距分类器)或逻辑回归,否则,应该用高斯核函数。
    但是,如果样本数量特别多,比如样本数量50w以上,特征数目1k左右,则应当增加特征(多项式或额外特征),然后再用线性核函数(大间距分类器)或逻辑回归(因为在样本数量多的情况下,简单的算法反而比高级算法性能好)

  • 神经网络可以应用于上述大部分情况,不过运算量较大,可能处理过慢

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值