激活函数、Sigmoid激活函数、tanh激活函数、ReLU激活函数、Leaky ReLU激活函数、Parametric ReLU激活函数详细介绍及其原理详解

这篇具有很好参考价值的文章主要介绍了激活函数、Sigmoid激活函数、tanh激活函数、ReLU激活函数、Leaky ReLU激活函数、Parametric ReLU激活函数详细介绍及其原理详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

相关文章

  1. 梯度下降算法、随机梯度下降算法、动量随机梯度下降算法、AdaGrad算法、RMSProp算法、Adam算法详细介绍及其原理详解
  2. 反向传播算法和计算图详细介绍及其原理详解
  3. 激活函数、Sigmoid激活函数、tanh激活函数、ReLU激活函数、Leaky ReLU激活函数、Parametric ReLU激活函数详细介绍及其原理详解
  4. Xavier参数初始化方法和Kaiming参数初始化方法详细介绍及其原理详解


前言

  本文总结了关于激活函数、 S i g m o i d Sigmoid Sigmoid激活函数、 t a n h tanh tanh激活函数、 R e L U ReLU ReLU激活函数、 L e a k y R e L U Leaky \quad ReLU LeakyReLU激活函数、 P a r a m e t r i c R e L U Parametric \quad ReLU ParametricReLU激活函数的相关内容,详细介绍了其原理以及优缺点,本文的全部内容如下所示。


一、激活函数

1.1 什么是激活函数

  设想这么一种情况,假如我们现在由输入值 x x x,经过线性变换 y 1 = w 1 x + b 1 y_{1}=w_{1}x+b_{1} y1=w1x+b1,得到 y 1 y_1 y1,这个过程如下图所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图1:前向传播过程

  很明显这个线性变换就是一条直线,它的图像可能类似如下图所示的增函数:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图2:此神经元的线性变化对应的函数图像

  那如果我们在之前的基础上再做一次线性变换 y 2 = w 2 y 1 + b 2 y_{2}=w_{2}y_{1}+b_{2} y2=w2y1+b2,得到 y 2 y_{2} y2,那么整个过程就如下图所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图3:具有两个神经元的线性前向传播过程

  因为我们做的是线性变换,所以说得到的函数图像仍是一条直线,虽然可能变成了如下图所示的减函数:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图4:经过第二个神经元的线性变化对应的函数图像

  所以说,就算将很多的线性变换叠加为神经网络,最终也只能解决线性的问题。对于下图来说,虽然每个神经元都可以进行一次计算,但是计算的结果都是线性变换后的结果,最终也只能解决线性拟合问题。

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图5:多个神经元的线性前向传播过程

  但是在日常生活中,我们遇到的大部分情况都是非线性问题,那么该如何利用神经网络解决非线性问题呢?在讲解这个问题之前,让我们先回顾一下高中生物的一个知识点:神经元,这个结构如下图所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图6:生物体中的神经元结构

  首先树突接受上一个神经元的信号,然后由轴突引起内外电荷数量的变化,得到一个动作电压,最终使整个神经元被激活,将得到的经过激活后的信号继续向后传导。而深度学习也借鉴了这个过程,每个神经元计算后的结果需要传入非线性函数 f f f进行非线性计算,这个过程把非线性函数 f f f当作是从输入到输出的激活过程,所以此非线性函数也被称为激活函数(Activation Function),经过激活函数计算后的值 o o o才是此神经元最终的输出值。

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图7:激活函数示意图

1.2 使用激活函数后如何更新参数

  我们之前学过,可以利用梯度下降算法来最优化参数,那么使用激活函数后如何应用梯度下降来更新参数呢?其实这个问题很简单,我们只需要多计算两步:

  • 损失函数 L L L对激活值 o o o的偏导
  • 激活函数 f f f对预测值 y y y的偏导

  整个过程如下图所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图8:具有激活函数的反向传播过程

1.3 成为激活函数的条件

  让我们再考虑一个问题,现实世界中有数以万计的函数,谁都可以成为激活函数么?很显然是不是的,某个函数要想作为激活函数来使用,应满足以下几点要求:

  • 为了避免只能解决线性问题,所以激活函数应是非线性函数
  • 为了使用梯度下降算法来最优化参数,所以激活函数应是连续可导函数
  • 为了数值上的稳定,激活函数应能映射所有的实数,所以激活函数的定义域应为 R \mathbb{R} R
  • 为了只是增加非线性,不改变对输入的响应状态,所以激活函数应是单调递增的 S S S型曲线

  现在,我们已经了解了什么是激活函数,那么在我们平时使用神经网络时,究竟都在使用哪些激活函数呢?下面将对常用的一些激活函数进行详解。

二、 S i g m o i d Sigmoid Sigmoid激活函数

2.1 S i g m o i d Sigmoid Sigmoid激活函数介绍

  刚才我们也提到了,一个函数要想成为激活函数,需要满足很多条件,那么什么函数可以满足这些条件呢?目前我们比较常用的就是 S i g m o i d Sigmoid Sigmoid激活函数,可以有效地处理非线性问题,其函数解析式为:
σ = 1 1 + e − y \sigma=\frac{1}{1+e^{-y}} σ=1+ey1
   S i g m o i d Sigmoid Sigmoid激活函数的函数图像为:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图9:Sigmoid激活函数的函数图像

  由其函数图像可以看到, S i g m i o d Sigmiod Sigmiod激活函数是一个典型的非线性函数,将输入映射至0~1之间。而且, S i g m o i d Sigmoid Sigmoid激活函数还可由希腊字母 σ \sigma σ表示。

  通常,我们需要使用经过激活函数 f f f(对于 S i g m o i d Sigmoid Sigmoid激活函数来说,此时的 f f f就是 σ ′ \sigma^{\prime} σ)激活后的值与真实值之间的误差形成的误差函数 L L L来进行参数最优化,也就是刚才提到的内容,这也就需要得到 S i g m o i d Sigmoid Sigmoid激活函数的导函数:
σ ′ = ( 1 1 + e − y ) ′ = − ( 1 1 + e − y ) 2 ( − e − y ) = e − y ( 1 + e − y ) 2 = 1 1 + e − y e − y 1 + e − y = σ ( 1 − σ ) \begin{aligned} \sigma^{\prime} & =\left(\frac{1}{1+e^{-y}}\right)^{\prime} \\ & =-\left(\frac{1}{1+e^{-y}}\right)^{2}\left(-e^{-y}\right) \\ & =\frac{e^{-y}}{\left(1+e^{-y}\right)^{2}} \\ & =\frac{1}{1+e^{-y}} \frac{e^{-y}}{1+e^{-y}} \\ & =\sigma(1-\sigma) \end{aligned} σ=(1+ey1)=(1+ey1)2(ey)=(1+ey)2ey=1+ey11+eyey=σ(1σ)
   S i g m o i d Sigmoid Sigmoid激活函数的导函数 σ ′ \sigma^{\prime} σ的图像如下图所示,类似于一个倒立的钟形图像,其最大值为0.25。经过观察发现,当 y y y值较大或较小时, σ ′ \sigma^{\prime} σ的值为0,这种函数我们也称其为饱和函数。

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图10:Sigmoid激活函数的导函数图像

  此时,让我们将目光再次聚焦到 S i g m o i d Sigmoid Sigmoid激活函数的函数图像上,我们可以注意到, S i g m o i d Sigmoid Sigmoid激活函数的函数值总是大于0的,所以经过激活后的值,也都大于0。这种函数也被称为非零均值函数,如下图所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图11:Sigmoid激活函数是非零均值函数

  既然 S i g m o i d Sigmoid Sigmoid激活函数的函数值永远大于0,那么这样的结果会如何呢?我们可以使用之前的例子进行说明,图示如下,需要注意此时的激活函数 f f f S i g m o i d Sigmoid Sigmoid激活函数 σ \sigma σ

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图12:使用Sigmoid激活函数后的反向传播过程

  因为刚才提到, S i g m o i d Sigmoid Sigmoid激活函数的函数值永远大于0,所以上图中黄色部分永远大于0,那么 ∂ L ∂ w 1 \frac{\partial L}{\partial w_{1}} w1L ∂ L ∂ w 2 \frac{\partial L}{\partial w_{2}} w2L的正负就取决于红框内 ∂ L ∂ o \frac{\partial L}{\partial o} oL的正负,这就意味着 w 1 w_{1} w1 w 2 w_{2} w2的梯度符号始终一致,最终导致参数 w 1 w_{1} w1 w 2 w_{2} w2被同时正向或者反向更新,这种情况会使神经网络更慢的收敛到预定位置。所以说, S i g m o i d Sigmoid Sigmoid这样的非零均值激活函数会导致神经网络不易收敛。

2.2 梯度消失

  我们刚刚提到, σ ′ \sigma^{\prime} σ的最大值为0.25,所以,在利用梯度下降算法进行参数最优化的过程,其中在进行反向传播计算梯度的时候,每层的梯度会被动缩小大约 1 4 \frac{1}{4} 41,如下图所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图13:使用Sigmoid激活函数会使每层神经元的梯度被动缩小大约1/4

  这种情况看起来很糟对不对,但是根据 σ ′ \sigma^{\prime} σ的图像可知,其还有另一个特点:当 y y y的值很大或者很小时, σ ′ \sigma^{\prime} σ的值为0。那么也就意味着,当进行反向转播求导时,可能在某一层的梯度几乎为0,那么会导致参数不会被更新,这个过程如下图所示(绿色对号代表正常计算,没有错误;红色叉号代表 σ ′ \sigma^{\prime} σ几乎为零)。这种更糟糕的现象也被称为梯度消失,而 σ ′ \sigma^{\prime} σ又可以被称为饱和函数,所以饱和函数会导致梯度消失。

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图14:使用类似Sigmoid激活函数的饱和函数作为激活函数会导致梯度消失问题

三、 t a n h tanh tanh激活函数

  经过刚才的讲解可以发现, S i g m o i d Sigmoid Sigmoid激活函数虽然使用较简单,但是存在很多严重的问题,为了解决这些问题,研究人员提出另一种激活函数,也就是我们平时经常使用的 t a n h tanh tanh激活函数, t a n h tanh tanh函数又名为双曲正切函数,这也是我们在高等数学中常用的一个函数。既然要使用 t a n h tanh tanh函数作为激活函数使用,我们就要对其基本性质进行了解,其函数解析式为:
tanh ⁡ = 1 − e − y 1 + e − y \tanh =\frac{1-e^{-y}}{1+e^{-y}} tanh=1+ey1ey

  此函数解析式对应的 t a n h tanh tanh激活函数图像为:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图15:tanh激活函数的函数图像

  可以看到, t a n h tanh tanh激活函数并不是类似 S i g m o i d Sigmoid Sigmoid激活函数的非零均值函数,而是零均值函数,因为其函数平均值可以为0,所以 t a n h tanh tanh函数不会导致神经网络不易收敛。

  另外,因为要进行反向传播求导来使用梯度下降算法,其导函数图像我们也要分析以下,如下图所示的就是 t a n h tanh tanh函数的导函数图像:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图16:tanh激活函数的导函数图像

  可以看到, t a n h tanh tanh函数的导函数 t a n h ′ tanh^{\prime} tanh是一个饱和函数,因为其当 y y y值较大或较小时, t a n h ′ tanh^{\prime} tanh的值接近0,也就意味着 t a n h tanh tanh激活函数也存在梯度消失的问题。

  如果在神经网络中使用 t a n h tanh tanh激活函数,只需要将最后计算得到的 y y y值传入 t a n h tanh tanh激活函数进行激活,这个过程如下图所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图17:使用tanh激活函数的前向传播过程

四、 R e L U ReLU ReLU激活函数

4.1 R e L U ReLU ReLU激活函数介绍

  我们学习到现在了,好像并没有一个好的办法解决梯度消失的问题,但是在神经网络的训练中,梯度消失会使神经网络模型训练的精度不高,从而使模型准确率下降。那么为了解决此问题,研究人员又提出了另一种激活函数: R e L U ReLU ReLU激活函数,又称为修正线性单元(Rectified Linear Unit),我们先来看其函数解析式:
ReLU ⁡ ( y ) = { y , y > 0 0 , y ≤ 0 \operatorname{ReLU}(y)=\left\{\begin{array}{ll} y, & y>0 \\ 0, & y \leq 0 \end{array}\right. ReLU(y)={y,0,y>0y0
  此函数解析式对应的 R e L U ReLU ReLU激活函数图像为如下所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图18:ReLU激活函数的函数图像

  可以看到,当 y > 0 y>0 y0时, R e L U ReLU ReLU激活函数就是一个正比例函数,但是会抑制 y ≤ 0 y≤0 y0的输入,只保留正数部分。通过 R e L U ReLU ReLU激活函数的图像可以看出,其为非零均值函数,看起来会导致神经网络收敛过慢,但是要考虑到 R e L U ReLU ReLU激活函数表达式较简单,计算也较简单,所以在大多数情况下, R e L U ReLU ReLU激活函数不会导致神经网络收敛过慢,反而会让神经网络收敛的速度加快,这也是 R e L U ReLU ReLU激活函数的优点之一。

  那么其导函数图像又是什么样呢?毕竟我们要使用激活函数来进行反向传播的过程, R e L U ReLU ReLU激活函数导函数图像 R e L U ′ ReLU^{\prime} ReLU的图像如下图所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图19:ReLU激活函数的导函数图像

  可以看到,只有当神经元输出大于0的时候才会回传梯度,小于0的时候就不会进行反向传播。因为当 y > 0 y>0 y0时, R e L U ′ = 1 ReLU^{\prime}=1 ReLU=1;当 y ≤ 0 y≤0 y0时, R e L U ′ = 0 ReLU^{\prime}=0 ReLU=0。而且很明显可以注意到, R e L U ′ ReLU^{\prime} ReLU是一个非饱和函数,所以可以避免梯度消失的现象,这也是 R e L U ReLU ReLU激活函数的优点之二。

4.2 稀疏性

  当我们使用 R e L U ReLU ReLU函数作为激活函数使用时,只需要把激活函数 f f f替换为 R e L U ReLU ReLU函数即可,整个过程如下所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图20:使用ReLU激活函数的前向传播过程

  那如果我们在整个神经网络中,全部使用 R e L U ReLU ReLU函数作为激活函数呢?也就是将上图的一个简单的神经元扩展到一个具有多个神经元的复杂神经网络中,如下图所示。此时除了上述已经提到的优点外, R e L U ReLU ReLU函数还可以发挥什么样的作用呢?

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图21:ReLU激活函数的稀疏性示意图

  因为经过 R e L U ReLU ReLU激活函数激活后的值,要么大于0,要么等于0被抑制,所以 R e L U ReLU ReLU激活函数在训练过程中可以动态控制神经元的状态,这种性质也被称为稀疏性。那么 R e L U ReLU ReLU激活函数具有的稀疏性性质的具体优点又体现在哪里呢?其优点主要包括以下几点:

  • 当输入数据的参数发生微小改动时,只有少部分的神经元需要改变状态,而不需要全局调整,从而使信息耦合程度降低
  • 此种动态开启和关闭神经元的做法,可以支持不同输入维度和中间层维度的特征学习
  • 这种稀疏的表达方式,一般都是线性可分或者弱线性可分,所以可以降低网络训练的难度
  • 虽然输出的特征是稀疏的,但是被激活的输出仍保持原有的表达能力

4.3 R e L U ReLU ReLU激活函数的局限性

  经过刚才的介绍可以发现, R e L U ReLU ReLU激活函数的优点非常明显,可以有效地帮助我们训练神经网络,也正是因为这些优点,使得 R e L U ReLU ReLU激活函数成为目前为止应用最广泛的激活函数。但是 R e L U ReLU ReLU激活函数也仍存在一些局限性:

  • 非零均值函数

    刚才提到,虽然 R e L U ReLU ReLU激活函数计算较简单,在大多数情况下会加速神经网络的收敛,但是注意,我说的是大多数情况,毕竟 R e L U ReLU ReLU激活函数还是一个非零均值函数,所以,在有些情况下, R e L U ReLU ReLU激活函数仍会使神经网络的收敛速度变慢,不过这个问题可以使用输出的归一化方法来解决

  • 神经元坏死

    因为经过 R e L U ReLU ReLU激活函数激活后的值,要么大于0,要么等于0,所以在训练的过程中,可能会出现一些神经元始终不会被激活,从而让神经网络表达能力下降的问题。因为在进行反向传播求导的过程中,导数始终为0,也就意味着此神经元被关闭,也可称为神经元坏死

五、 L e a k y R e L U Leaky \quad ReLU LeakyReLU激活函数

  刚才我们已经提到了关于 R e L U ReLU ReLU激活函数的两个局限性,其中可以使用归一化的方法解决 R e L U ReLU ReLU激活函数具有的非零均值函数的性质,那么关于神经元坏死的问题该如何解决呢?为了解决此问题,研究人员在2013年提出了 L e a k y R e L U Leaky \quad ReLU LeakyReLU激活函数,其函数解析式如下所示:
L-ReLU ⁡ ( y ) = { y , y > 0 0.01 y , y ≤ 0 \operatorname{L-ReLU}(y)=\left\{\begin{array}{ll} y, & y>0 \\ 0.01 y, & y \leq 0 \end{array}\right. L-ReLU(y)={y,0.01y,y>0y0
   L e a k y R e L U Leaky \quad ReLU LeakyReLU激活函数对应的函数图像如下所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图22:Leaky ReLU激活函数对应的函数图像

  通过以上函数解析式以及函数图像可以看到, L e a k y R e L U Leaky \quad ReLU LeakyReLU激活函数在负半轴增加了一个很小的梯度值(即当 y ≤ 0 y≤0 y0时, L − R e L U ( y ) = 0.01 y L-ReLU(y)=0.01y LReLU(y)=0.01y),这样在保留一定稀疏性的情况下,也避免了神经元坏死。所以可以通过应用 L e a k y R e L U Leaky \quad ReLU LeakyReLU激活函数来解决神经元坏死的问题。

   L e a k y R e L U Leaky \quad ReLU LeakyReLU激活函数对应的导函数  L-ReLU  ′ \text { L-ReLU }^{\prime}  L-ReLU 图像如下所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图23:Leaky ReLU激活函数对应的导函数图像

  若要在神经网络中应用 L e a k y R e L U Leaky \quad ReLU LeakyReLU激活函数,只需要将激活函数 f f f替换为 L e a k y R e L U Leaky \quad ReLU LeakyReLU激活函数即可,这个过程如下图所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图24:使用Leaky ReLU激活函数的前向传播过程

六、 P a r a m e t r i c R e L U Parametric \quad ReLU ParametricReLU激活函数

  因为 L e a k y R e L U Leaky \quad ReLU LeakyReLU激活函数负半轴的梯度是固定的(一直固定为 0.01 y 0.01y 0.01y),所以不太灵活,在某些情况下可能性能不佳,为了解决这个问题,研究人员在2015年提出了 P a r a m e t r i c R e L U Parametric \quad ReLU ParametricReLU激活函数,其函数解析式如下所示:
P-ReLU ⁡ ( y ) = { y , y > 0 α y , y ≤ 0 \operatorname{P-ReLU}(y)=\left\{\begin{array}{ll} y, & y>0 \\ \alpha y, & y \leq 0 \end{array}\right. P-ReLU(y)={y,αy,y>0y0
   P a r a m e t r i c R e L U Parametric \quad ReLU ParametricReLU激活函数对应的函数图像如下所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图25:Parametric ReLU激活函数对应的函数图像

  通过以上函数解析式以及函数图像可以看到, P a r a m e t r i c R e L U Parametric \quad ReLU ParametricReLU激活函数将负半轴的梯度值更换成了可以动态学习调整的参数(即当 y ≤ 0 y≤0 y0时, P − R e L U ( y ) = α y P-ReLU(y)=\alpha y PReLU(y)=αy),而是否保留稀疏性或者抑制神经元,都要通过训练过程来确定,这样可以使神经网络动态调整训练过程中的参数值,从而获得最佳训练性能。

   P a r a m e t r i c R e L U Parametric \quad ReLU ParametricReLU激活函数对应的导函数图像 P − R e L U ′ P-ReLU^{\prime} PReLU如下图所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图26:Parametric ReLU激活函数对应的导函数图像

  若要在神经网络中应用 P a r a m e t r i c R e L U Parametric \quad ReLU ParametricReLU激活函数,只需要将激活函数 f f f替换为即可 P a r a m e t r i c R e L U Parametric \quad ReLU ParametricReLU激活函数,这个过程如下图所示:

relu激活函,深度学习,算法,人工智能,深度学习,激活函数,梯度下降

图27:使用Parametric ReLU激活函数的前向传播过程

总结

  以上就是本篇博客的全部内容了,内容不少,但是我认为难度并不是很大,如果尤其之前学习的基础,理解起来并不难,那么今天的学习就到这里了。下篇还会继续给大家带来高质量相关内容博客,敬请期待!文章来源地址https://www.toymoban.com/news/detail-804692.html

到了这里,关于激活函数、Sigmoid激活函数、tanh激活函数、ReLU激活函数、Leaky ReLU激活函数、Parametric ReLU激活函数详细介绍及其原理详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习-sigmoid函数和relu函数-个人解读

    今天博主来解读一下sigmoid函数和relu函数,我觉得很多同学可能都知道这两个函数是什么,他们干什么的,他们有什么用,但是呢?我想这两个常用的激活函数内在的本质,很多同学应该不是很理解,今天博主就给出自己的一些解读。 首先,我们先谈谈激活函数是什么: 激活

    2024年02月16日
    浏览(29)
  • Transformer模型-Feed Forward前馈网络和Relu激活函数的简明介绍

     今天介绍transformer模型的Feed Forward network前馈网络和Relu激活函数 位置感知Position-Wise前馈网络(FFN)由 两个全连接层 (fully connected dense layers,就是线性层(Linear Layer),或密集层(Dense Layer))组成,或者也可以称为多层感知机(MLP:multi-layer perceptron)。  参见: Transfor

    2024年04月13日
    浏览(22)
  • PyTorch学习笔记:nn.Tanh——Tanh激活函数

    功能:逐元素应用Tanh函数(双曲正切)对数据进行激活, 将元素调整到区间(-1,1)内 函数方程: Tanh ( x ) = tanh ( x ) = e x − e − x e x + e − x text{Tanh}(x)=text{tanh}(x)=frac{e^x-e^{-x}}{e^x+e^{-x}} Tanh ( x ) = tanh ( x ) = e x + e − x e x − e − x ​ 注意: 输入可以是任意尺寸的数据,输出尺寸

    2024年01月17日
    浏览(28)
  • 激活函数ReLU和SiLU的区别

    在这里,我就简单写一下两个激活函数的概念以及区别,详细的过程可以看看其他优秀的博主,他们写的已经非常好了,我就不必再啰嗦了。 ReLU (Rectified Linear Unit)和 SiLU (Sigmoid Linear Unit)都是常用的激活函数,它们的主要区别在于非线性形状不同。 概念: ReLU函数在 输

    2024年02月03日
    浏览(23)
  • YOLOv5改进系列(13)——更换激活函数之SiLU,ReLU,ELU,Hardswish,Mish,Softplus,AconC系列等

    【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制

    2024年02月12日
    浏览(29)
  • 高斯误差线性单元激活ReLU以外的神经网络

    高斯误差线性单位(GELU)激活函数由加州大学伯克利分校的Dan Hendrycks和芝加哥丰田技术研究所的Kevin Gimpel于2018年引入。激活函数是触发神经元输出的“开关”,随着网络的深入,其重要性也随之增加。最近几周,机器学习社区中的一些讨论使GELU重新成为人们关注的焦点。

    2024年02月16日
    浏览(24)
  • 深度学习:Sigmoid函数与Sigmoid层区别

    在深度学习和神经网络中,“Sigmoid” 是一个常见的术语,通常用来表示两个相关但不同的概念:Sigmoid激活函数和Sigmoid神经网络层。这两者在神经网络中的使用和功能有所不同。下面记录说明它们之间的区别。 功能 :Sigmoid激活函数是一种非线性函数,通常用于神经网络的隐

    2024年02月11日
    浏览(30)
  • relu函数的作用

    ReLU (Rectified Linear Unit) 是一种常用的激活函数,其定义为 f ( x ) = max ⁡ ( 0 , x ) f(x) = max(0, x) f ( x ) = max ( 0 , x ) 。它的作用是将输入值限制在非负范围内,并且在正半轴上具有线性性质。ReLU 激活函数在深度学习中应用广泛,主要有以下几个作用: 增强模型非线性能力:ReLU 可

    2024年02月12日
    浏览(28)
  • Pytorch学习笔记(5):torch.nn---网络层介绍(卷积层、池化层、线性层、激活函数层)

     一、卷积层—Convolution Layers  1.1 1d / 2d / 3d卷积 1.2 卷积—nn.Conv2d() nn.Conv2d 1.3 转置卷积—nn.ConvTranspose nn.ConvTranspose2d  二、池化层—Pooling Layer (1)nn.MaxPool2d (2)nn.AvgPool2d (3)nn.MaxUnpool2d  三、线性层—Linear Layer  nn.Linear  四、激活函数层—Activate Layer (1)nn.Sigmoid  (

    2024年01月20日
    浏览(34)
  • nn.Sequential、nn.Linear、nn.ReLU()函数

    nn.Sequential 是 PyTorch 中的一个容器模块,用于按照顺序组合多个神经网络层(如线性层、激活函数、池化层等)。这个容器允许你将各种层按照指定的顺序串联在一起,构建一个神经网络模型。nn.Sequential() 可以允许将整个容器视为单个模块(即相当于把多个模块封装成一个模

    2024年02月07日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包