• 神经网络(十)激活函数DLC


    激活函数是构成神经元重要部件之一,它衔接了神经元净输入z和神经元净输出a

    可以分为以下几种:

    一、Logistic函数

            \sigma(x)=\frac{1}{1+exp(-x)}

            可以视为一个挤压函数,输出区间[0,1],输入越小越接近0,输入越大越接近1。连续可导;可以作为软性门

            Hard-Logistic函数

                            其中 g_l(x)=\sigma(0)+x\times {\sigma}'(0)=0.25x+0.5实质为\sigma(x)在0出的泰勒展开

                                    {\sigma}'=\sigma(x)(1-\sigma(x))

                            最终形式为:=max(min(g_l(x),1),0)=max(min(0.25x+0.5,1),0) 

    二、Tanh函数

            tanh(x)=\frac{exp(x)-exp(-x)}{exp(x)+exp(-x)}

             可视为变换后的Logistic函数 tanh(x)=2\sigma (2x)-1,值域为[-1,1] 

             Hard-Tanh函数

                    g_t(x)=tanh(0)+x \times {tanh}'(0)=x

                             最终形式为:=max(min(g_t(x),1),-1)=max(min(x,1),-1)

            上述激活函数的图像如下图:

             !!!Hard型函数用于解决Logistic函数和Tanh函数计算开销过大的问题。采用分段函数进行模拟近似(其在0附近都具有近似性),近0点采用导数进行近似

    三、ReLU函数

            神经网络中较为常用的一种激活函数,实际为一个斜坡函数

            优点:具有生物合理性(单侧抑制,宽兴奋边界),同时具有良好的稀疏性(50%左右的神经元处于激活状态,而Sigmoid型激活函数会导致一个非稀疏型神经网络) 

            缺点:其为非零中心化(会给下一层引入偏置偏移,影响梯度下降的效率)可能出现ReLU死亡现象

            为避免ReLU死亡问题,出现以下几种变种函数

            1.带泄露的ReLU

                    在x<0时,保持一个较小的梯度\gamma

                     当\gamma <0.01时,可以写作LeakyReLU(x)=max(x,\gamma x)

            2.带参数的ReLU

                    引入一个可以学习的参数,对于第 i 个神经元

                           若\gamma_i=0则会退化为ReLU

                           若\gamma_i非常小,这可以视为LeakyReLU

                           允许一组神经元共享一个参数,也可以是不同的参数

            3.ELU函数

                    是一个近似的零中心非线性函数

                            其中\gamma\geq 0为超参数,决定 x≤0时的饱和曲线,并调整输出均值在0附近

            4.Softplus函数

                    可以视为Rectifier函数的平滑版本

                                    Softplis(x)=log(1+exp(x))

                     其导数刚好为Logistic函数,虽然具有单侧抑制、宽兴奋边界;但没有稀疏激活性

    四、Swish函数

            自门控激活函数

              swish(x)=x\sigma(\beta x)

            其中\sigma(.)可以视为Logistic函数\beta是一个可以学习的参数/固定的超参数

            当\sigma(\beta x)接近1时,门处于开的状态;\sigma(\beta x)接近-时,门处于关闭状态

                    其形态由\beta控制

                            \beta=0时,Swish函数变为\frac{x}{2}

                            \beta=1时,Swish在x >0时近似线性,在x <0时近似饱和,同时具有非单调性

                            \beta\rightarrow \infty时,Swish函数可以近似为ReLU函数

    五、GELU函数

            高斯误差线性单元,也是通过门控机制来调整输出值的激活函数,类似Swish

            GELU(x)=xP(X\leq x)

            其中P(X \leq x)高斯分布N(\mu,\sigma ^2)的累积分布函数,一般设\mu=0,\sigma=1

                    高斯分布即为正态分布,常用的形式为标准正态分布N(0,1)

            GELU函数可以由Tanh或Logistic近似

                     GELU(x) \approx 0.5x(1+tanh(\sqrt{\frac{2}{\pi}})(x+0.044715x^3))

            ​​​​​​​        GELU(x) \approx x\sigma(1.702x)

    六、MaxOut单元

            一种分段线性函数,不同于上面的激活函数只能处理净输入值z(标量),其可以直接处理上层的全部原始输入(向量)

            每个MaxOut单元有K个权重向量w_k,可以得到K个净输入z_k

            ​​​​​​​        z_k=w^T_kx+b_k

            MaxOut单元的非线性定义为

            ​​​​​​​        ​​​​​​​maxout(x)=\underset{k\in [1,K]}{max}(z_k)

  • 相关阅读:
    HWI的安装及使用
    HR问:有没有免费的人才测评工具?
    自然语言处理3——句子相似度
    c# .net6 Task 多线程介绍
    leetcode268. Missing Number
    LLMs 奖励剥削 RLHF: Reward hacking
    H12-821_29
    电商平台API接口的作用到底是什么?重要性又是什么?具体接入方式?
    Python飞机大战项目终篇(一步一步实现---最全笔记)
    知名外企嵌入式C语言笔试试题
  • 原文地址:https://blog.csdn.net/weixin_37878740/article/details/126658339