【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元

文章目录

  • 一、常见的三种网络结构
  • 二、激活函数
    • (1)S型激活函数
        • logistic函数和Tanh函数:
        • hard-logistic函数和hard-Tanh函数:
    • (2)ReLU函数
        • 带泄露的ReLU【leaky ReLU】
        • 带参数的ReLU【Parametric ReLU或者PReLU】
        • 指数线性单元【ELU】
        • ReLU函数的平滑版本【SoftPlus】
        • 四种函数的图像
    • (3)Swish函数
    • (4)GELU函数
    • (5)Maxout单元
  • 三、前馈神经网络


一、常见的三种网络结构

我们熟知的网络结构有三种,分别是前馈神经网络记忆神经网络图神经网络
让我们对其进行一 一解释吧!

  • 前馈网络:① 它是以接受节点的时间先后进行分组,属于一种无反馈的信息传播 ② 可以把他看成函数,因为它的上一层输出便是下一层的输入
  • 记忆网络:① 它是一种带有反馈机制的网络,它不仅仅可以接收其他神经元的信息,也可以接受自身的历史信息 ② 它可以看作程序。③ 当然,也可以根据增加外部记忆单元和读写机制保存网络的中间状态,这种结构是记忆网络的增强,被称为记忆增强神经网络
  • 图网络:① 节点是由一个或者一组神经元构成 ② 结点之间的联系可以是有向,也可以是无向(单或者双)③ 节点可以收到相邻节点的信息,可以收到自身节点的信息

【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第1张图片


二、激活函数

在书中介绍了常见的五种激活函数,分别是S型激活函数ReLU函数Swish函数GELU函数以及Maxout单元,让我们来对此进行一一介绍吧

(1)S型激活函数

logistic函数和Tanh函数:

S型激活函数常见的是logistic函数Tanh函数

这里需要注意一点是,S型激活函数的大名叫做Sigmoid型激活函数,但是logistic函数还有一个别名叫做Sigmoid函数,这俩者是包含关系,而不是对等关系【多亏和一个大佬聊天的时候,纠正过来,差点就理解错误了】

【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第2张图片
【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第3张图片

【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第4张图片

根据下方图片,我们可以清楚得知:logistic函数具有连续可导性,但是其输出恒大于0,会导致后一层的神经元存在偏置偏移,从而使梯度下降的收敛变得缓慢,但是Tanh函数是零中心化的,所以此类问题的风险较低。

【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第5张图片

hard-logistic函数和hard-Tanh函数:

由于Logistic函数和Tanh函数都是S型函数,具有饱和性,但是计算开销较大
【因为这两个函数都是在中间(0附近)近似线性,两端饱和】
因此,这两个函数可以通过分段函数来近似表示,也就有了hard-logistic函数和hard-Tanh函数

他们都是由对应函数在0附近的一阶泰勒展开式构成的。
所以便有了对应的式子:

hard-logistic函数:
在这里插入图片描述
【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第6张图片
【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第7张图片

hard-Tanh函数:
在这里插入图片描述
【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第8张图片
【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第9张图片

最后的图像展示:
【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第10张图片


(2)ReLU函数

ReLU函数大名为:Rectifier Linear Unit 修正线性单元,又可以称为Recitifier函数
实际上,ReLU函数类似于斜坡(ramp)函数,其公式为:
【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第11张图片
ReLU函数存在一定的优点与缺点:
优点:

  • ① 只采用加,乘,比较的操作,计算是比较高效
  • ② 具有生物学合理性:比如单侧抑制,宽兴奋边界(兴奋程度较高)
  • ③ 对比S型函数,ReLU具有更良好的稀疏度,有50%的处于激活中,但是S型是一种非稀疏的神经网络
  • ④ 在优化上,由于其为左饱和,x大于0的倒数为1,所以说缓解了梯度消失的问题,加速了梯度下降的收敛速度

缺点:

  • ① 类似于logistic函数,一样存在偏置偏移问题
  • 死亡ReLU问题:总有50%未激活,如果出错,会导致一直处于未激活状态,得到的永远为0

所以,根据ReLU的缺点,便孕育而生了ReLU的诸多变式

带泄露的ReLU【leaky ReLU】

这种函数在x<0的时候,保持着很小的梯度γ,以免出现激活死亡问题。比如γ的值为0.01。
【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第12张图片

带参数的ReLU【Parametric ReLU或者PReLU】

这种和上面的leaky ReLU有点类似,他们都是改变坡度。但是PReLU是每一个不同的神经元的参数不同,也就是:
【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第13张图片
其中 为 ≤ 0 时函数的斜率.因此,PReLU 是非饱和函数.

  • 如果 = 0,那么PReLU就退化为ReLU.
  • 如果 为一个很小的常数,则PReLU可以看作带泄露的ReLU.
  • PReLU 可以允许不同神经元具有不同的参数,也可以一组神经元共享一个参数.

指数线性单元【ELU】

【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第14张图片

ReLU函数的平滑版本【SoftPlus】

在这里插入图片描述

  • Softplus函数其导数刚好是Logistic函数
  • Softplus函数虽然也具有单侧抑制、宽兴奋边界的特性,却没有稀疏激活性

四种函数的图像

【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第15张图片


(3)Swish函数

Swish函数是一种自门控激活函数
在这里插入图片描述

  • (⋅) 为 Logistic 函数
  • 为可学习的参数或一个固定超参数
  • (⋅) ∈ (0, 1) 可以看作一种软性的门控机制
    • 当()接近于1时,门处于“开”状态,激活函数的输出近似于
    • 当()接近于0时,门的状态为“关”,激活函数的输出近似于0.

【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第16张图片


(4)GELU函数

GELU又称为Gaussian Error Linear Unit【高斯误差线性单元】,也是一种通过门控机制来调整其输出值的激活函数,和 Swish 函数类似。
【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第17张图片

  • ( ≤ )是高斯分布(, 2)的累积分布函数

  • , 为超参数,一般设 = 0, = 1即可

  • 由于高斯分布的累积分布函数为S型函数,因此GELU函数可以用Tanh函数或Logistic函数来近似
    【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第18张图片

  • 当使用Logistic函数来近似时,GELU相当于一种特殊的Swish函数【Swish(x) = ()】


(5)Maxout单元

  • Maxout 单元也是一种分段线性函数
  • Sigmoid 型函数、ReLU 等激活函数的输入是神经元的净输入 ,是一个标量.
  • Maxout 单元的输入是上一层神经元的全部原始输出,是一个向量 = [1; 2; ⋯ ; ].
  • 每个Maxout单元有 个权重向量 ∈ ℝ 和偏置 (1 ≤ ≤ )

三、前馈神经网络

前馈神经网络(Feedforward Neural Network,FNN)是最早发明的简单人工神经网络。

  • 前馈神经网络也经常称为多层感知器,但多层感知器的叫法并不是十分合理。
  • 因为前馈神经网络其实是由 多层的 Logistic 回归模型(连续的非线性函数) 组成
  • 而感知器是不连续的非线性函数

① 在前馈神经网络中,各神经元分别属于不同的层.每一层的神经元可以接收前一层神经元的信号,并产生信号输出到下一层。

② 第0层称为输入层,最后一层称为输出层,其他中间层称为隐藏层

【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第19张图片
注意:层数L一般只考虑隐藏层和输出层,上文中的多层前馈神经网络应该是3层。
【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第20张图片

传播公式:
【神经网络与深度学习】各种激活函数+前馈神经网络理论 ① S型激活函数 ② ReLU函数 ③ Swish函数 ④ GELU函数 ⑤ Maxout单元_第21张图片对应解释:
L层的净输入可以理解为:从L-层到L层的权重乘以对应的L-1层的输入,再加上从L-层到L层的偏置,然后再将L层的净输入代入到L层对应的激活函数中,得到L层的输出

对于前馈神经网络中的反向传播算法和自动梯度计算,由于涉及过多的数学公式,后续应该会专门出俩篇关于此的博客,目前我只是看书学习,后续可能会跟着李宏毅老师的深度学习视频继续进一步学习,对于公式推导会和吴恩达老师的机器学习视频公式推导一样,以推导图片的形式呈现。

你可能感兴趣的:(学习ML+DL,神经网络,深度学习,机器学习,激活函数,人工智能)