SVM hinge loss 解析导
机器学习
Standford cs231n 中,对于 SVM 的损失定义如下:
L=∑j≠ymax(0,δ+Wjx−Wyx)
解析导数推导过程找到了挫折,花费了很长时间,获得了求解技巧和经验。
(1)Wjx−Wyx 部分对于 Wk 的求导比较特殊,因为会因为 k=y 而不同,这点比较特殊。一开始脑回路打不开,其实求导只需要将其他部分(包括 Wj≠k)视为常量。但是 Wy 的偏导比较特殊,因为在多个求和子式中出现。
(2)max(0,y) 函数在 x=0 处不可导,虽然想得很复杂,但是现实中往往很简单,令其导数为 0 即可。
于是求导可得:
∂L∂Wj=⎧⎩⎨⎪⎪⎪⎪x∑k≠yx0j≠yj=yδ+Wjx−Wyx<=0
然而悲剧了,这推导存在错误。
∑k≠yx 是建立在
δ+Wjx−Wyx>0 的假设下的,因此,如果存在
k≠y 令
δ+Wjx−Wyx<=0,那么式子不再成立。