【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、

目录

代码

回归问题的损失函数

分类问题的损失函数

1、 0-1损失 (zero-one loss)

2、Logistic loss

3、Hinge loss

4、指数损失(Exponential loss)

机器学习的损失函数

Cross Entropy Loss Function(交叉熵损失函数)

交叉熵优点

 Mean Squared Error (均方误差)

均方差不足

实例

​ 交叉熵求解损失:

 均方差函数求损失

学习过程

学习笔记

 参考文献


代码

损失函数的一般表示为L(y,f(x)),用以衡量真实值y和预测值f(x)之间不一致的程度,一般越小越好。为了便于不同损失函数的比较,常将其表示为单变量的函数,在回归问题中这个变量为yf(x),在分类问题中则为yf(x)。下面分别进行讨论。


 

回归问题的损失函数

回归问题中yf(x)皆为实数∈R,因此用残差 yf(x)来度量二者的不一致程度。残差 (的绝对值) 越大,则损失函数越大,学习出来的模型效果就越差(这里不考虑正则化问题)。

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第1张图片


其中最常用的是平方损失,然而其缺点是对于异常点会施以较大的惩罚,因而不够robust。如果有较多异常点,则绝对值损失表现较好,但绝对值损失的缺点是在yf(x)=0处不连续可导,因而不容易优化。
Huber损失是对二者的综合,当|yf(x)|小于一个事先指定的值δ时,变为平方损失,大于δ时,则变成类似于绝对值损失,因此也是比较robust的损失函数。三者的图形比较如下:

huber函数与smoothL1函数差不多

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第2张图片


分类问题的损失函数

对于二分类问题,y∈{−1,+1}

,损失函数常表示为关于yf(x)

的单调递减形式。如下图:

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第3张图片


 

yf(x)被称为margin,其作用类似于回归问题中的残差 yf(x)。
二分类问题中的分类规则通常为 sign(f(x))={+1ifyf(x)≥0−1ifyf(x)<0

可以看到如果 yf(x)>0,则样本分类正确,yf(x)<0 则分类错误,而相应的分类决策边界即为 f(x)=0

。所以最小化损失函数也可以看作是最大化 margin 的过程,任何合格的分类损失函数都应该对 margin<0 的样本施以较大的惩罚。

1、 0-1损失 (zero-one loss)

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第4张图片

0-1损失对每个错分类点都施以相同的惩罚,这样那些“错的离谱“ (即 margin→−∞)的点并不会收到大的关注,这在直觉上不是很合适。另外0-1损失不连续、非凸,优化困难,因而常使用其他的代理损失函数进行优化。

2、Logistic loss



 

3、Hinge loss

L( y, f( x))= m a x(0,1− y f( x))

hinge loss为svm中使用的损失函数,hinge loss使得yf(x)>1的样本损失皆为0,由此带来了稀疏解,使得svm仅通过少量的支持向量就能确定最终超平面。

hinge loss被翻译为“合页损失”,那么合页究竟长啥样?如图,确实有点像hinge loss的形状:

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第5张图片

4、指数损失(Exponential loss)

L( y, f( x))= ey f( x)

exponential loss为AdaBoost中使用的损失函数,使用exponential loss能比较方便地利用加法模型推导出AdaBoost算法 (具体推导过程)。然而其和squared loss一样,对异常点敏感,不够robust。

最后来张全家福:

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第6张图片

从上图可以看出上面介绍的这些损失函数都可以看作是0-1损失的单调连续近似函数,而因为这些损失函数通常是凸的连续函数,因此常用来代替0-1损失进行优化。它们的相同点是都随着margin→−∞

而加大惩罚;不同点在于,logistic loss和hinge loss都是线性增长,而exponential loss是以指数增长。

值得注意的是上图中modified huber loss的走向和exponential loss差不多,并不能看出其robust的属性。其实这和算法时间复杂度一样,成倍放大了之后才能体现出巨大差异:

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第7张图片

机器学习的损失函数

Cross Entropy Loss Function(交叉熵损失函数)

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第8张图片

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第9张图片

交叉熵优点

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第10张图片

 Mean Squared Error (均方误差)

均方差不足

实例

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第11张图片

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第12张图片 交叉熵求解损失:

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第13张图片

 均方差函数求损失

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第14张图片

学习过程

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第15张图片

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第16张图片

 4、根据损失函数进行梯度计算,反向传播更新参数,反复1-4

学习笔记

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第17张图片

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第18张图片

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、_第19张图片

 参考文献

https://zhuanlan.zhihu.com/p/35709485

常见回归和分类损失函数比较

你可能感兴趣的:(深度学习,深度学习,损失函数)