美文网首页
常见损失函数

常见损失函数

作者: nlpming | 来源:发表于2020-08-23 11:07 被阅读0次

    简介

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

    常见损失函数曲线.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)| 较大时为线性损失,处处可导,且对异常点鲁棒。

    参考资料

    相关文章

      网友评论

          本文标题:常见损失函数

          本文链接:https://www.haomeiwen.com/subject/mgavjktx.html