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^