常见损失函数

简介

机器学习算法的关键一环是模型评估,而损失函数定义了模型的评估指标;可以说,没有损失函数就无法求解模型参数。不同的损失函数优化难度不同,最终得到的模型参数也不同,针对具体的问题需要选取合适的损失函数。

常见损失函数曲线.png

损失函数汇总

分类问题 - 损失函数
0-1 损失

0-1损失是指预测值和目标值不相等为1,否则为0;
L(y, f(x)) = \begin{cases} 1, & y \neq f(x) \\ 0, & y = f(x) \end{cases}

  • 特点:
    (1)0-1损失能够直观地刻画分类的错误率,但是由于其非凸、非光滑的特点,使得算法很难直接对该函数进行优化;
    (2)感知机 就是用的这种损失函数;
Hinge 损失函数

Hinge损失函数标准形式如下:
L(y, f(x)) = max(0, 1 - yf(x))

  • 特点:
    (1)hinge损失函数表示如果被分类正确,损失函数为0,否则损失为1- yf(x)支持向量机(SVM) 使用的就是hinge loss;
    (2)hinge 损失函数在 yf(x) = 1 处不可导,因此不能用梯度下降法进行优化;
交叉熵损失

交叉熵损失函数标准形式:
L(y, f(x)) = - \left[ ylogf(x) + (1-y)log(1-f(x)) \right]

  • 特点:
    (1)本质上是一种对数似然函数,可用于二分类和多分类任务中;
    (2)交叉熵损失函数也是0-1损失函数的光滑凸上界;
    (3)逻辑回归 使用的就是交叉熵损失函数;
指数损失函数

L(y, f(x)) = exp[-yf(x)]

  • 特点:
    (1)对离群点、噪声非常敏感;常用在 AdaBoost算法 中。
回归问题 - 损失函数
平方损失函数

L(y, f(x)) = (y - f(x))^2

  • 特点:平方损失函数时光滑函数,能够用梯度下降法进行优化。然而,当预测值距离真实值越远时,平方损失函数的惩罚力度越大,因此它对异常点比较敏感。
绝对值损失

L(y, f(x)) = |y - f(x)|

  • 特点:相比于平方损失函数,绝对损失函数对异常点更鲁棒一些。但是,绝对损失函数在 y = f(x) 处无法求导。
Huber损失函数

L(y, f(x)) = \begin{cases} (y-f(x))^2, & |y-f(x)| \leq \delta \\ 2\delta |y-f(x)| - \delta^2, & |y-f(x)| > \delta \end{cases}

Huber损失函数.png
  • 特点:Huber损失函数在 |y-f(x)| 较小时为平方损失,在 |y-f(x)| 较大时为线性损失,处处可导,且对异常点鲁棒。

参考资料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。