Hinge Loss

Hinge Loss

在机器学习中,hinge loss作为一个损失函数(loss function),通常被用于最大间隔算法(maximum-margin),而最大间隔算法又是SVM(支持向量机support vector machines)用到的重要算法(注意:SVM的学习算法有两种解释:1. 间隔最大化与拉格朗日对偶;2. Hinge Loss)。

Hinge loss专用于二分类问题,标签值\(y=\pm1\),预测值\(\hat y \in R\)。该二分类问题的目标函数的要求如下:

  • \(\hat y\)大于等于+1或者小于等于-1时,都是分类器确定的分类结果,此时的损失函数loss为0;
  • \(\hat y \in (-1, 1)\)当预测值时,分类器对分类结果不确定,loss不为0。
  • 显然,当\(\hat y=0\)时,loss达到最大值。

对于输出\(y=\pm1\),当前y^的损失为:

\[\ell(y) = \max(0, 1-y \cdot \hat y) \]

上式是Hinge loss在二分类问题的的变体,可以看做双向Hinge loss。难以理解的话,可以先看单方向的hinge loss。以\(y=\pm1\),为例。当y⩾1时,loss为0,否则loss线性增大。函数图像如下所示:

Hinge函数图像

Hinge loss在SVM中的应用

SVM在简单情况下(线性可分情况下)使用的就是一个最大间隔算法。几何意义如下图所示(实心的数据点就是该类别的支持向量),最大化分离超平面到两个类别的支持向量之间的距离 。

支持向量

线性可分SVM的预测值\(\hat y = w \cdot x + b\),其中w和b都是分类器通过样本学习到的参数。正如前面所说,\(\hat y \in R\)。如果分离超平面在如上图所示的位置(这是最大分割情况)并且支持向量与分割平面之间的距离=1,每个\(y=1\)的样本其\(\hat y \geqslant 1\),每个\(y=−1\)的样本其\(\hat y \leqslant -1\),每个点的Hinge loss为0,整体loss作为平均值,也等于0。 如果分割超平面误分类,则Hinge loss大于0。Hinge loss驱动分割超平面作出调整。 如果分割超平面距离支持向量的距离小于1,则Hinge loss大于0,且就算分离超平面满足最大间隔,Hinge loss仍大于0

拓展

再强调一下,使用Hinge loss的分类器的\(\hat y \in R\)\(|\hat y|\)越大,说明样本点离分割超平面越远,即该样本点很容易被分类。但是,我们在选择合适的损失函数进行优化时,没必要关注那些离超平面很远的样本。为此,我们可以通过对距分离超平面的距离选择一个阈值,来过滤这些离超平面很远的样本。这就是Hinge loss的精髓.
\(\ell(y) = \max(0, 1-y \cdot \hat y)\) 式中的1就是我们选择的阈值,这个可以作为一个超参数。通过一个max(0, )函数,忽略\(\hat y\)值过高的情况。

SVM

这个思想可以拓展到SVM的多分类问题。SVM的多分类有两种损失函数:

\[\ell (y)=\max(0,1+\max _{{\hat y\neq y}}{\mathbf {w}}_{\hat y}{\mathbf {x}}-{\mathbf {w}}_{y}{\mathbf {x}}) \]

其中,\(\max_{\hat y \neq y}(\mathbf w_ \hat y \mathbf x + \mathbf b)\)表示对于某一标签值\(y\),分类器错误预测的最大值,\(\mathbf w_y \mathbf x + \mathbf b\)表示正确的分类器预测值,1表示分类阈值。注意:即使是分类器,也是先产生预测值,再根据预测值和分类阈值进行分类的。

\[{\displaystyle \ell (y)=\sum _{t\neq y}\max(0,1+\mathbf {w} _{\hat y}\mathbf {x} -\mathbf {w} _{y}\mathbf {x} )} \]

其中,\(\mathbf {w} _{\hat y}\mathbf {x} + \mathbf b\)表示错误的分类器预测值,\(\mathbf w_y \mathbf x + \mathbf b\)表示正确的分类器预测值,1表示分类阈值。

优化

Hinge loss是一个凸函数(convex function),所以适用所有的机器学习凸优化方法。 虽然Hinge loss函数不可微,但我们可以求它的分段梯度:

\[{\frac {\partial \ell }{\partial w_{i}}}={\begin{cases}-y\cdot x_{i}&{\text{if }}y\cdot y<1\\0&{\text{otherwise}}\end{cases}} \]

这里,$ \hat y = w \cdot x + b\(, 预期输出\)y=\pm 1\(。 当然,Hinge loss的梯度在\)y \cdot \hat y=1$点处未定义。

然而,由于铰接损失在\(y \cdot \hat y=1\)处不可导, Zhang 建议在优化时可使用平滑的变体建议,[1] 如Rennie 和 Srebro 提出的分段平滑[2]:

\[\ell (\hat y)={\begin{cases}{\frac {1}{2}}-y \cdot \hat y&{\text{if}}~~y \cdot \hat y\leq 0,\\{\frac {1}{2}}(1-y \cdot \hat y)^{2}&{\text{if}}~~0<y \cdot \hat y\leq 1,\\0&{\text{if}}~~1\leq y \cdot \hat y\end{cases}} \]

或平方平滑。

\[\ell_\gamma( \hat y) = \begin{cases}\frac{1}{2\gamma} \max(0, 1 - y \cdot \hat y)^2 & \text{if} ~~ y \cdot \hat y \ge 1 - \gamma \\1 - \frac{\gamma}{2} - y \cdot \hat y & \text{otherwise}\end{cases} \]

Modified Huber loss \(L\)\(\gamma = 2\)时损失函数的特例,此时 \(L(y, \hat y) = 4 \ell_2(\hat y)\)中。

img

三个铰链损失的变体 \(z = y \cdot \hat y\):“普通变体”(蓝色),平方变体(绿色),以及 Rennie 和 Srebro 提出的分段平滑变体(红色)。

参考文献

1.Zhang, Tong. Solving large scale linear prediction problems using stochastic gradient descent algorithms (PDF). ICML. 2004.
2.Rennie, Jason D. M.; Srebro, Nathan. Loss Functions for Preference Levels: Regression with Discrete Ordered Labels (PDF). Proc. IJCAI. 2005
3.维基百科
4.Hinge loss

posted @ 2020-08-15 16:25  寒杰士  阅读(1135)  评论(0)    收藏  举报