Loading [MathJax]/jax/output/CommonHTML/autoload/mtable.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >A.深度学习基础入门篇[四]:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish等

A.深度学习基础入门篇[四]:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish等

作者头像
汀丶人工智能
发布于 2023-04-17 05:59:21
发布于 2023-04-17 05:59:21
1.4K0
举报
文章被收录于专栏:NLP/KGNLP/KG

1.激活函数

  • 激活函数是人工神经网络的一个极其重要的特征;
  • 激活函数决定一个神经元是否应该被激活,激活代表神经元接收的信息与给定的信息有关;
  • 激活函数对输入信息进行非线性变换,然后将变换后的输出信息作为输入信息传给下一层神经元。

激活函数的作用

如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,最终的输出都是输入的线性组合。 激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数

2.常见激活函数种类介绍

2.1 sigmoid

函数定义:

导数:

  • 优点:

    函数的输出映射在 (0,1)之间,单调连续,输出范围有限,优化稳定,可以用作输出层;

    • 求导容易;
  • 缺点:
    • 由于其软饱和性,一旦落入饱和区梯度就会接近于0,根据反向传播的链式法则,容易产生梯度消失,导致训练出现问题;
    • Sigmoid函数的输出恒大于0。非零中心化的输出会使得其后一层的神经元的输入发生偏置偏移(Bias Shift),并进一步使得梯度下降的收敛速度变慢;
    • 计算时,由于具有幂运算,计算复杂度较高,运算速度较慢。

2.2 tanh

函数定义:

导数:

  • 优点:
    • tanh比 sigmoid函数收敛速度更快;
    • 相比 sigmoid函数,tanh是以 0为中心的;
  • 缺点:
    • 与 sigmoid函数相同,由于饱和性容易产生的梯度消失;
    • 与 sigmoid函数相同,由于具有幂运算,计算复杂度较高,运算速度较慢。

2.3 ReLU

函数定义:

导数:

  • 优点:
    • 收敛速度快;
    • 相较于 sigmoid和 tanh中涉及了幂运算,导致计算复杂度高, ReLU​可以更加简单的实现;
    • 当输入 x>=0时,ReLU​ 的导数为常数,这样可有效缓解梯度消失问题;
    • 当 x<0时,ReLU​ 的梯度总是 0,提供了神经网络的稀疏表达能力;
  • 缺点:
    • ReLU​ 的输出不是以 0为中心的;
    • 神经元坏死现象,某些神经元可能永远不会被激活,导致相应参数永远不会被更新;
    • 不能避免梯度爆炸问题;

2.4 LReLU

函数定义:

导数:

  • 优点:
    • 避免梯度消失;
    • 由于导数总是不为零,因此可减少死神经元的出现;
  • 缺点:
    • LReLU​ 表现并不一定比 ReLU​ 好;
    • 无法避免梯度爆炸问题;

2.5 PReLU

函数定义 :

导数:

  • 优点:
    • PReLU​ 是 LReLU 的改进,可以自适应地从数据中学习参数;
    • 收敛速度快、错误率低;
    • PReLU 可以用于反向传播的训练,可以与其他层同时优化;

2.6 RReLU

函数定义:

导数:

优点:为负值输入添加了一个线性项,这个线性项的斜率在每一个节点上都是随机分配的(通常服从均匀分布)。

2.7 ELU

函数定义:

导数:

  • 优点:
    • 导数收敛为零,从而提高学习效率;
    • 能得到负值输出,这能帮助网络向正确的方向推动权重和偏置变化;
    • 防止死神经元出现。
  • 缺点:
    • 计算量大,其表现并不一定比 ReLU 好;
    • 无法避免梯度爆炸问题;

2.8 SELU

函数定义:

导数:

  • 优点:
    • SELU 是 ELU 的一个变种。其中 λ 和 α 是固定数值(分别为 1.0507和 1.6726);
    • 经过该激活函数后使得样本分布自动归一化到 0均值和单位方差;
    • 不会出现梯度消失或爆炸问题;

2.9 softsign

函数定义:

导数:

  • 优点:
    • softsign是 tanh激活函数的另一个替代选择;
    • softsign是反对称、去中心、可微分,并返回 −1和 1之间的值;
    • softsign更平坦的曲线与更慢的下降导数表明它可以更高效地学习;
  • 缺点:
    • 导数的计算比tanh更麻烦;

2.10 softplus

函数定义:

导数:

  • 优点:
    • 作为 relu 的一个不错的替代选择,softplus能够返回任何大于 0的值。
    • 与 relu不同,softplus的导数是连续的、非零的,无处不在,从而防止出现死神经元。
  • 缺点:
    • 导数常常小于 1,也可能出现梯度消失的问题。
    • softplus另一个不同于 relu的地方在于其不对称性,不以零为中心,可能会妨碍学习。

3.多分类激活函数

3.1 softmax

softmax 函数一般用于多分类问题中,它是对逻辑斯蒂(logistic)回归的一种推广,也被称为多项逻辑斯蒂回归模型(multi-nominal logistic mode)。假设要实现 k 个类别的分类任务,Softmax 函数将输入数据 xi映射到第 i个类别的概率 yi如下计算:

显然,

。图13 给出了三类分类问题的 softmax 输出示意图。在图中,对于取值为 4、1和-4 的 x1、x2和 x3,通过 softmax 变换后,将其映射到 (0,1) 之间的概率值。

由于 softmax 输出结果的值累加起来为 1,因此可将输出概率最大的作为分类目标(图 1 中被分类为第一类)。

也可以从如下另外一个角度来理解图 1 中的内容:给定某个输入数据,可得到其分类为三个类别的初始结果,分别用 x1、x2和 x3来表示。这三个初始分类结果分别是 4、1和-4。通过 Softmax 函数,得到了三个类别分类任务中以概率表示的更好的分类结果,即分别以 95.25%、4.71%和0.04% 归属于类别1、类别2 和类别3。显然,基于这样的概率值,可判断输入数据属于第一类。可见,通过使用 Softmax 函数,可求取输入数据在所有类别上的概率分布。

3.2 swish

函数定义:

其中,σ是 sigmoid函数。

  • swish激活函数的一阶导数如下
  • swish激活函数的一阶和二阶导数的图形如
  • 超参数版 swish激活函数:
  • 优点:
    • 当 x>0时,不存在梯度消失的情况;当 x<0时,神经元也不会像 ReLU 一样出现死亡的情况;
    • swish处处可导,连续光滑;
    • swish并非一个单调的函数;
    • 提升了模型的性能;
  • 缺点:
    • 计算量大;

3.3 hswish

函数定义:

  • 优点: 与 swish相比 hard swish减少了计算量,具有和 swish同样的性质。
  • 缺点: 与 relu6相比 hard swish的计算量仍然较大。

4.激活函数的选择

  1. 浅层网络在分类器时,sigmoid函数及其组合通常效果更好。
  2. 由于梯度消失问题,有时要避免使用 sigmoid和 tanh函数。
  3. relu函数是一个通用的激活函数,目前在大多数情况下使用。
  4. 如果神经网络中出现死神经元,那么 prelu函数就是最好的选择。
  5. relu函数只能在隐藏层中使用。
  6. 通常,可以从 relu函数开始,如果 relu函数没有提供最优结果,再尝试其他激活函数。

5. 激活函数相关问题总结

5.1 为什么 relu不是全程可微/可导也能用于基于梯度的学习?

从数学的角度看 relu在 0点不可导,因为它的左导数和右导数不相等;但在实现时通常会返回左导数或右导数的其中一个,而不是报告一个导数不存在的错误,从而避免了这个问题。

5.2 为什么 tanh的收敛速度比 sigmoid快?

由上面两个公式可知 tanh引起的梯度消失问题没有 sigmoid严重,所以 tanh收敛速度比 sigmoid快。

5.3 sigmoid 和 softmax 有什么区别?

  • 二分类问题时 sigmoid和 softmax是一样的,都是求 cross entropy loss,而 softmax可以用于多分类问题。
  • softmax是 sigmoid的扩展,因为,当类别数 k=2时,softmax回归退化为 logistic回归。
  • softmax建模使用的分布是多项式分布,而 logistic则基于伯努利分布。
  • 多个 logistic回归通过叠加也同样可以实现多分类的效果,但是 softmax回归进行的多分类,类与类之间是互斥的,即一个输入只能被归为一类;多 logistic回归进行多分类,输出的类别并不是互斥的,即”苹果”这个词语既属于”水果”类也属于”3C”类别。

的梯度消失问题没有 sigmoid严重,所以 tanh收敛速度比 sigmoid快。

5.3 sigmoid 和 softmax 有什么区别?

  • 二分类问题时 sigmoid和 softmax是一样的,都是求 cross entropy loss,而 softmax可以用于多分类问题。
  • softmax是 sigmoid的扩展,因为,当类别数 k=2时,softmax回归退化为 logistic回归。
  • softmax建模使用的分布是多项式分布,而 logistic则基于伯努利分布。
  • 多个 logistic回归通过叠加也同样可以实现多分类的效果,但是 softmax回归进行的多分类,类与类之间是互斥的,即一个输入只能被归为一类;多 logistic回归进行多分类,输出的类别并不是互斥的,即”苹果”这个词语既属于”水果”类也属于”3C”类别。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深度学习基础入门篇[四]:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish等
深度学习基础入门篇四:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish等
汀丶人工智能
2023/04/12
14.7K1
深度学习基础知识(一)--激活函数
在神经网络中加入激活函数存在的意义就是为网络增加非线性因素,比如全卷积神经网络,不加入激活函数,就是一堆线性操作矩阵运算,对于复杂任务仅用线性操作而不用复杂的函数表示肯定效果不会好。
languageX
2022/05/04
4.7K1
【深度学习】神经网络为何非激活函数不可?
激活函数是神经网络中一个至关重要的概念,决定了某个神经元是否被激活,判断该神经元获得的信息是否有用,并决定该保留还是该去掉此神经元。
zenRRan
2020/02/18
1.2K0
激活函数、正向传播、反向传播及softmax分类器,一篇就够了!
原文链接:https://juejin.im/post/5d46816e51882560b9544ac1
mantch
2019/08/14
1.3K0
深度学习500问——Chapter03:深度学习基础(2)
超参数:在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。
JOYCE_Leo16
2024/03/19
1670
深度学习500问——Chapter03:深度学习基础(2)
深度学习中的激活函数完全指南:在数据科学的诸多曲线上进行现代之旅
原文:Towards Data Science deephub翻译组:zhangzc
deephub
2020/05/09
1.2K0
深度学习中的激活函数完全指南:在数据科学的诸多曲线上进行现代之旅
深度学习中的激活函数总结
,当n趋近于正无穷,激活函数的导数趋近于0,称之为右饱和;当n趋近于负无穷,激活函数的导数趋近于0,称之为左饱和。 当一个函数既满足左饱和又满足右饱和的时候我们称之为饱和。 不满足上述两个条件的,称为不饱和激活函数。 常见的激活函数,依照饱和或不饱和划分如下: 饱和激活函数:
chaibubble
2021/12/07
8430
深度学习中的激活函数总结
五万字总结,深度学习基础。「建议收藏」
人工神经网络(Artificial Neural Networks,简写为ANNs)是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的,并具有自学习和自适应的能力。神经网络类型众多,其中最为重要的是多层感知机。为了详细地描述神经网络,我们先从最简单的神经网络说起。
全栈程序员站长
2022/08/31
1K0
五万字总结,深度学习基础。「建议收藏」
常用激活函数比较
本文结构: 什么是激活函数 为什么要用 都有什么 sigmoid ,ReLU, softmax 的比较 如何选择 ---- 1. 什么是激活函数 如下图,在神经元中,输入的 inputs 通过加权,求
杨熹
2018/04/03
1.7K0
常用激活函数比较
入门必看!一文读懂神经网络中的激活函数(二)
看看深度学习之激活函数 本篇接着上一篇推文入门《必看!从零开始了解到训练神经网络(一)》,在介绍完神经网络的基本原理和结构之后,继续介绍神经网络中的关键之一 —— 激活函数。 树根这一部分会给大家通俗讲一下激活函数的概念,原理以及作用,还有实际应用中各种激活函数的优缺点。因为激活函数本身就是一种数学函数,推文中出现数学公式在所难免,但是树根力求讲得通俗清晰,让初学者都能读懂,轻松入门深度学习。 1 感知机 Percrptron Activation Function 感知机由Rosenblatt于1957年
企鹅号小编
2018/01/31
3K0
入门必看!一文读懂神经网络中的激活函数(二)
神经网络初学者的激活函数指南
如果你刚刚开始学习神经网络,激活函数的原理一开始可能很难理解。但是如果你想开发强大的神经网络,理解它们是很重要的。
自学气象人
2023/06/21
3200
神经网络初学者的激活函数指南
干货 | 深入理解深度学习中的激活函数
生物神经网络是人工神经网络的起源。然而,人工神经网络(ANNs)的工作机制与大脑的工作机制并不是十分的相似。不过在我们了解为什么把激活函数应用在人工神经网络中之前,了解一下激活函数与生物神经网络的关联依然是十分有用的。
用户1150922
2019/05/27
7080
为神经网络选择正确的激活函数
来源:Deephub Imba本文共3400字,建议阅读5分钟本篇文章中我们将讨论神经网络中常见的激活函数,并使用可视化技术帮助你了解激活函数的函数定义和不同的使用场景。 我们都知道神经网络模型中使用激活函数的主要目的是将非线性特性引入到我们的网络中,强化网络的学习能力。激活函数应用于隐藏层和输出层中每个节点的称为 z 的输入加权和(此处输入可以是原始数据或前一层的输出)。 在本篇文章中我们将讨论神经网络中常见的激活函数,并使用可视化技术帮助你了解激活函数的函数定义和不同的使用场景。 在看完本文章后,你可以
数据派THU
2022/03/04
1.4K0
激活函数 | 深度学习领域最常用的10个激活函数,详解数学原理及优缺点
激活函数是神经网络模型重要的组成部分,今天分享从激活函数的数学原理出发,详解了十种激活函数的优缺点。
计算机视觉研究院
2021/03/13
34.1K0
深度学习4大激活函数
如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层输出实际上都是上层输入的线性函数。
皮大大
2023/08/25
4250
深度学习4大激活函数
【机器学习】揭开激活函数的神秘面纱
激活函数(Activation Function)是神经网络中非常关键的组成部分,主要用于在神经网络的节点(或称神经元)上引入非线性因素。这是因为神经网络的基本计算单元是线性加权和,而单纯的线性组合无法模拟现实世界中复杂的非线性关系。通过引入激活函数,神经网络能够学习并模拟各种复杂的映射关系。
小言从不摸鱼
2024/09/10
2150
【机器学习】揭开激活函数的神秘面纱
神经网络中常见的激活函数
深度学习中已经成为了人工智能领域的必备工具,源于人工神经网络的研究,含多个隐藏层的多层感知器就是一种深度学习结构。寻找隐藏层的权重参数和偏置的过程,就是常说的“学习”过程,其遵循的基本原则就是使得网络最终的输出误差最小化。在神经⽹络中,激活函数是必须选择的众多参数之⼀,从而使神经⽹络获得最优的结果和性能。
半吊子全栈工匠
2022/12/03
2K0
神经网络中常见的激活函数
神经网络的激活函数
人工神经网络( Artificial Neural Network, 简写为ANN)也简称为神经网络(NN),是一种模仿生物神经网络结构和功能的 计算模型。人脑可以看做是一个生物神经网络,由众多的神经元连接而成。各个神经元传递复杂的电信号,树突接收到输入信号,然后对信号进行处理,通过轴突输出信号。
@小森
2024/05/03
1710
神经网络的激活函数
吾爱NLP(2)--解析深度学习中的激活函数
由惑而生,所以我打算总结一下深度学习模型中常用的激活函数的一些特性,方便大家日后为模型选择合适的激活函数。   说到激活函数,就不能不提神经网络或者深度学习,从一个新手入门深度学习领域,我觉得首先需要理解三个基本的构成要素:
流川枫
2018/09/12
9070
吾爱NLP(2)--解析深度学习中的激活函数
深度学习中常见的激活函数总结(摘自我写的书)
Sigmoid函数,也称S曲线函数,是使用范围最广的一类激活函数,具有指数函数形状,在物理意义上最为接近生物神经元,在生物学中也是常见的S型函数,又称为S型生长曲线,是神经网络中最常用的激活函数之一。Sigmoid函数由下列公式定义:
黄鸿波
2020/04/14
1.4K0
推荐阅读
相关推荐
深度学习基础入门篇[四]:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish等
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档