<暂时>:用作PPT使用
大纲
SVM有两个特色,分别是Hinge Loss和Kernel Method。两者加起来就是SVM。
Hinge Loss
机器学习大致分成三步,我们以二分类为例
第二步原本的loss function是:如果预测结果 g(x^n) 正确,则等于0。如果预测结果错误,则等于1 。把这些结果累加起来就是loss function 。但是这样的做法,loss function是不可微的,没法用GD来求解,因此我们需要更换损失函数。
再看眼这个式子,我们当然希望真实为1时,
f
(
x
)
f(x)
f(x)越大越好,越positive,同理,真实为-1时,
f
(
x
)
f(x)
f(x)越小越好
因此横坐标为两者
y
n
f
(
x
)
y_nf(x)
ynf(x)相乘,我们希望同号时两者相乘越大/小越好,所以原则上我们希望横轴越大,loss越小。
理想情况下,我们希望二者异号时loss=1,同号时loss=0,也就是黑色线,但这没法微分
- 其中红线为Square loss,当
y
^
n
\widehat{y}^n
y
n等于1时,
f
(
x
)
f(x)
f(x)也要尽量等于1,当
y
^
n
\widehat{y}^n
y
n等于-1时,
f
(
x
)
f(x)
f(x)也要尽量等于-1,因此,损失为预测值减去真实值的平方。但这个式子不合理,我们不希望
y
n
f
(
x
)
y ^ n f ( x )
ynf(x)同号时
f
(
x
)
f(x)
f(x)越大
l
o
s
s
loss
loss值越大.
- 蓝色线是sigmoid+square的loss
加入sigmoid后,我们希望 f ( x ) f(x) f(x)无限大,使得激活后趋近于1,同理,真实值若是负的,则 f ( x ) f(x) f(x)无限小,使得激活后趋近于0
- 绿色线为使用sigmoid函数加交叉熵,当
f
(
x
)
f(x)
f(x)无穷大且与真实值同号时,
l
o
s
s
loss
loss趋近于0,异号的时候,loss趋近于无穷大
相较于square loss,cross entropy坡度更陡 - Hinge loss
Loss取0和 1 − y n f ( x ) 1-y^nf(x) 1−ynf(x)的最大值
如图所示,当 y n y^n yn等于1或-1时, f ( x ) f(x) f(x)只有大于1或小于-1才能使 L o s s = 0 Loss=0 Loss=0,然而其实在 f ( x ) > 0 f(x)>0 f(x)>0或 f ( x ) < 0 f(x)<0 f(x)<0时就已经成功的进行了分类
所以,我们把 0 − 1 0-1 0−1这段距离称为margin,在这段期间Loss还会进行penalty
- 为什么选1,因为1是ideal loss的upper bound,就是二分查找第一个接近的数字
- HInge loss和cross entropy的比较:cross entropy在达到正确选择后还有Loss,做好之后还要更好,没有必要。
但实际中train的时候,两者的差别不大。
Linear SVM
- 整个Loss是一个凸函数,因此做GD时无论从哪个方向开始都会得到结果,但是他的损失函数存在不可导点
可以用Recall relu, maxout network等做GD
- 上图为SVM的梯度下降过程,使用hinge函数作为损失。