分类问题
在有监督学习中,损失函数刻画了模型和训练样本的匹配程度。假设训练样本的形式为,其中,表示第i个样本点的特征,,表示该样本点的标签。
那么对于一个二分类问题,,这样子最自然的损失函数是0-1损失。说白了也就是预测和真实一致时,函数取值为1,否则取值为0。但是这个函数非凸、非光滑,这使得我们很难对这个函数进行直接优化。但不可否认,它是一个很好的思路。
注:在下面所有的地方,我们用表示损失函数,用表示预测值,用表示真实值。
Hinge损失函数
Hinge损失函数是一个0-1损失的凸上界,通常用在"maximum-margin"的分类任务中,比如支持向量机。具体数学表达式如下:
其中表示预测值,但通常是软结果,比如输出不是0/1,而是0.87。
那么对应到上面的式子,如果:
- 时,损失为
- 时,则损失为0,也就是没有损失。
它的图像相比较0/1损失而言如下:
其中图像横轴表示,纵轴表示损失。很明显,图像在横轴为1,也就是这一点不可导。因此不能用梯度下降法进行优化,而要采用次梯度下降法。
参考链接:
Wikiwand Hinge loss
Logistic 损失函数
Logistic 损失函数也是一种0/1损失的代理损失函数,也是0/1损失函数的凸上界,其中数学表达式如下:
并且这个函数处处光滑,因此可以使用梯度下降法进行优化,但是这个损失函数对所有的样本点都进行惩罚,所以对异常点比较敏感。
交叉熵损失函数
这个损失函数用到的地方比较多,也是0/1损失函数的一个凸上界。数学表达式如下:
最后这四种损失函数在图像中显示如下:
回归问题
对于一个回归问题,我们希望我们预测出来的值能够尽量的接近真实的值。
最常用的实际上是平方损失。
注:在下面所有的地方,我们用表示损失函数,用表示预测值,用表示真实值。
平方损失
数学表达式也非常简单:
平方损失不仅较简单,而且可以用梯度下降进行优化,但是当预测值距离真实值较远时,平方损失函数的惩罚力度较大。故而它对异常点比较敏感。
绝对值损失函数
为了解决平方损失对异常点惩罚力度较大的问题,可以采用绝对损失函数。
数学表达式如下:
绝对损失函数相当于是在做中值回归,相比做均值回归的平方损失函数,绝对损失函数对异常点更鲁棒一些。但是,绝对损失函数在f=y处无法求导数。因而综合考虑可导性和异常点的鲁棒性,可以采用Huber损失函数。
Huber损失函数
Huber损失函数在较小时为平方损失,在较大时为线性损失,处处可导,且对异常点鲁棒。
三种函数的对比图如下:
网友评论