当前位置:网站首页 > Haskell函数式编程 > 正文

sigmod激活函数的输入(激活函数mish)



图片

大侠幸会,在下全网同名[算法金]图片
0 基础转 AI 上岸,多个算法赛 Top
[日更万日,让更多人享受智能乐趣]






激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式, 是确定神经网络输出的数学方程式

图片

by deepgram

激活函数是神经网络模型重要的组成部分,俺们从激活函数的数学原理出发,详解激活函数的优缺点。
文末总结处,看闻[激]起舞;文字略长,建议先收藏再细品...



图片

图片


1. Sigmoid函数


1.1 定义和函数形式

Sigmoid函数是一种常用的激活函数,其数学形式为:

图片

它将输入的实数映射到(0,1)之间,常用于输出层的二分类问题,可以将神经网络的输出解释为概率。


1.2 手动实现并可视化

你可以使用Python代码手动实现Sigmoid函数,并通过绘图工具将其可视化,以便理解其形状和特点。





图片


1.3 作用和用途

Sigmoid函数在神经网络中主要用于输出层的二分类问题,将神经网络的输出映射到(0,1)之间的概率值,便于进行分类决策。


1.4 优点和局限性

  • 优点
    • 输出范围为(0,1),可以被解释为概率。
    • 平滑的S形曲线,可以保持梯度的连续性,有利于反向传播算法的稳定性。
  • 局限性
    • Sigmoid函数存在梯度饱和问题,当输入较大或较小时,梯度会接近于零,导致梯度消失,影响网络的训练。
    • Sigmoid函数的输出不是以零为中心的,可能导致梯度更新不均匀,影响训练速度。


1.5 梯度消失和梯度爆炸问题

Sigmoid函数在输入较大或较小时,会出现梯度接近于零的问题,导致梯度消失,使得网络难以收敛或学习缓慢。


1.6 建议的使用场景

  • 二分类问题的输出层。
  • 对输出范围有明确要求的任务。
更多内容,见免费知识星球



图片

图片


2. Tanh函数


2.1 定义和函数形式

Tanh函数(双曲正切函数)是一种常用的激活函数,其数学形式为:

图片

它将输入的实数映射到(-1,1)之间,具有S形曲线,常用于隐藏层的激活函数。


2.2 手动实现并可视化

你可以使用Python代码手动实现Tanh函数,并通过绘图工具将其可视化,以便理解其形状和特点。

 
  

图片

图片




2.3 作用和用途

Tanh函数在神经网络中常用于隐藏层的激活函数,将输入映射到(-1,1)之间,可以提供更广泛的输出范围,有利于神经网络的学习。


2.4 优点和局限性

  • 优点
    • 输出范围为(-1,1),相比Sigmoid函数更广泛,可以提供更大的梯度,有利于神经网络的学习。
    • Tanh函数是Sigmoid函数的平移和缩放版本,具有相似的S形曲线,但输出以零为中心,有助于减少梯度更新不均匀的问题。
  • 局限性
    • Tanh函数同样存在梯度饱和问题,当输入较大或较小时,梯度会接近于零,导致梯度消失,影响网络的训练。
    • Tanh函数的输出范围仍然有限,可能在某些情况下导致梯度爆炸或梯度消失问题。


2.5 梯度消失和梯度爆炸问题

Tanh函数在输入较大或较小时,同样会出现梯度接近于零的问题,导致梯度消失,使得网络难以收敛或学习缓慢。

2.6 建议的使用场景

  • 隐藏层的激活函数,特别是对输出范围有明确要求的任务。
  • 在需要使用Sigmoid函数的情况下,考虑使用Tanh函数代替,因为Tanh函数具有更广泛的输出范围。




图片

图片


3. ReLU函数(Rectified Linear Unit)

3.1 定义和函数形式

ReLU函数是一种简单而有效的激活函数,其数学形式为:

图片

它将输入的实数映射到大于等于零的范围,如果输入小于零,则输出为零;如果输入大于零,则输出与输入相同。

3.2 手动实现并可视化

你可以使用Python代码手动实现ReLU函数,并通过绘图工具将其可视化,以便理解其形状和特点。



图片

3.3 作用和用途

ReLU函数在神经网络中广泛用于隐藏层的激活函数,能够加速训练过程,避免了Sigmoid函数和Tanh函数存在的梯度消失问题。

3.4 优点和局限性

  • 优点
    • ReLU函数在输入大于零时,梯度恒为1,不会饱和,避免了梯度消失问题,有利于加速训练过程。
    • 计算简单,只需比较输入和零的大小即可,运算速度快。
    • 只有一个分段,导数在大多数情况下为常数,便于反向传播计算。
  • 局限性
    • ReLU函数在输入小于零时,导数为零,称为“神经元死亡”,可能导致对应神经元永远无法激活,称为“ReLU死亡”问题。
    • 输出不以零为中心,可能导致梯度更新不均匀,影响网络性能。


3.5 梯度消失和梯度爆炸问题

ReLU函数在输入小于零时,导数为零,可能导致梯度消失问题。但在输入大于零时,梯度恒为1,不会饱和,避免了梯度爆炸问题。

3.6 建议的使用场景

  • 隐藏层的激活函数,特别是在需要加速训练过程和处理稀疏数据的情况下。
  • 对于不需要输出负值的任务,可以考虑使用ReLU函数代替其他激活函数。
免费知识星球,欢迎加入交流



图片

图片



4.1 定义和函数形式

Leaky ReLU函数是对ReLU函数的改进,其数学形式为:

图片

其中a是一个小的斜率(通常接近于零),当输入小于零时,不再输出零,而是输出输入的一个小比例,以解决ReLU函数在负数部分输出为零的问题。

4.2 手动实现并可视化

你可以使用Python代码手动实现Leaky ReLU函数,并通过绘图工具将其可视化,以便理解其形状和特点。

 
  

图片

4.3 作用和用途

Leaky ReLU函数在神经网络中用于隐藏层的激活函数,能够解决ReLU函数在负数部分输出为零的问题,避免“神经元死亡”的情况。

4.4 优点和局限性

  • 优点
    • 解决了ReLU函数在负数部分输出为零的问题,避免了“神经元死亡”的情况。
    • 保留了ReLU函数的大部分优点,计算简单,不会出现梯度爆炸问题。
  • 局限性
    • 需要额外的参数a,需要手动调整或者通过训练学习,可能增加了模型的复杂性。
    • 当a的值选择不当时,可能会导致模型性能下降。


4.5 梯度消失和梯度爆炸问题

Leaky ReLU函数在输入小于零时,输出的斜率为常数,不会出现梯度消失问题;在输入大于零时,输出的斜率为1,不会出现梯度爆炸问题。

4.6 示例和应用

  • 隐藏层的激活函数,特别是在需要避免ReLU死亡问题的情况下。
  • 适用于训练速度较慢的深度神经网络。


4.7 建议的使用场景

  • 在需要避免ReLU函数输出为零的情况下使用,例如对负值敏感的任务或深度神经网络中的隐藏层。
  • 当需要控制负值部分输出的比例时,可以通过调整参数a来灵活使用Leaky ReLU函数。




图片

图片


5. Parametric ReLU函数

5.1 定义和函数形式

Parametric ReLU函数是对ReLU函数的改进,其数学形式为:

图片

其中a是一个学习的参数,可以被网络训练得到,与Leaky ReLU函数不同的是,Parametric ReLU函数的斜率是通过训练得到的。

5.2 手动实现并可视化

你可以使用Python代码手动实现Parametric ReLU函数,并通过绘图工具将其可视化,以便理解其形状和特点。



图片

5.3 作用和用途

Parametric ReLU函数在神经网络中用于隐藏层的激活函数,与ReLU和Leaky ReLU相比,其斜率可以通过训练过程中学习得到,具有更强的灵活性。

5.4 优点和局限性

  • 优点
    • 可以通过学习得到参数a,具有更强的灵活性,可以根据任务自动调整斜率。
    • 解决了ReLU函数输出为零和Leaky ReLU函数固定斜率的问题。
  • 局限性
    • 需要额外的参数a,增加了模型的复杂度。
    • 需要更多的计算资源和训练时间,可能导致训练过程更加复杂和耗时。


5.5 梯度消失和梯度爆炸问题

Parametric ReLU函数在输入小于零时,具有可学习的斜率,有助于避免梯度消失问题;在输入大于零时,输出的斜率为1,不会出现梯度爆炸问题。

5.6 示例和应用

  • 隐藏层的激活函数,特别是在需要更灵活的斜率调整的情况下。
  • 适用于需要对负值部分输出进行自适应调节的任务。


5.7 建议的使用场景

  • 当需要更灵活的斜率调整时,可以考虑使用Parametric ReLU函数代替ReLU和Leaky ReLU函数。
  • 当任务要求输出的负值部分具有不同的影响程度时,可以使用Parametric ReLU函数进行自适应调节。
免费知识星球,欢迎加入,一起切磋或催更



图片

6.1 定义和函数形式

ELU函数是一种激活函数,其数学形式为:

图片

其中,α是一个较小的正数,通常取为1。ELU函数结合了ReLU的优点,并且解决了ReLU函数在负数部分输出为零的问题。

6.2 手动实现并可视化

你可以使用Python代码手动实现ELU函数,并通过绘图工具将其可视化,以便理解其形状和特点。

 
  

图片

6.3 作用和用途

ELU函数在神经网络中作为激活函数,结合了ReLU的优点,能够加速训练,并解决了ReLU函数在负数部分输出为零的问题。

6.4 优点和局限性

  • 优点
    • 在输入大于零时,ELU函数的导数始终为1,避免了ReLU函数的“神经元死亡”问题,有利于加速训练。
    • 在输入小于等于零时,ELU函数不会输出零,解决了ReLU函数的“神经元死亡”问题,增强了模型的稳定性。
  • 局限性
    • ELU函数相对复杂,计算代价较高。


6.5 梯度消失和梯度爆炸问题

ELU函数在输入大于零时,导数恒为1,不会出现梯度消失问题;在输入小于等于零时,导数的值也较大,有利于避免梯度消失问题。

6.6 示例和应用

  • 隐藏层的激活函数,特别是在需要加速训练和提高稳定性的情况下。
  • 适用于需要对负值部分输出进行更灵活处理的任务。


6.7 建议的使用场景

  • 当需要解决ReLU函数的“神经元死亡”问题时,可以考虑使用ELU函数代替。
  • 当需要更灵活地调节负值部分输出的情况下,可以使用ELU函数进行更细致的调节。

图片

7.1 定义和函数形式

Softmax函数是一种常用的激活函数,用于将向量转化为概率分布,其数学形式为:

图片

其中,Xi 是输入向量的第i个元素,n是向量的长度。Softmax函数将输入向量的每个元素转化为一个概率值,使得所有元素的概率之和为1。

7.2 手动实现并可视化

你可以使用Python代码手动实现Softmax函数,并通过绘图工具将其可视化,以便理解其形状和特点。

图片


7.3 作用和用途

Softmax函数常用于神经网络的多分类问题的输出层,将神经网络的输出转化为类别概率分布,便于进行分类决策。

7.4 优点和局限性

  • 优点
    • 将神经网络的输出转化为概率分布,直观且易于理解。
    • 求解简单,可用于多分类问题。
  • 局限性
    • Softmax函数对输入的敏感度较高,可能在输入较大或较小时产生数值不稳定的情况。
    • Softmax函数的输出受到输入的所有元素的影响,可能导致类别之间的差异不够明显。


7.5 梯度消失和梯度爆炸问题

Softmax函数的梯度通常通过交叉熵损失函数进行反向传播计算,不会出现梯度消失或梯度爆炸的问题。

7.6 示例和应用

  • 图像分类任务中的多分类问题。
  • 自然语言处理中的词语分类问题。


7.7 建议的使用场景

  • 多分类问题的输出层,特别是需要将神经网络的输出解释为类别概率分布时。
  • 当任务需要处理多个类别的情况,且类别之间没有明显的顺序关系时。

图片

8.1 定义和函数形式

Swish函数是由谷歌提出的激活函数,其数学形式为:

图片

Swish函数结合了线性性质和非线性性质,可以被视为是ReLU函数的平滑版本,一定程度上提升了模型的性能。

8.2 手动实现并可视化

你可以使用Python代码手动实现Swish函数,并通过绘图工具将其可视化,以便理解其形状和特点。

 
  

图片

8.3 作用和用途

Swish函数作为一种激活函数,在神经网络中用于隐藏层的激活函数。它结合了线性性质和非线性性质,在一定程度上提升了模型的性能。

8.4 优点和局限性

  • 优点
    • Swish函数结合了ReLU函数的非线性性质和sigmoid函数的平滑性质,具有更好的性能表现。
    • 相较于ReLU函数,Swish函数在一些情况下能够提供更好的结果。
  • 局限性
    • Swish函数相对复杂,计算代价较高,可能增加模型的训练时间和资源消耗。


8.5 梯度消失和梯度爆炸问题

Swish函数的梯度通常不会出现梯度消失或梯度爆炸的问题,但在极端情况下可能存在数值不稳定的情况。

8.6 示例和应用

  • 在图像分类、语音识别等领域中的深度学习任务中广泛应用。

9.1 定义和函数形式

Maxout函数是一种激活函数,将输入的一组实数分成若干组,然后取每组的最大值作为输出,其数学形式为:

图片

其中,x 是输入向量,Wi 和 bi 是参数,k 是每组的大小。

9.2 通过Python代码手动实现并可视化

由于Maxout函数的实现涉及参数 wb,因此在这里我们只提供一个简单的示例来说明其原理。在实际应用中,参数通常是通过神经网络的训练学习得到的。

Maxout函数输出:[3 6 9]

9.3 作用和用途

Maxout函数在神经网络中常用于隐藏层的激活函数,能够提供更强的拟合能力,增强模型的表达能力。

9.4 优点和局限性

  • 优点
    • Maxout函数具有更强的拟合能力,能够处理更复杂的非线性关系。
    • 相对于其他激活函数,Maxout函数可以通过学习参数来自适应地决定最大值的组合。
  • 局限性
    • Maxout函数的参数较多,可能增加了模型的复杂度和训练时间。
    • 对于小数据集或者低维数据,可能会出现过拟合的情况。


9.5 梯度消失和梯度爆炸问题

Maxout函数的梯度通常通过反向传播算法进行计算,不会出现梯度消失或梯度爆炸的问题。

9.6 建议的使用场景

  • 当需要处理复杂的非线性关系时,可以考虑使用Maxout函数作为隐藏层的激活函数。
  • 适用于大数据集和高维数据的深度学习任务。
  • 图像分类、语音识别等领域中的深度学习任务。

10.1 定义和函数形式

Softplus函数是一种激活函数,其数学形式为:

图片

Softplus函数是ReLU函数的平滑版本,避免了ReLU在零点处不可导的问题,同时保留了ReLU函数的非线性特性。

10.2 通过Python代码手动实现并可视化

你可以使用Python代码手动实现Softplus函数,并通过绘图工具将其可视化,以便理解其形状和特点。

 
  

图片

10.3 作用和用途

Softplus函数常用于神经网络的隐藏层的激活函数,特别是在较深的神经网络中。它是ReLU函数的平滑版本,可以缓解梯度消失问题,同时保留了非线性特性。

10.4 优点和局限性

  • 优点
    • Softplus函数是ReLU函数的平滑版本,避免了ReLU在零点处不可导的问题。
    • 具有较好的非线性特性,在一些深度神经网络中表现良好。
  • 局限性
    • Softplus函数的计算较复杂,可能会增加模型的训练时间。
    • 当输入较大时,Softplus函数的输出接近线性关系,可能导致信息损失。


10.5 梯度消失和梯度爆炸问题

Softplus函数的梯度通常通过反向传播算法进行计算,相比于ReLU函数,Softplus函数的梯度在输入较小或较大时更稳定,可以缓解梯度消失和梯度爆炸问题。

10.6 建议的使用场景

  • 当需要缓解ReLU函数在零点处不可导的问题,同时保留非线性特性时,可以考虑使用Softplus函数作为隐藏层的激活函数。
  • 适用于较深的神经网络中,特别是在需要缓解梯度消失问题的情况下。

11.1 定义和函数形式

Mish函数是一种激活函数,其数学形式为:

图片

Mish函数由印度的研究人员提出,相比ReLU函数,Mish函数在一些任务上表现更好。

11.2 通过Python代码手动实现并可视化

你可以使用Python代码手动实现Mish函数,并通过绘图工具将其可视化,以便理解其形状和特点。

图片

11.3 作用和用途

Mish函数常用作神经网络的激活函数,相比ReLU函数,在一些任务上表现更好。它结合了ReLU函数、tanh函数和softplus函数的优点。

11.4 优点和局限性

  • 优点
    • Mish函数在一些任务上表现更好,相比ReLU函数具有更强的拟合能力。
    • 结合了ReLU函数、tanh函数和softplus函数的优点,具有较好的非线性特性。
  • 局限性
    • Mish函数相对较复杂,计算代价较高,可能增加模型的训练时间。
    • 当输入较大时,Mish函数的输出可能接近线性关系,可能导致信息损失。


11.5 梯度消失和梯度爆炸问题

Mish函数的梯度通常通过反向传播算法进行计算,相比于ReLU函数,Mish函数的梯度在输入较小或较大时更稳定,可以缓解梯度消失和梯度爆炸问题。

11.6 建议的使用场景

  • 当需要更好的拟合能力,以及结合ReLU、tanh和softplus函数的优点时,可以考虑使用Mish函数作为隐藏层的激活函数。
  • 适用于深度神经网络的隐藏层激活函数。
  • 在一些任务上表现更好,例如图像分类、语音识别等领域的深度学习任务。

12.1 定义和函数形式

GELU函数(Gaussian Error Linear Units)是一种激活函数,其数学形式为:

图片

GELU函数由OpenAI提出,被证明在一些NLP(自然语言处理)任务上效果良好。

12.2 通过Python代码手动实现并可视化

你可以使用Python代码手动实现GELU函数,并通过绘图工具将其可视化,以便理解其形状和特点。

 
  

图片

12.3 作用和用途

GELU函数常用于深度神经网络的激活函数,特别是在一些NLP任务中表现良好。它结合了高斯分布和非线性激活函数的优点。

12.4 优点和局限性

  • 优点
    • GELU函数在一些NLP任务中表现良好,具有较好的非线性特性。
    • 结合了高斯分布和非线性激活函数的优点,能够提升模型的性能。
  • 局限性
    • GELU函数相对复杂,计算代价较高,可能增加模型的训练时间。


12.5 梯度消失和梯度爆炸问题

GELU函数的梯度通常通过反向传播算法进行计算,相比于ReLU函数,GELU函数的梯度在输入较小或较大时更稳定,可以缓解梯度消失和梯度爆炸问题。

12.6 示例和应用

  • 在一些NLP任务中广泛应用,例如情感分析、文本分类等。


12.7 建议的使用场景

  • 当需要在NLP任务中获得更好的性能时,可以考虑使用GELU函数作为隐藏层的激活函数。
  • 适用于需要较好的非线性特性的深度学习任务中。
[ 抱个拳,总个结 ]
写的内容太长 图片
已经手抖腿软 图片
无力总个结了 图片
舞一段来助兴 图片


图片




图片
到此这篇sigmod激活函数的输入(激活函数mish)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 3dxml是什么格式(3dxml是什么格式?)2025-11-03 17:45:05
  • 指数与对数函数图像(指数与对数函数图像能变换得到的条件)2025-11-03 17:45:05
  • 字符串改成int(字符串改成日期格式)2025-11-03 17:45:05
  • sigmoid函数范围(sigmoid函数计算公式)2025-11-03 17:45:05
  • 字符串转换字符代码的函数是(字符串转换字符代码的函数是)2025-11-03 17:45:05
  • pcap文件格式转换(pcap文件是什么)2025-11-03 17:45:05
  • 字符串转utf8编码(字符串转编码格式)2025-11-03 17:45:05
  • 锁住表格(锁住表格公式)2025-11-03 17:45:05
  • cnn算法公式(cnn算法步骤)2025-11-03 17:45:05
  • 字符串转换为int数组(字符串转换为int数组的函数)2025-11-03 17:45:05
  • 全屏图片