损失函数(转载)

损失函数|交叉熵损失函数
详解softmax函数以及相关求导过程

1 图像分类

我们希望根据图片动物的轮廓、颜色等特征,来预测动物的类别,有三种可预测的类别:猫、狗、猪。
假设我们当前有两个模型(参数不同),这两个模型都是通过sigmoid/softmax的方式得到对于每个预测结果的概率值:

sigmoid

  • 其表达式及函数图像:
    在这里插入图片描述

softmax

在这里插入图片描述

模型1
预测真实是否正确
0.3 0.3 0.40 0 1 (猪)正确
0.3 0.4 0.30 1 0 (狗)正确
0.1 0.2 0.71 0 0 (猫)错误
模型2
预测真实是否正确
0.1 0.2 0.70 0 1 (猪)正确
0.1 0.7 0.20 1 0 (狗)正确
0.3 0.4 0.31 0 0 (猫)错误

Mean Squared Error (均方误差)

均方分误差是一种插件的损失函数,其定义为:
在这里插入图片描述

模型1

在这里插入图片描述
对所有的样本loss求均值
在这里插入图片描述

模型2

在这里插入图片描述
对所有的样本loss求均值
在这里插入图片描述
我们发现,MSE能够判断出来模型2由于模型1。

sigmoid缺点:
  • 在分类问题中,使用 sigmoid/softmax得到概率,配合MSE损失函数,采用梯度下降法进行学习时,会出现模型在一开始训练的时候,学习速率非常慢

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

表达式

在这里插入图片描述
在这里插入图片描述

模型1

在这里插入图片描述
对所有样本的loss求平均:
在这里插入图片描述

模型2

在这里插入图片描述
对所有样本的loss求平均:
在这里插入图片描述
可以发现,交叉熵损失函数可以捕捉到模型1模型2预测效果的差异。

3 学习过程

交叉熵损失函数经常用于分类问题中,特别是在神经网络中做分类问题是。此外,由于交叉熵设计到计算每个类的概率,所以交叉熵几乎每次都和 sigmoid或者softmax函数一起出现

我们用神经网络最后一层输出的情况,来看整个模型预测,获得损失和学习的过程:
  • 1、神经网络最后一层得到每个类别的得分score(也叫logits);
  • 2、该得分经过sigmoid(或者softmax)函数获得概率输出。
  • 3、模型预测的类别概率输出与真实类别的one-hot进行交叉熵损失函数计算。
学习任务分为二分类和多分类情况,分开讨论:
3.1 二分类

二分类交叉熵损失函数学习过程
如上图所示,求导过程可分成三个子过程,即拆成三项偏导的乘积:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 多分类

在这里插入图片描述

多分类求导过程参考详解softmax函数以及相关求导过程

举例:

在这里插入图片描述
步骤一: 先求出4、5、6点的输出,然后在用softmax函数求出a5的a6、a7的输出
在这里插入图片描述
步骤二:因为是多分类,所以交叉熵损失函数中,是目标类别的yi人为是1,其他的认为是0,所以可以去掉求和操作。
在这里插入图片描述
步骤三:求导数

  • 在该例子中,参数为w41,w42,w43,w51,w52,w53,w61,w62,w63,比如我想求出w41,w42,w43的偏导,就需要将Loss函数求偏导传到结点4,然后再利用链式法则继续求导即可:
    在这里插入图片描述
    w51…w63等参数的偏导同理可以求出。
    那么我们的关键就在于Loss函数对于结点4,5,6的偏导怎么求,如下:
    1)当j=i时,此时是 a4对z4求偏导,就是说现在对a4点的求导传给了4点。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 2)当 j!=i 时,

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

L1

在这里插入图片描述
在这里插入图片描述
L1对x的倒数为常数。这导致训练后期**,预测值和ground truth差异很小的时,L1损失对预测值的导数的绝对值任然为1**,而learning rate如果不变,损失函数将在稳定值附近波动,难以继续收敛已到达更高的精度。

L2

在这里插入图片描述
在这里插入图片描述
当x增大时,L2损失对x的导数也增大。这导致训练初期时,预测值和ground truth差异过大时,损失函数对预测值的梯度过大,训练十分不稳定。

smoothL1

  • 当预测框与 ground truth 差别过大时,梯度值不至于过大
  • 当预测框与 ground truth 差别很小时,梯度值足够小
    在这里插入图片描述
    在这里插入图片描述
    smoothL1在x较小的时候,对x的梯度也会变小,而在x很大的时候,对x的梯度的绝对值叨叨上限值1,不会太大以至于破坏网络参数。smoothL1完美避开了L1和L2的损失的缺陷。其函数图像如调所示

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值