SVM与Logistic回归

逻辑回归

h θ ( x ) = 1 1 + e − θ x h_\theta(x)= \dfrac1{1+e^{-\theta x}} hθ(x)=1+eθx1

如果y=1,则我们希望 h θ ( x ) ≈ 1 h_\theta(x) \approx1 hθ(x)1,则必须要 θ x ≫ 0 \theta x \gg0 θx0
如果y=0,则我们希望 h θ ( x ) ≈ 0 h_\theta(x) \approx0 hθ(x)0,则必须要 θ x ≪ 0 \theta x \ll0 θx0
在这里插入图片描述

逻辑回归的损失函数

单个样本的损失为:

l o s s = − ( y log ⁡ h θ ( x ) ) + ( 1 − y ) log ⁡ ( 1 − h θ ( x ) ) ) loss=-(y\log{h_\theta(x))}+(1-y)\log(1-h_\theta(x))) loss=(yloghθ(x))+(1y)log(1hθ(x)))
这个函数图像分为当y=1时和y=0时:
在这里插入图片描述
如果y=1,为试损失最小我们期望 z = θ x ≫ 0 z=\theta x \gg0 z=θx0
如果y=0,为使损失最小我们期望 θ x ≪ 0 \theta x \ll0 θx0

逻辑回归的损失函数

l o s s = 1 m ∑ i = 1 m − ( y i log ⁡ h θ ( x i ) ) + ( 1 − y i ) log ⁡ ( 1 − h θ ( x i ) ) ) + λ 2 m ∑ i = 1 n θ 2 loss=\dfrac 1 m \sum\limits_{i=1}^m{-(y^i\log{h_\theta(x^i))}+(1-y^i)\log(1-h_\theta(x^i)))}+\dfrac \lambda {2m}\sum\limits_{i=1}^n\theta^2 loss=m1i=1m(yiloghθ(xi))+(1yi)log(1hθ(xi)))+2mλi=1nθ2
其中m为样本个数,n为特征维数 y i y^i yi x i x^i xi分别代表第i个样本的标签和特征。 λ \lambda λ是正则化参数的权重

svm的损失函数

l o s s = C ∑ i = 1 m [ y i C o s t 1 ( θ x i ) + ( 1 − y i ) i C o s t 2 ( θ x i ) ] + ∑ i = 1 n θ 2 loss=C \sum\limits_{i=1}^m[{y^iCost_1(\theta x^i)+(1-y^i)iCost_2(\theta x^i)}]+\sum\limits_{i=1}^n\theta^2 loss=Ci=1m[yiCost1(θxi)+(1yi)iCost2(θxi)]+i=1nθ2

svm的损失函数对比逻辑回归的损失函数

对比逻辑回归的损失函数发现他们非常相似。上图的粉红色线即svm的算是函数曲线。
在两个函数中C,m, λ \lambda λ均为常数,svm的损失函数可以看做逻辑回归的损失函数的单个样本乘以
C ∗ m C*m Cm,正则化项乘以 2 C m λ \dfrac {2Cm} \lambda λ2Cm,乘以这些常数再求min的过程中并不会改变 θ \theta θ的解。所以我们说他们比较相似,简单来说就是逻辑回归把权重放在了正则化项上 ∑ i = 1 n θ 2 \sum\limits_{i=1}^n\theta^2 i=1nθ2,而SVM把权重放在了样本分类情况的损失项上。

损失函数的特性

C是常数,当C非常大是SVM更倾向于尽可能将样本全部分类正确
当C比较小是SVM更倾向于找出尽可能大的软间隔

svm为啥能使间隔最大化?

当y=1时

svm的损失函数简化为:
l o s s = C ∑ i = 1 m [ y i C o s t 1 ( θ x i ) ] + ∑ i = 1 n θ 2 loss=C \sum\limits_{i=1}^m[{y^iCost_1(\theta x^i)}]+\sum\limits_{i=1}^n\theta^2 loss=Ci=1m[yiCost1(θxi)]+i=1nθ2
图像大致如下:
在这里插入图片描述
我们不妨假设在训练时我们为了求min(loss)已经使 θ x i \theta x^i θxi>1,这样 C ∑ i = 1 m [ y i C o s t 1 ( θ x i ) ] = 0 C \sum\limits_{i=1}^m[{y^iCost_1(\theta x^i)}]=0 Ci=1m[yiCost1(θxi)]=0,损失函数继续被简化
l o s s = ∑ i = 1 n θ 2 loss=\sum\limits_{i=1}^n\theta^2 loss=i=1nθ2
s . t          θ x i > 1 s.t \space \space \space \space \space \space \space \space \theta x^i >1 s.t        θxi>1
不妨假设一下x是在二维空间空间上的点 ( x 1 , x 2 ) (x_1,x_2) (x1,x2), θ \theta θ ( θ 1 , θ 2 ) (\theta_1,\theta_2) (θ1,θ2)
在这里插入图片描述
可知 θ x i = p i ∣ ∣ θ ∣ ∣ \theta x^i=p^i||\theta|| θxi=piθ
p i p^i pi x i x^i xi θ \theta θ方向投影的长度, ∣ ∣ θ ∣ ∣ ||\theta|| θ θ \theta θ的长度。
(因为 θ \theta θ是直线的法向量, p i p^i pi即点到直线的距离)
现在对简化后的随时函数和条件进行变换
l o s s = ∑ i = 1 n θ 2 = θ 1 2 + θ 2 2 = ( θ 1 2 + θ 2 2   ) 2 = ∣ ∣ θ ∣ ∣ 2 \begin{aligned} loss &=\sum\limits_{i=1}^n\theta^2 \\ &=\theta_1^2+\theta_2^2 \\ &=(\sqrt{\theta_1^2+\theta_2^2} \space)^2\\ &=||\theta||^2 \end{aligned} loss=i=1nθ2=θ12+θ22=(θ12+θ22  )2=θ2
s . t          θ x i = p i ∣ ∣ θ ∣ ∣ > 1 s.t \space \space \space \space \space \space \space \space \theta x^i =p^i||\theta|| >1 s.t        θxi=piθ>1

现在结果变得清晰,为使loss最小,必然会使 ∣ ∣ θ ∣ ∣ ||\theta|| θ最小,由于 p i ∣ ∣ θ ∣ ∣ > 1 , p^i||\theta|| >1, piθ>1最小化 ∣ ∣ θ ∣ ∣ ||\theta|| θ必然会使 p i p^i pi最大才能满足条件。而 p i p^i pi正是点到分界线的距离。所以使得间隔最大化。

当y=0时,原理同y=1时

一图分割线没有二图的好
在这里插入图片描述

核函数

高斯核

f 1 = exp ⁡ ( − ∣ ∣ x − l 1 ∣ ∣ 2 2 σ 2 ) f_1=\exp ({-\dfrac {||x-l_1||^2} {2\sigma^2}} ) f1=exp(2σ2xl12)
高斯核实际上对原坐标点进行了一次求相似性的操作:
越近核的坐标越趋向于1,否则输出趋向于0

在这里插入图片描述

σ \sigma σ因子的影响

在这里插入图片描述

核函数不止有高斯核一种,但是高斯核最常用,随便构造核函数风险大

使用核函数后SVM的变换

未使用时

如果需要预测y=1,需要 ∑ θ i x i > 0 \sum \theta_ix_i >0 θixi>0

使用时

如果需要预测y=1,需要 ∑ θ i f i > 0 \sum \theta_if_i >0 θifi>0
注意: f i f_i fi表明每一维特征都可以用不同的核函数。

使用核函数后边界变化

在这里插入图片描述

使用情况

在Andrew Ng的机器学习视频中提到SVM和logistic回归的适用情形:
m是样本数,n是特征的数目
1、如果n相对于m来说很大,则使用logistic回归或者不带核函数的SVM(线性分类)
2、如果n很小,m的数量适中(n=1-1000,m=10-10000),使用带核函数的SVM算法
3、如果n很小,m很大(n=1-1000,m=50000+),增加更多的特征,然后使用logistic回归或者不带核函数的SVM。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值