要想搞明白Hinge损失函数,不得不来讨论一下SVM(支持向量机)

SVM
支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,SVM的的学习策略就是间隔最大化。

SVM算法原理

SVM学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面

能够分类下列数据的超平面有很多个,但间隔最大的分离超平面是唯一的。

ssim损失 python svm hinge损失函数作用_ssim损失 python


几何间隔:

对于给定的数据集和超平面 wx+b=0 ,定义超平面关于样本点 (xi, yi) 的几何间隔为

ssim损失 python svm hinge损失函数作用_损失函数_02


几何间隔的最小值就是我们所谓的支持向量到超平面的距离

因此,SVM模型的求解最大分割超平面问题可以表示为以下带有约束的最优化问题

ssim损失 python svm hinge损失函数作用_损失函数_03


经各种变形采用凸优化求解,最后,对于任意训练样本,总有 α=0或者 yi(wxi+b)=1 。若 α=0,则该样本不会在最后求解模型参数的式子中出现。若α>0,则必有 yi(wxi+b)=1,所对应的样本点位于最大间隔边界上,是一个支持向量。这显示出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。以上这都是基于训练数据线性可分的条件下进行的。

但是实际情况下几乎不存在完全线性可分的数据,为了解决这个问题,引入了“软间隔”的概念,即允许某些点不满足约束

ssim损失 python svm hinge损失函数作用_损失函数_04


ssim损失 python svm hinge损失函数作用_数据集_05


ssim损失 python svm hinge损失函数作用_数据集_06


Hinge损失函数

表达式:

ssim损失 python svm hinge损失函数作用_数据集_07


函数特性如下:

ssim损失 python svm hinge损失函数作用_ssim损失 python_08


在svm中用来衡量样本不满足几何间隔约束的程度。其本质还是在衡量一种间隔。

因此,作为间隔衡量的问题变种就有很多,实际应用中不仅限于二分类,即可适用于多个场景。

间隔较远可以分类,间隔较近,可以用来衡量相似性。

比如衡量两个样本之间的距离:

ssim损失 python svm hinge损失函数作用_ssim损失 python_09