机器学习系列25-支持向量机

Support Vector Machine

支持向量机(SVM)有两个特点:SVM=铰链损失(Hinge Loss)+核技巧(Kernel Method)

注:建议先看这篇博客了解SVM基础知识后再看本文的分析

Hinge Loss
Binary Classification

先回顾一下二元分类的做法,为了方便后续推导,这里定义data的标签为-1和+1

  • f ( x ) > 0 f(x)>0 f(x)>0时, g ( x ) = 1 g(x)=1 g(x)=1,表示属于第一类别;当 f ( x ) < 0 f(x)<0 f(x)<0时, g ( x ) = − 1 g(x)=-1 g(x)=1,表示属于第二类别

  • 原本用 ∑ δ ( g ( x n ) ≠ y ^ n ) \sum \delta(g(x^n)\ne \hat y^n) δ(g(xn)=y^n),不匹配的样本点个数,来描述loss function,其中 δ = 1 \delta=1 δ=1表示 x x x y ^ \hat y y^相匹配,反之 δ = 0 \delta=0 δ=0,但这个式子不可微分,无法使用梯度下降法更新参数

    因此使用近似的可微分的 l ( f ( x n ) , y ^ n ) l(f(x^n),\hat y^n) l(f(xn),y^n)来表示损失函数

下图中,横坐标为 y ^ n f ( x ) \hat y^n f(x) y^nf(x),我们希望横坐标越大越好:

  • y ^ n > 0 \hat y^n>0 y^n>0时,希望 f ( x ) f(x) f(x)越正越好
  • y ^ n < 0 \hat y^n<0 y^n<0时,希望 f ( x ) f(x) f(x)越负越好

纵坐标是loss,原则上,当横坐标 y ^ n f ( x ) \hat y^n f(x) y^nf(x)越大的时候,纵坐标loss要越小,横坐标越小,纵坐标loss要越大

ideal loss

L ( f ) = ∑ n δ ( g ( x n ) ≠ y ^ n ) L(f)=\sum\limits_n \delta(g(x^n)\ne \hat y^n) L(f)=nδ(g(xn)=y^n)的理想情况下,如果 y ^ n f ( x ) > 0 \hat y^n f(x)>0 y^nf(x)>0,则loss=0,如果 y ^ n f ( x ) < 0 \hat y^n f(x)<0 y^nf(x)<0,则loss=1,如下图中加粗的黑线所示,可以看出该曲线是无法微分的,因此我们要另一条近似的曲线来替代该损失函数

square loss

下图中的红色曲线代表了square loss的损失函数: l ( f ( x n ) , y ^ n ) = ( y ^ n f ( x n ) − 1 ) 2 l(f(x^n),\hat y^n)=(\hat y^n f(x^n)-1)^2 l(f(xn),y^n)=(y^nf(xn)1)2

  • y ^ n = 1 \hat y^n=1 y^n=1时, f ( x ) f(x) f(x)与1越接近越好,此时损失函数化简为 ( f ( x n ) − 1 ) 2 (f(x^n)-1)^2 (f(xn)1)2
  • y ^ n = − 1 \hat y^n=-1 y^n=1时, f ( x ) f(x) f(x)与-1越接近越好,此时损失函数化简为 ( f ( x n ) + 1 ) 2 (f(x^n)+1)^2 (f(xn)+1)2
  • 但实际上整条曲线是不合理的,它会使得 y ^ n f ( x ) \hat y^n f(x) y^nf(x)很大的时候有一个更大的loss
sigmoid+square loss

此外蓝线代表sigmoid+square loss的损失函数: l ( f ( x n ) , y ^ n ) = ( σ ( y ^ n f ( x n ) ) − 1 ) 2 l(f(x^n),\hat y^n)=(\sigma(\hat y^n f(x^n))-1)^2 l(f(xn),y^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值