- ▪ 线性函数
- ▪ Sigmoid 函数(逻辑函数)
- ▪ 双曲正切函数(tanh)
- ▪ ReLU(修正线性单元)激活函数
- ▪ Leaky ReLU
- ▪ Swish
- ▪ 特殊的激活函数
- 4 激活函数的一些理想特性
- 5 如何选择激活函数:实用建议
- ▪ 隐藏层
- ▪ 输出层
- ▪ 循环神经网络(RNN)
在当今的人工智能和机器学习领域,激活函数在神经网络的架构中占据着核心地位。它决定了信息如何在网络中传播,影响着网络的学习能力和决策能力。激活函数不仅使模型能够学习复杂的模式,还使其能够对数据进行非线性变换,这是解决各行各业复杂问题的关键。
什么是激活函数
编辑激活函数是应用于人工神经网络中神经元输出的数学函数。它将神经元的总输入信号转换为输出信号,然后传递到网络的后续层。没有激活函数,神经网络将退化为简单的线性模型,无法解决需要非线性数据表示的复杂任务。激活函数通常是一个抽象概念,代表细胞中动作电位的激发率。最简单的形式是二元函数,即神经元要么兴奋,要么不兴奋。这个函数看起来像 ϕ = U,其中 U 是一个阶跃海维塞函数。在这种情况下,我们需要使用许多神经元来计算超越线性类别的分离。
Leaky ReLU激活函数
可以使用一条具有正斜率的直线来反映输入信号增加时激励率的增加。这种函数的形式是 ϕ = μ v_i,其中 μ 是斜率。这种激活函数是线性的,因此存在与二元函数相同的问题。此外,使用这种模型构建的网络收敛不稳定,因为神经元优先输入的激励会无限制地增加,因为该函数不可归一化。
使用可归一化的西格玛激活函数可以解决上述所有问题。一个现实的模型在输入信号到来之前一直处于零状态,此时激励率一开始会迅速增加,但会逐渐达到激励率 100%的渐近线。在数学上,这看起来像 ϕ = U tanh,其中的双曲正切可以用任意的 sigmoid 代替。这种行为实际上发生在生物神经元中,因为神经元的物理兴奋速度不可能超过一定的速率。不过,这种模型在计算网络中存在一些问题,因为函数不可微,而计算学习误差的反向传播需要可微函数。
Tanh(双曲正切)激活函数
最后一种用于多层感知器的模型是双曲正切形式的正余弦激活函数。这个函数通常有两种形式:ϕ = tanh,其图像被归一化为区间 [-1, 1],和 ϕ = (tanh)^{-1},垂直移动,用于后者的模型被认为更符合生物现实,但在理论和实验上存在一定的计算误差。
激活函数在神经网络中的作用
编辑激活函数执行几个关键任务:
引入非线性
允许神经网络模拟数据中的复杂依赖关系和模式。
调节神经元输出
控制输出值的范围,防止过大的变化,这可能会妨碍学习过程。
确保可微性
这是反向传播算法中必需的,用于训练过程。
主要类型的激活函数
编辑线性函数
描述最简单的激活函数形式,是一条直线:f(x) = x。
优点:
- 实现简单。
- 行为透明。
缺点:
- 模拟复杂依赖关系的能力有限。
- 不引入非线性,使得深层网络无效。
应用:
在隐藏层中很少使用,但在回归模型的输出层中可能有用。
Sigmoid 函数(逻辑函数)
描述:S形曲线,定义为 f(x) = 1 / (1 + e^(-x))。
优点:
- 将输出值限制在 (0, 1) 范围内,适合二分类任务。
- 平滑且可微分。
缺点:
- 在 |x| 较大时会出现梯度消失问题。
- 不以零为中心,可能会减慢学习速度。
应用:
二分类问题,概率预测的输出层。
双曲正切函数(tanh)
描述:
类似于 sigmoid 函数的 S 形曲线,但输出范围为 (-1, 1):f(x) = tanh(x)。
优点:
- 以零为中心,有助于更有效的学习。
- 在隐藏层中的表现优于 sigmoid 函数。
缺点:
- 也存在梯度消失问题。
- 计算上比 sigmoid 函数更复杂。
应用:多层神经网络的隐藏层,需要对称输出范围的任务。
ReLU(修正线性单元)激活函数
描述:
非线性函数,定义为 f(x) = max(0, x)。
优点:
- 简单且计算效率高。
- 消除了梯度消失问题,加速了学习过程。
- 促进激活的稀疏性,可能提高模型的泛化能力。
缺点:
- “死亡神经元”问题——如果神经元持续接收负值,它们可能不再更新。
- 不以零为中心。
应用:广泛用于深层神经网络的隐藏层,包括卷积神经网络和循环神经网络。
Leaky ReLU
描述:
ReLU 的一种修改,允许少量负值通过函数:f(x) = max(αx, x),其中 α 是一个小系数(例如 0.01)。
优点:
- 消除了“死亡神经元”问题。
- 保留了 ReLU 在速度和稀疏性方面的优势。
缺点:
- 引入额外的参数可能使模型调整更加复杂。
应用:深层神经网络中 ReLU 的替代方案,特别是在需要防止神经元完全“关闭”的情况下。
ELU(指数线性单元)
描述:结合了线性和指数部分的函数:f(x) = x,当 x > 0 时;f(x) = α(e^x - 1),当 x ≤ 0 时。
优点:
- 相较于 ReLU 和 Leaky ReLU 提高了性能。
- 输出值包含负值,使函数以零为中心。
缺点:
- 计算上比 ReLU 和 Leaky ReLU 更复杂。
应用:用于需要高精度和高效学习的深层网络。
Swish
描述:由 Google 提出,定义为 f(x) = x * sigmoid(x)。
优点:
- 在多种任务中优于 ReLU 及其变种。
- 平滑且连续,有助于更稳定的学习过程。
缺点:
- 计算上比 ReLU 更复杂。
应用:现代深层神经网络,包括用于图像处理和自然语言处理的网络。
ReLU(Rectified Linear Unit)激活函数
特殊的激活函数
RBF 网络中使用了一类特殊的激活函数,即径向基函数,作为通用函数近似器极为有效。这些激活函数可以有多种形式,但通常会采取以下三种函数中的一种:
- 高斯函数:ϕ = exp(-x²)
- 多二次函数:ϕ = √(‖v_i - c_i‖² + a²)
- 反多二次函数:ϕ = (‖v_i - c_i‖² + a²)^(-1/2)
其中 c_i 是表示特征的向量,而 a 和 σ 是影响半径发散的参数。
参考向量方法可以有效地利用包括 sigmoid 和 RBF 在内的一类激活函数。在这种情况下,输入被转换为反映基于多个训练输入的决策边界超平面,称为 x。这些机器的闭合水平的激活函数被称为 K = ϕ。支持向量在 RBF 中表示为中心,其核等于激活函数,但它们在感知器中采取奇异形式:
- ϕ = tanh。
其中,β₀ 和 β₁ 必须满足某些收敛条件。这些机器可以使用任意阶的多项式激活函数:
- ϕ = xᵖ。
Sigmoid激活函数
激活函数的一些理想特性
编辑- 非线性 - 如果激活函数是非线性的,可以证明两层神经网络将是该函数的通用近似值。相同的激活函数不符合这一特性。如果一个以上的层次使用相同的激活函数,那么整个网络就等同于一个层次的模型。
- 连续可微分性 - 这一特性对于提供基于梯度下降的优化方法来说是可取的。二进制阶跃激活函数在 0 点不可微,在其他所有点的导数都为 0,因此梯度下降方法对它不会有任何成功的结果。
- 值域 - 如果激活函数的值集是有限的,基于梯度的学习方法就会更稳定,因为基准表征只会对有限的链接权重集产生显著影响。如果值域是无限的,学习往往会更有效,因为基准表征会对大部分权重产生重大影响。在后一种情况下,通常需要较慢的学习速度。
- 单调性 - 如果激活函数是单调的,那么与单层模型相关的误差面保证是凸的。
- 具有单调导数的平滑函数 - 在某些情况下,平滑函数具有更高的通用性。
- 近似原点附近的同一函数 - 如果激活函数具有这一特性,那么如果神经网络的权重以较小的随机值初始化,就能有效地训练神经网络。如果激活函数在原点附近不近似于同一函数,那么在初始化权重时就需要谨慎。在下表中,有 f = 0 的激活函数 f' = 1 和 f' 在 0 处连续的激活函数都被标记为具有此属性。
如何选择激活函数:实用建议
编辑选择合适的激活函数取决于具体任务和模型的架构。以下是一些建议:
隐藏层
- ReLU:由于其简单性和高效性,是大多数任务的良好选择。
- Leaky ReLU 或 ELU:如果遇到“死亡神经元”问题。
- Swish:对于需要高精度和稳定性的任务。
输出层
- Sigmoid 函数:用于二分类任务。
- Softmax:用于多分类任务。
- 线性函数:用于回归任务。
循环神经网络(RNN)
通常使用 tanh 或 ReLU,具体取决于任务的特点。
激活函数的未来
编辑随着神经网络的发展和复杂性的增加,新的激活函数的寻找和开发仍在继续,以提高模型的学习和性能。混合型和自适应激活函数(能够在训练过程中调整其参数)变得越来越流行。此外,研究人员还在探索能够更好地处理不同类型数据和架构的激活函数。
激活函数学习资源推荐
编辑书籍
《深度学习》— 伊恩·古德费洛、约书亚·本吉奥、阿龙·柯维尔。
《神经网络与深度学习》— 米哈伊尔·巴库林。
在线课程
Coursera: Andrew ng 的“Deep Learning Specialization”。
edX: IBM 的“Introduction to Artificial Intelligence (AI)”。
学术论文
“Rectified Linear Units Improve Restricted Boltzmann Machines” — Vinod Nair, Geoffrey Hinton。
“Swish: A Self-Gated Activation Function” — Prajit Ramachandran, Barret Zoph, Quoc V. Le。
相关术语词汇表
编辑神经网络:一种受人脑结构和功能启发的机器学习模型。
梯度:函数在其输入变化时的变化率,用于训练算法中。
反向传播:神经网络的训练方法,通过将输出误差向后传播以更新权重。
非线性:函数的输出值不与输入值成比例关系,允许模拟复杂的依赖关系。
百科词条作者:0059,如若转载,请注明出处:https://glopedia.cn/374070/