当前位置:网站首页>2.4 激活函数
2.4 激活函数
2022-07-01 09:03:00 【Enzo 想砸电脑】
目录
一、激活函数
激活函数再神经网络中作用有很多,主要作用是给神经网络提供非线性建模能力。如果没有激活函数,那么再多层的神经网络也只能处理线性可分问题。
所以,神经网络中使用激活函数来加入非线性因素,提高模型的表达能力
二、常见的激活函数
1. Sigmoid函数
Sigmoid函数也叫Logistic函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。sigmoid是一个十分常见的激活函数,函数的表达式如下:
f ( x ) = 1 1 + e − x f_{(x)} =\frac 1 {1+e^{-x}} f(x)=1+e−x1
图像类似一个S形曲线
在什么情况下适合使用 Sigmoid 激活函数呢?
- Sigmoid 函数的输出范围是 0 到 1。由于输出值限定在 0 到1,因此它对每个神经元的输出进行了归一化;
- 用于将预测概率作为输出的模型。由于概率的取值范围是 0 到 1,因此 Sigmoid 函数非常合适;
- 梯度平滑,避免「跳跃」的输出值;
- 函数是可微的。这意味着可以找到任意两个点的 sigmoid 曲线的斜率;
- 明确的预测,即非常接近 1 或 0。
Sigmoid 激活函数存在的不足:
- 梯度消失:注意:Sigmoid 函数趋近 0 和 1 的时候变化率会变得平坦,也就是说,Sigmoid 的梯度趋近于 0。神经网络使用 Sigmoid 激活函数进行反向传播时,输出接近 0 或 1 的神经元其梯度趋近于 0。这些神经元叫作饱和神经元。因此,这些神经元的权重不会更新。此外,与此类神经元相连的神经元的权重也更新得很慢。该问题叫作梯度消失。因此,想象一下,如果一个大型神经网络包含 Sigmoid 神经元,而其中很多个都处于饱和状态,那么该网络无法执行反向传播。
- 不以零为中心:Sigmoid 输出不以零为中心的,,输出恒大于0,非零中心化的输出会使得其后一层的神经元的输入发生偏置偏移(Bias Shift),并进一步使得梯度下降的收敛速度变慢。
- 计算成本高昂:exp() 函数与其他非线性激活函数相比,计算成本高昂,计算机运行起来速度较慢。
2. Tanh/双曲正切激活函数
Tanh 激活函数又叫作双曲正切激活函数(hyperbolic tangent activation function)。与 Sigmoid 函数类似,Tanh 函数也使用真值,但 Tanh 函数将其压缩至-1 到 1 的区间内。与 Sigmoid 不同,Tanh 函数的输出以零为中心,因为区间在-1 到 1 之间。
函数表达式:
f ( x ) = t a n h ( x ) = e x − e − x e x + e − x = 2 1 + e − 2 x − 1 f_{(x)}=tanh(x) = \frac {e^x - e^{-x}} {e^x + e^{-x}} = \frac {2} {1 + e^{-2x}} -1 f(x)=tanh(x)=ex+e−xex−e−x=1+e−2x2−1
我们可以发现Tanh 函数可以看作放大并平移的Logistic 函数,其值域是(−1, 1)。Tanh与sigmoid的关系如下:
t a n h ( x ) = 2 s i g m o i d ( 2 x ) − 1 tanh(x) = 2sigmoid(2x) -1 tanh(x)=2sigmoid(2x)−1
tanh 激活函数的图像也是 S 形,作为一个双曲正切函数,tanh 函数和 sigmoid 函数的曲线相对相似。但是它比 sigmoid 函数更有一些优势。
你可以将 Tanh 函数想象成两个 Sigmoid 函数放在一起。在实践中,Tanh 函数的使用优先性高于 Sigmoid 函数。负数输入被当作负值,零输入值的映射接近零,正数输入被当作正值:
- 当输入较大或较小时,输出几乎是平滑的并且梯度较小,这不利于权重更新。二者的区别在于输出间隔,tanh 的输出间隔为 1,并且整个函数以 0 为中心,比 sigmoid 函数更好;
- 在 tanh 图中,负输入将被强映射为负,而零输入被映射为接近零。
tanh存在的不足:
- 与sigmoid类似,Tanh 函数也会有梯度消失的问题,因此在饱和时(x很大或很小时)也会「杀死」梯度。
注意:在一般的二元分类问题中,tanh 函数用于隐藏层,而 sigmoid 函数用于输出层,但这并不是固定的,需要根据特定问题进行调整。
3. ReLU激活函数
ReLU函数又称为修正线性单元(Rectified Linear Unit),是一种分段线性函数,其弥补了sigmoid函数以及tanh函数的梯度消失问题,在目前的深度神经网络中被广泛使用。ReLU函数本质上是一个斜坡(ramp)函数,公式及函数图像如下:
4. Leaky ReLU
5. Parametric ReLU激活函数
6. ELU激活函数
7. SeLU激活函数
8. Softmax激活函数
Softmax 是用于多类分类问题的激活函数,在多类分类问题中,超过两个类标签则需要类成员关系。对于长度为 K 的任意实向量,Softmax 可以将其压缩为长度为 K,值在(0,1)范围内,并且向量中元素的总和为 1 的实向量。
函数表达式如下:
S i = e i ∑ j ∈ g r o u p e j S_i = \frac {e^i} {\sum_{ {j\in group}}{e^j}} Si=∑j∈groupejei

Softmax 与正常的 max 函数不同:max 函数仅输出最大值,但== Softmax 确保较小的值具有较小的概率,并且不会直接丢弃。==我们可以认为它是 argmax 函数的概率版本或「soft」版本。
Softmax 函数的分母结合了原始输出值的所有因子,这意味着 Softmax 函数获得的各种概率彼此相关。
Softmax 激活函数的不足:
- 在零点不可微;
- 负输入的梯度为零,这意味着对于该区域的激活,权重不会在反向传播期间更新,因此会产生永不激活的死亡神经元。
9. Swish激活函数
10. Maxout激活函数
11. Softplus激活函数
边栏推荐
- 美团2022年机试
- 中考体育项目满分标准(深圳、安徽、湖北)
- Performance improvement 2-3 times! The second generation Kunlun core server of Baidu AI Cloud was launched
- 任务、线程、进程 区别
- 序列化、监听、自定义注解
- 动态代理
- Yidian Yidong helps enterprises to efficiently manage equipment and improve equipment utilization
- Serialization, listening, custom annotation
- Redis——Lettuce连接redis集群
- Databinding source code analysis
猜你喜欢

中小企业固定资产管理办法哪种好?

Matlab tips (16) consistency verification of matrix eigenvector eigenvalue solution -- analytic hierarchy process

1. Connection between Jetson and camera

Which method is good for the management of fixed assets of small and medium-sized enterprises?

安装Oracle EE

钓鱼识别app
![[interview brush 101] linked list](/img/52/d159bc66c0dbc44c1282a96cf6b2fd.png)
[interview brush 101] linked list

Why is the Ltd independent station a Web3.0 website!

Dynamic proxy
![[MFC development (17)] advanced list control list control](/img/e8/24c52cb51defc6c96b43c2ef3232ff.png)
[MFC development (17)] advanced list control list control
随机推荐
I use flask to write the website "one"
The meaning of yolov5 training visualization index
Personal decoration notes
任务、线程、进程 区别
FAQ | FAQ for building applications for large screen devices
Why is the Ltd independent station a Web3.0 website!
Which method is good for the management of fixed assets of small and medium-sized enterprises?
Nacos - 配置管理
Interrupt sharing variables with other functions and protection of critical resources
中断与其他函数共享变量、临界资源的保护
What are the differences between the architecture a, R and m of arm V7, and in which fields are they applied?
FreeRTOS学习简易笔记
Shell script -for loop and for int loop
Shell脚本-if else语句
集团公司固定资产管理的痛点和解决方案
Databinding source code analysis
Shell script - array definition and getting array elements
Screenshot tips
Jetson Nano 安装TensorFlow GPU及问题解决
中小企业固定资产管理办法哪种好?