当前位置:网站首页>激活函数和最常用的10个激活函数
激活函数和最常用的10个激活函数
2022-07-24 04:34:00 【安和橋北】
1. 什么是激活函数 activation function
激活函数 是一种添加到ANN中的函数,它决定了最终要发射给下一个神经元的内容。
在人工神经网络中,一个节点的激活函数 定义了该节点在给定的输入或输入的集合下的 输出。
因此,激活函数是确定神经网络输出的数学方程式。
2. artificial neuron的工作原理

上述过程的数学可视化如下图:

可以看到,每个输入x都有相对应的权值w,相乘后求和,然后加上偏置bias。最后根据激活函数,来决定输出。
3. 10种激活函数
1. Sigmoid激活函数
sigmoid的函数图像看起来像s型的曲线,sigmoid的意思 也有s型的。
函数图像:

函数表达式:

适合使用sigmoid激活函数的情况:
- 由于sigmoid函数的输出范围是0-1,所以它对每个神经元的输出都进行了归一化。
- 用于将预测概率作为输出的模型。因为概率的值就是0-1,所以非常合适。
- sigmoid函数梯度平滑,避免跳跃的输出值。
- 函数是可微的。
- 明确的预测,即非常接近1或0。
sigmoid函数的缺点:
倾向于梯度消失
补充:梯度不稳定
概念:在深度神经网络中的梯度是不稳定的,在靠近输入层的隐藏层中或消失或爆炸。这种不稳定性,才是深度神经网络中基于梯度学习的根本问题。
产生的根本原因:神经网络模型的层数过多,以及连乘效应。
具体内容见https://zhuanlan.zhihu.com/p/25631496
当x取值为负时,函数值趋近于0。换言之,函数输出不是以0为中心的,这会降低权重更新的效率。
sigmoid函数执行的是指数运算,计算机运行的速度比较慢。
2. Tanh/双曲正切激活函数
函数图像:

函数表达式:

tanh是一个双曲正切函数,它的曲线和sigmoid的曲线相类似,但是相对于sigmoid函数有一些优势。下面是两个函数的图像对比图:

tanh的优势:
- 首先,当输入较大或较小时,输出几乎是平滑的并且梯度较小,这不利于权重更新。二者的区别在于输出间隔,tanh的输出间隔是1,并且整个函数的输出以0为中心,比sigmoid函数要好。
- 在tanh中,负输入将被强映射为负,而零输入被映射为接近0。
注意,在一般的二元分类问题(在机器学习中,被认为是监督式学习)中,tanh函数用于隐藏层,而sigmoid函数用于输出层。但这个也不是固定的,具体情况具体对待。
3. ReLU激活函数
全称是Rectified Linear Unit,中文名字:修正线性单元。
函数图像:

函数表达式:

ReLU函数是深度学习中比较流行的一个激活函数,相较于sigmoid和tanh,有以下优点:
当输入为正的时候,不存在梯度饱和问题。
刚才的sigmoid函数和tanh函数就会出现梯度饱和问题,当输入x逐渐变大的时候,输出趋近于同一值,变化很小,造成模型训练缓慢。
计算速度快。ReLU函数是线性关系,sigmoid和tanh是非线性,因此计算速度快得多。
也有缺点:
Dead ReLU问题。
当输入为负的时候,relu全为0,直接失效。当然在正向传播中,这不是问题,但是在反向传播过程中,如果输入为负,则梯度将完全为0。sigmoid和tanh也有相同的问题。
ReLU函数不是以0为中心的函数。
4. Leaky ReLU激活函数
该激活函数是专门设计用来解决Dead ReLU问题的激活函数。
下面是两者的对比图:

函数表达式:

为什么leaky relu比relu更好呢?
- Leaky ReLU 通过把 x 的非常小的线性分量给予负输入(0.01x)来调整负值的零梯度(zero gradients)问题
- leak可以扩大relu的范围,通常a的值为0.01左右
- leaky relu函数的范围是负无穷 - 正无穷
5. ELU激活函数
ELU的英文全称是“Exponential Linear Units”,中文全称是“指数线性单元”。
看一下ELU、Leaky ReLU、ReLU三者的函数图像:

ELU的出现也解决了ReLU的问题。
与ReLU相比,ELU有负值,这会使激活的平均值接近0。均值接近0可以使学习更快,因为它们使梯度更接近自然梯度。
函数表达式:

显然,ELU具有ReLU的所有优点,并且:
- 没有Dead ReLU问题,输出的平均值接近0,以0为中心。
- ELU通过减少偏置偏移的影响,使正常梯度更接近于单位自然梯度,从而使均值向0加速学习。
- ELU当x较小时,会饱和值一个负值,从而减少前向传播的变异和信息。
注意,有一个小问题是,ELU的计算量更大。与Leaky ReLU相似,尽管理论上比ReLU更好,但是目前的实践并没有充分的证据表示确实比ReLU好。
6. PReLU激活函数
全称:parametric ReLU

主要特点就是这里的参数a是可变的,通常为0-1之间的数字,并且通常相对较小。
- 如果参数a = 0,则就是ReLU。
- 如果参数a > 0,则就是Leaky ReLU。
- 如果参数a是可学习的参数,则就是PReLU.
优点:
- 在负值域,PReLU的斜率较小,可以避免Dead ReLU问题。
- 与ELU相比,PReLU在负值域是线性运算。
7. Softmax激活函数
函数图像:

Softmax是用于多类分类问题的激活函数,在多类分类问题中,超过两个类标签则需要类成员关系。
对于长度为k的任意实向量,Softmax可以将其压缩为长度为k,值在(0,1)范围内,并且向量元素的总和为1的实向量。

Softmax 与正常的 max 函数不同:max 函数仅输出最大值,但 Softmax 确保较小的值具有较小的概率,并且不会直接丢弃。我们可以认为它是 argmax 函数的概率版本或「soft」版本。
Softmax 函数的分母结合了原始输出值的所有因子,这意味着 Softmax 函数获得的各种概率彼此相关。
Softmax函数的缺点:
- 在零点不可微。
- 负输入的梯度为0,这说明:对于该区域的激活,权重不会在反向传播期间更新,因此会产生永不激活的死亡神经元!
8. Swish激活函数
函数图像:

函数表达式:y = x * sigmoid (x)
Swish 激活函数的主要优点如下:
- 「无界性」有助于防止慢速训练期间,梯度逐渐接近 0 并导致饱和;(同时,有界性也是有优势的,因为有界激活函数可以具有很强的正则化,并且较大的负输入问题也能解决);
- 导数恒 > 0;
- 平滑度在优化和泛化中起了重要作用。
9. Maxout激活函数
10. Softplus激活函数
边栏推荐
- Up sampling method (deconvolution, interpolation, anti pooling)
- The second anniversary of opengauss' open source, cracking the pain point of database ecology
- [hope to answer] the data cannot be synchronized correctly
- What is the real HTAP? (2) Challenge article
- 高频小信号谐振放大器设计-课程设计Multisim仿真
- Traversal of binary tree
- Ship test / IMO a.799 (19) incombustibility test of marine structural materials
- What if Adobe pr2022 doesn't have open subtitles?
- Chery arizer 8 products are powerful, and "all excellent" is not for nothing
- 由硬件确定(服务的服绍,可参看官方2 和
猜你喜欢

From bio to realizing the function of simple multi person chat room -- IO model

64 attention mechanism 10 chapters

Journey of little black leetcode: 590. Post order traversal of n-ary tree

The second anniversary of opengauss' open source, cracking the pain point of database ecology

PMIX ERROR: ERROR in file gds_ ds12_ lock_ pthread.c

高频小信号谐振放大器设计-课程设计Multisim仿真

Live broadcast preview | practice sharing of opengauss' autonomous operation and maintenance platform dbmind

Once svchost Troubleshooting of exe process occupying a large amount of network bandwidth

Design and implementation of data analysis platform for intelligent commerce
![[translation] announce krius -- accelerate your monitoring and adoption of kubernetes](/img/6c/be19a910e60da701a054c4bf689000.jpg)
[translation] announce krius -- accelerate your monitoring and adoption of kubernetes
随机推荐
Journey of little black leetcode: 341. Flattening nested list iterator
These are controlled deployment capabilities, and then cited as
Chery arizer 8 products are powerful, and "all excellent" is not for nothing
Share a login interface template of QT implementation
00cm的非,与业务方确预上线一次,把所为有更好的泛
Alibaba Taobao Department interview question: how does redis realize inventory deduction and prevent oversold?
Question 146: LRU cache
The second anniversary of opengauss' open source, cracking the pain point of database ecology
The judges of C language classic exercises score the highest and lowest to get an average score
Little black gnawing leetcode:589. Preorder traversal of n-ary tree
基于C语言设计的一个医院叫号系统
What if Adobe pr2022 doesn't have open subtitles?
Text attack methods open source code summary
LabVIEW主VI冻结挂起
What is the general family of programmers working in first tier cities?
Where is the difficulty in attracting investment in the park? Inventory of difficulties and difficulties in attracting investment in industrial parks
J9 number theory: what is Web3.0? What are the characteristics of Web3.0?
归并排序(Merge sort)
Energy principle and variational method note 11: shape function (a dimension reduction idea)
[cornerstone of high concurrency] multithreading, daemon thread, thread safety, thread synchronization, mutual exclusion