————— Hinge Loss 定义 —————
Hinge Loss 主要针对要求”maximum-margin”的分类问题,因此尤其适用于SVM分类。
Hinge Loss的定义如下:
\(l(y) = max(0,1-t\cdot y)\)
其中, \(t=\pm1\) , 需要注意的是 \(y\) 并不是分类的label,而只是决策函数的输出。例如在线性SVM中, \(y=wx+b\), \(x\) 是待分类点, \(w\) 和 \(b\) 构成分类超平面。
从定义可以很容易看出,当 \(t\) 和 \(y\) 符号一致(表示 \(y\) 分类正确) 且 \(\Vert y\Vert \ge 1\) 时Hinge Loss \(l(y)=0\); 当符号不一致时,\(l(y)=0\) 随 \(y\) 线性增加。
———— caffe中如何定义Hinge Loss ————
caffe中定义与上面的介绍有些相反的地方,下面具体介绍caffe中具体是怎样实现的。
caffe提供了 L1 和 L2 两种Hinge Loss,即
\(l(y) = \Vert H\Vert_1 \) 和 \(l(y) = \Vert H\Vert_2 \)
其中
\(H_i = max(0,1+t\cdot y), \quad if\ \ i=label,\ 则t=-1; \quad 否则 \ t=1\)
下面举例说明,caffe中是如何计算多分类的Hinge Loss的:
比如我们要分5类,下表是分类器的5个输出,已知label=3.
ID | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
y | -1.73 | -1.24 | 0.89 | -0.99 | 0.05 |
t | 1 | 1 | -1 | 1</ |