动手学习深度学习——softmax函数与sigmoid函数区别

本篇文章属于总结性文章,看之前你需要对softmax与sigmoid都有一个大概的认识。全文没有代码纯理论,手写+公式的方式简单总结了两种激活函数在多方面的不同,看完对你有帮助的话可以点个收藏并小赞一下😊。

  1. 解决的实际问题不同

动手学深度学习——softmax回归之OneHot、softmax与交叉熵一文中,我们以softmax函数和交叉熵实现了一个”单层神经网络”—— softmax回归分类器;同样的,我们也可以用sigmoid函数作为激活函数实现 sigmoid回归分类器。二者分别用于解决多分类问题与多标签问题:

  • 多标签问题:一部电影即是剧情片又是爱情片,各类别之间不互斥——sigmoid;
  • 多分类问题:一个动物图谱只能是一类动物,各类别之间互斥——softmax;

  • 各类别间关系不同

当然我们这里不着重介绍两种分类器的实现和用途,主要介绍两种激活函数间的区别:

  • 在softmax中,我们计算得到的各类别概率之和为1,也就是说我们加大某一类别的概率必然导致其他类别减小——各类别之间相互关联,是互斥的。
  • 在sigmoid中,我们计算的各类别概率之和则不一定为1,各个输出值依次独立的经过激活函数的映射,某一个类别概率增大可能也伴随另一个类别概率增大——各类别之间相互独立,不互斥。

  • 正向传播对应的交叉熵损失函数不同

因此,两种激活函数在计算损失时,分别对应 不同的交叉熵函数,推导如下:

动手学习深度学习——softmax函数与sigmoid函数区别

; 4. 反向传播中计算梯度的方式不同

不仅如此,由于两种激活函数计算输出值的方法不一样:

  • sigmoid函数是 标量变元的实值标量函数f ( x ) f(x)f (x );
  • softmax函数是 向量变元的实值标量函数f ( x ) \pmb f(\pmb x)f ​f ​​f (x x x )。

所以二者在 多样本(矩阵) 的情况下反向传播计算: 损失函数对激活函数输出的梯度:∂ L ∂ y i ^ \frac{\partial L}{\partial \hat{y_i}}∂y i ​^​∂L ​,以及 激活函数对自身输入的梯度:∂ y i ^ ∂ a i \frac{\partial \hat{y_i}}{\partial a_i}∂a i ​∂y i ​^​​ 也有不同,推导如下:

动手学习深度学习——softmax函数与sigmoid函数区别
  1. 补充

  2. sigmoid的公式及求导:

动手学习深度学习——softmax函数与sigmoid函数区别
  1. softmax公式及求导:详见知乎博客:反向传播之一:softmax函数

Original: https://blog.csdn.net/qq_50571974/article/details/123967880
Author: 时生丶
Title: 动手学习深度学习——softmax函数与sigmoid函数区别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/617635/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球