了解神经网络中的激活函数
一、激活函数的特征
- 非线性,激活函数必须是非线性函数。
- 可微性,训练网络模型时,基于梯度的模型最优化方法要求激活函数必须是可导的。
- 单调性,单调递增或单调递减,单调函数保证模型的简单。
- 隐藏层一般需要使用激活函数已引入非线性,输入层不需要。输出层如果是回归问题也是不需要的,如果是多分类问题,使用softmax函数将输出转化为概率分布,如果是二分类问题,可以使用sigmoid函数。
二、常见的激活函数
-
sigmoid函数
sigmoid激活函数: f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+e−x1,其导数为: f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) f'(x)=f(x)(1-f(x)) f′(x)=f(x)(1−f(x)),导数的取值范围[0, 1/4],sigmoid在使用反向传播来训练神经网络时,会产生梯度消失的问题,另外sigmoid处理后的输出数据是一个非负值,在反向传播过程中会增加梯度的不稳定性。
-
tanh函数
tanh激活函数: f ( x ) = e x − e − x e x + e − x f(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} f(x)=ex+e−xex−e−x,其导数为: f ′ ( x ) = 1 − f ( x ) 2 f'(x)=1-f(x)^2 f′(x)=1−f(x)2,导数的取值范围为[0, 1],反向传播过程中衰减速度比sigmoid要慢,经过tanh激活函数处理后的输出均值约为0(这相当于做了归一化),所以tanh比sigmoid具有更稳定的梯度,但是依然无法避免梯度消失的问题。
-
近似生物神经元的激活函数
如ReLU,softplus等,还有Leaky ReLU,ELU,Softmax等。
三、常见的神经网络模型
神经网络类型 | 主要特点 | 典型应用场景 |
---|---|---|
前馈神经网络 | 信息单向流动,无反馈循环;层级结构清晰;常用于分类和回归问题 | 图像分类、文本分类、回归预测 |
反馈神经网络(RNN) | 信息可以在网络中循环传播,具有记忆能力;适用于序列数据 | 自然语言处理(机器翻译、情感分析)、语音识别、时间序列预测 |
卷积神经网络(CNN) | 利用卷积核提取局部特征,适用于图像、视频等数据 | 图像分类、目标检测、图像分割 |
循环神经网络变种(LSTM、GRU) | 改进RNN,解决了长期依赖问题,更好地处理长序列数据 | 自然语言处理、语音识别 |
生成对抗网络(GAN) | 由生成器和判别器组成,通过对抗学习生成新的数据 | 图像生成、数据增强 |
图神经网络(GNN) | 处理图结构数据,适用于社交网络、分子结构等 | 社交网络分析、药物发现 |