美文网首页
损失函数

损失函数

作者: 南国_ | 来源:发表于2021-03-02 20:54 被阅读0次
  • 损失函数定义:
     在深度学习中, 损失函数是用来衡量一组参数的质量的函数, 衡量的方式是比较网络输出和真实输出的差异。

  • 损失函数训练过程:
     一般使用梯度下降法:试图找到一组参数使得损失函数的值越小越好,参数(大小和方向)的调整取决于损失函数相对于参数的偏导数。

1.回归任务的损失函数

 网络输出是一个连续的数值。
 常用的损失函数为:绝对值误差, 平方差。

1)绝对值误差
 绝对误差函数是非常直观的损失函数。
\mathit{L} = \frac{1}{n}\sum_{i=1}^{n}\left | y_{i} - f_{\theta }\left ( x_{i} \right ) \right |

绝对值误差.png

 ○ 得到的解会比较稀疏:因而在高纬任务中表现比较好、预测速度快
 ○ 对异常值不敏感

2)方差函数
 是回归任务中最常用的损失函数。
\mathit{L} = \frac{1}{n}\sum_{i=1}^{n}\left ( y_{i} - f_{\theta }\left ( x_{i} \right )\right )^{2}

方差损失函数.png

 ○ 比绝对误差函数得到的结果更精准
 ○ 对大的误差输出更敏感
 ○ 对outliers很敏感

2.分类任务的损失函数

 网络的输出为一个类别。
 损失函数: hinge loss, Cross-entropy loss

  • 如何设计分类任务的损失函数?
    首先将真实的输出类别进行独热编码 -->One-hot encoding;
    然后,将网络模型的预测值与One-hot encoding后的真实类别值作为输入,计算hinge loss与Softmax。
1)hinge loss:非概率的解释
  • 损失值:

 单个样本的损失值:
\mathit{L}_{i} = \sum_{j\neq y_{i}}max\left ( 0,s_{j} - s_{y_{i}}+\Delta \right )

 全部样本的损失值:
\mathit{L} = \frac{1}{N}\sum_{i}\sum_{j\neq y_{i}}\left [max\left ( 0,f\left ( x_{i};W \right )_{j} - f\left ( x_{i};W \right )_{y_{i}}+\Delta \right ) \right ]

  • hinge loss计算案例
    \begin{align*}\label{2} & s = \left [ 13,-7,11 \right ] \\ & y_{i} = 0 \\ & \Delta = 10 \\ & L_{i} = max\left ( 0,-7 - 13 + 10 \right ) + max\left ( 0, 11 - 13 + 10 \right ) & & \end{align*}
  • 原理
    正确类别的输出值,一定要大于不正确类别的输出值(并且至少大于delta值)。
    Hinge Loss.png
2)Softmax

 概率解释,将输出转换为概率函数。
 概率的取值范围为(0~1),且所有类别的概率之和为1。

  • softmax数学公式:S\left ( l_{i} \right ) = \frac{e^{l_{i}}}{\sum _{k}e^{l_{k}}}

  • softmax分类的损失函数:

    softmax损失函数原理图.png
    单个样本的损失值:
    L_{i} = -\sum_{k}^{}y_{k}\cdot log\left ( S\left ( l_{k} \right ) \right )
    全部样本的损失值:
    \begin{align*}\label{2} & L = -\frac{1}{n}\sum_{i=1}^{n}L_{i} \\ & L = -\sum_{i=1}^{n}y_{i}\cdot log\left ( S\left ( f_{\Theta} \left ( x_{i} \right ) \right ) \right ) \\ \end{align*}

\color{red}{以上softmax分类的损失函数称为:交叉熵损失函数}

3.案例

  • 分类任务损失函数计算案例


    分类损失函数计算实例(1).png
    分类损失函数计算实例(2).png

4.分类任务为什么不用均方差作为损失函数?

  • 方差函数多误差的输出惩罚非常大
  • 当softmax作为激活函数时,如果使用方差函数作为损失函数,梯度公式中包含\hat{y}\left ( 1-\hat{y} \right ),当输出接近于0或者1的时候,梯度值非常小,网络的训练就会非常慢。
1)使用均方差作为损失函数

 当使用均方差作为softmax分类的损失函数时,梯度公式为:


均方差损失函数的梯度值.png
2)使用交叉熵作为损失函数

 当使用交叉熵作为softmax分类的损失函数时,梯度公式为:


交叉熵损失函数的梯度值.png

5.多标签分类

  • 输出类别属于多个类中的一个或者多个类
  • 例如:一副包含猫咪的图像可以同时属于’猫‘,’哺乳动物‘,’宠物‘
  • 多标签分类:应该每一个输出独立使用Sigmoid激活函数(二分类),不能直接使用Softmax激活函数。
1)Sigmoid函数公式

\sigma \left ( l_{i} \right ) = \frac{1}{1+e^{-l_{i}}}

2)多标签分类损失函数

L_{i} = -\sum_{k}^{}y_{k}\cdot log\left ( \sigma \left ( l_{i} \right ) \right )+\left ( 1-y_{k}\right )log\left ( 1-\sigma \left ( l_{i} \right ) \right )

相关文章

  • 机器学习:常见的损失函数

    损失函数简要介绍 0-1损失 绝对值损失 log对数损失函数 平方损失函数 指数损失函数 Hinge损失函数 损失...

  • (4)损失函数

    损失函数用来表示输出与实际值的差距。常用的损失函数为0-1损失函数、平方损失函数、绝对损失函数、对数损失函数、交叉...

  • 【深度学习】

    1, 两个重要的函数:得分函数和损失函数损失函数: hinge损失,softmax 损失。hinge损失: max...

  • 损失函数概述

    常用的损失函数 1.L1损失(绝对损失函数) 和 L2 损失(平方损失函数) L1范数损失函数,也被称为 最小绝对...

  • 各机器学习模型的目标函数

    目标函数和损失函数的区别 损失函数:模型拟合的越好,损失应该越小; 目标函数:优化的目标,可以是“损失函数”或者“...

  • 损失函数 - 交叉熵损失函数

    参考[1]损失函数 - 交叉熵损失函数

  • 机器学习随笔

    1 模型的函数表达式,如逻辑回归函数 2 定义损失函数,最小二乘损失,0/1损失,交叉熵。 3 目标函数,损失函数...

  • 绘制常见损失函数

    练习:绘制常见损失函数 损失函数:Logistics损失(-1,1) SVM Hinge损失 0/1损失 首先我...

  • 常见损失函数

    损失函数 什么是损失函数 ​ 损失函数(Loss Function)又叫做误差函数,用来衡量算法的运行情况,估...

  • 统计学习方法笔记之统计学习基础

    更多文章可以访问我的博客Aengus | Blog 损失函数 (1)0-1损失函数(2)平方损失函数(3)绝对损失...

网友评论

      本文标题:损失函数

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