常见的激活函数(sigmoid、tanh、ReLU、Leaky ReLU、P-ReLU、R-ReLU、ELU、Swish、Mish、Maxout、softmax)

2024-05-01 1525阅读

文章目录

    • 前言
    • 求导四则运算法则
    • 基本初等函数的导数
    • sigmoid函数
      • sigmoid函数适用场景
      • sigmoid函数图像
      • sigmoid函数的导数公式
      • sigmoid函数的导数图像
      • sigmoid函数的缺点
        • 解决办法
        • tanh函数
          • tanh函数公式推导过程
          • tanh函数图像
          • tanh函数的导数公式
          • tanh函数的导数图像
          • t a n h ( x ) + 1 = 2 s i g m o i d ( 2 x ) tanh(x) + 1 = 2sigmoid(2x) tanh(x)+1=2sigmoid(2x)
          • sigmoid和tanh函数图像对比
          • ReLU函数
            • ReLU函数图像
            • ReLU在零点处不可导
            • ReLU函数负半区间也是非线性激活函数的理解
            • 使用ReLU的原因
            • ReLU6
            • Leaky ReLU函数
              • Leaky ReLU函数优缺点
                • 优点
                • 缺点
                • 参数化ReLU(P-ReLU)
                • 随机化ReLU(R-ReLU)
                • 指数化线性单元(ELU)
                  • 软饱和性和无饱和性
                  • ELU指数线性单元特点
                  • 缺点
                  • Swish函数
                    • SiLU
                    • Mish函数
                    • Maxout函数
                    • softmax函数
                      • softmax函数公式
                      • softmax函数的导数公式
                        • 当 i ≠ j i ≠ j i=j 时
                        • 当 i = j i = j i=j 时
                        • softmax溢出问题
                          • 参考文章
                          • 上溢出(overflow)和下溢出(underflow)
                          • 解决方法
                          • 延伸问题
                            • 解决方法
                            • softmax函数在多分类问题中的应用
                            • 激活函数的应用场景

                              前言

                              本文首先回回顾了求导四则运算法则和常见基本初等函数的导数,目的是为了对下文激活函数公式的推导做铺垫。接着介绍了sigmoid函数,并提出了sigmoid函数存在的期望不为0且梯度消失问题。因此,基于sigmoid函数的缺陷提出了tanh(x)激活函数。虽然tanh函数在一定程度上缓解了sigmoid函数带来的“均值不为0”的问题,但是仍然存在“梯度饱和”的现象。为了避免梯度饱和现象的发生,修正线性单元(Rectified Linear Unit, ReLU)被提出。但是ReLU存在“死区”现象。为了缓解死区现象,研究者们提出了一些ReLU的变种,如Leaky ReLU、Parametric ReLU(PReLU)、Exponential Linear Unit(ELU)等。另外,本文详细地推导了softmax函数的导数公式和探讨了softmax溢出问题,并给出了解决方案。最后,提及了一些常用激活函数的应用场景。

                              求导四则运算法则

                              若函数 u ( x ) {u(x)} u(x), v ( x ) {v(x)} v(x) 都可导,则

                              ( u ( x ) ± v ( x ) ) ′ = u ′ ( x ) ± v ′ ( x ) ( u ( x ) ∙ v ( x ) ) ′ = u ′ ( x ) ∙ v ( x ) + u ( x ) ∙ v ′ ( x ) ( u ( x ) v ( x ) ) ′ = u ′ ( x ) v ( x ) − v ′ ( x ) u ( x ) v 2 ( x ) \begin{gathered}\left(u\left(x\right)\pm v\left(x\right)\right)^{^{\prime}}=u^{^{\prime}}\left(x\right)\pm v^{^{\prime}}\left(x\right)\\\left(u\left(x\right)\bullet v\left(x\right)\right)^{^{\prime}}=u^{^{\prime}}\left(x\right)\bullet v\left(x\right)+u\left(x\right)\bullet v^{^{\prime}}\left(x\right)\\\left(\frac{u\left(x\right)}{v\left(x\right)}\right)^{^{\prime}}=\frac{u^{^{\prime}}\left(x\right)v\left(x\right)-v^{^{\prime}}\left(x\right)u\left(x\right)}{v^{2}\left(x\right)}\end{gathered} (u(x)±v(x))′=u′(x)±v′(x)(u(x)∙v(x))′=u′(x)∙v(x)+u(x)∙v′(x)(v(x)u(x)​)′=v2(x)u′(x)v(x)−v′(x)u(x)​​

                              基本初等函数的导数

                              常见的激活函数(sigmoid、tanh、ReLU、Leaky ReLU、P-ReLU、R-ReLU、ELU、Swish、Mish、Maxout、softmax)

                              sigmoid函数

                              sigmoid函数也叫Logistic函数,对于一个定义域在 R {R} R中的输入,sigmoid函数将输入变换为区间(0,1)上的输出。因此,sigmoid通常称为挤压函数(squashingfunction):它将范围(‐inf,inf)中的任意输入压缩到区间(0,1)中的某个值:

                              s i g m o i d ( x ) = 1 1 + exp ⁡ ( − x ) sigmoid(x)=\frac{1}{1+\exp (-x)} sigmoid(x)=1+exp(−x)1​

                              sigmoid函数适用场景

                              当我们想要将输出视作二元分类问题的概率时,sigmoid仍然被广泛用作输出单元上的激活函数(sigmoid可以视为softmax的特例)。然而,sigmoid在隐藏层中已经较少使用,它在大部分时候被更简单、更容易训练的ReLU所取代。

                              sigmoid函数图像

                              下面,我们绘制sigmoid函数。注意,当输入接近0时,sigmoid函数接近线性变换。

                              常见的激活函数(sigmoid、tanh、ReLU、Leaky ReLU、P-ReLU、R-ReLU、ELU、Swish、Mish、Maxout、softmax)

                              从上图可以看出,sigmoid函数的性质如下:

                              • 关于 ( 0 , 0.5 ) (0,0.5) (0,0.5)中心对称,其值全部大于0
                              • sigmoid可以将实数域的值映射到 ( 0 , 1 ) (0,1) (0,1)之间,赋予了概率的意义
                              • 在sigmoid函数值 x > 5 x>5 x>5或者 x

                                使用ReLU的原因

                                使用ReLU的原因是,它求导表现得特别好:要么让参数消失,要么让参数通过。这使得优化表现得更好,并且ReLU减轻了困扰以往神经网络的梯度消失问题。

                                ReLU6

                                ReLU的正值输出为 [ 0 , + ∞ ) [0,+∞) [0,+∞),而计算机内存有限,并不能够存储无穷大的数,所以将ReLU应用到实际中需要限定输出的最大值,最大输出限定为6,就是ReLU6,如下图所示。

                                常见的激活函数(sigmoid、tanh、ReLU、Leaky ReLU、P-ReLU、R-ReLU、ELU、Swish、Mish、Maxout、softmax)

                                Leaky ReLU函数

                                为了缓解“死区”现象,Leaky ReLU尝试将ReLU的 x

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]