专栏名称: 数据派THU
本订阅号是“THU数据派”的姊妹账号,致力于传播大数据价值、培养数据思维。
目录
相关文章推荐
大数据文摘  ·  谷歌发布Gemini2.0,开启Agent新时代 ·  昨天  
艺恩数据  ·  11月抖音明星影响力:“禹宙中欣” ... ·  昨天  
数据派THU  ·  【NeurIPS2024】《应对在线持续学习 ... ·  3 天前  
51好读  ›  专栏  ›  数据派THU

图解深度学习中的激活函数

数据派THU  · 公众号  · 大数据  · 2024-12-12 17:00

正文

本文约1900字,建议阅读8分钟

尽管已有多种激活函数可供选择,研究和优化新型激活函数仍是深度学习领域的重要方向。


神经网络作为深度学习的核心工具,在很多实际问题中表现出色。而激活函数是神经网络中重要的组成部分,它为网络引入非线性能力,从而能够处理复杂的模式和数据。本文参考《机器学习漫画小抄》一书,盘点神经网络中常用的激活函数,探讨其数学表达式、特点以及适用场景。

1. 激活函数的作用

神经网络中的激活函数用于将输入信号映射到输出信号,赋予网络非线性变换能力。具体来说,激活函数有以下作用:

  1. 引入非线性:如果网络中仅包含线性运算,其输出仍是输入的线性组合,无法逼近复杂函数。
  2. 数据归一化:某些激活函数(如 sigmoid)会将输出限制在特定区间内,方便后续处理。
  3. 梯度传播:激活函数的选择影响反向传播中的梯度计算,从而影响网络的训练效率。

2. 常见的激活函数

2.1 Sigmoid 函数

Sigmoid 函数是最早期使用的激活函数之一,其定义为:

特点:

  • 输出范围为 
  • 平滑、连续,可导。
  • 适用于二分类问题的概率输出。

缺点:

  • 梯度消失问题:在输入绝对值较大时,梯度趋近于零。

  • 输出不以零为中心,可能导致梯度更新效率较低。

2.2 Tanh 函数

Tanh 函数是 Sigmoid 的变种,其定义为:

特点:

  • 输出范围为 
  • 以零为中心,有助于加速梯度下降。
  • 在深层网络中仍可能遇到梯度消失问题。

2.3 ReLU 函数

ReLU(Rectified Linear Unit)是目前最常用的激活函数之一,定义为:

特点:

  • 简单高效,计算成本低。

  • 避免了 Sigmoid 和 Tanh 的梯度消失问题。

  • 在输入为正数时,梯度恒为 1,便于梯度更新。

缺点:

  • 存在 "死亡 ReLU" 问题,即某些神经元可能永远输出 0,无法恢复。

2.4 Leaky ReLU 函数

为了解决 ReLU 的 "死亡问题",提出了 Leaky ReLU,定义为:

其中, 是一个较小的正数(如 0.01)。

特点:

  • 允许负值输入的神经元有非零输出,避免了死亡问题。

  • 在许多场景下性能优于标准 ReLU。

2.5 Exponential Linear Unit (ELU)

ELU(指数线性单元)通过在输入为负时使用指数函数改善了 ReLU 的性能,其定义为:

其中, 是一个超参数(通常为 1)。

特点:

  • 负值范围平滑过渡,避免了 ReLU 的死亡问题。

  • 输出接近零时,梯度更稳定,便于优化。

缺点:

  • 计算量比 ReLU 稍大。

2.6 Noisy ReLU

Noisy ReLU 是一种在标准 ReLU 的基础上加入随机噪声的变体,其定义为:


其中, 是从某个分布中抽样的随机噪声(如高斯分布)。

特点:

  • 随机噪声有助于减少过拟合,增强模型的鲁棒性。

  • 适用于需要对抗噪声或增强模型泛化能力的场景。

缺点:

  • 可能引入额外的计算开销。

  • 噪声分布的选择对性能有一定影响。

2.7 Softmax 函数

Softmax 函数通常用于分类问题的输出层,其定义为:

特点:

  • 将输入转化为概率分布,输出总和为 1。

  • 适用于多分类问题的最后一层。

2.8 Swish 函数

Swish 函数由 Google 提出,定义为:


特点:

  • 平滑可导,自适应学习。

  • 在深层网络中性能优于 ReLU。

  • 更强的表达能力,适合复杂任务。

3. 激活函数的比较

激活函数优势劣势
Sigmoid平滑,可导,适合概率输出梯度消失,不以零为中心
Tanh零中心,平滑可导梯度消失
ReLU简单高效,避免梯度消失死亡 ReLU
Leaky ReLU避免死亡 ReLU存在负值输出的不对称性
ELU平滑过渡,梯度稳定计算开销稍高
Noisy ReLU增强鲁棒性,减少过拟合依赖噪声分布
Softmax概率分布输出,多分类任务不适合隐藏层
Swish强大非线性能力计算复杂性稍高

4. 如何选择激活函数

激活函数的选择依赖于具体任务和数据分布。以下是一些通用建议。

隐藏层:

  • ReLU 和其变种(如 Leaky ReLU、Swish、ELU)通常是首选。

  • 如果数据分布特殊,可以尝试 Tanh。

输出层:

  • 二分类问题:Sigmoid。

  • 多分类问题:Softmax。

  • 回归问题:可以使用线性激活函数(如恒等函数)或者 ReLU。


深度网络:

  • Swish 和 ELU 在深层网络中表现较好,适合处理复杂任务。

  • 对于非常深的网络,可结合 Batch Normalization 使用,进一步稳定梯度。


抗噪性和泛化能力:

  • 如果数据中包含较多噪声,Noisy ReLU 可以提高模型的鲁棒性。

  • Dropout 和随机噪声结合使用效果更佳。


5. 未来的发展方向

尽管已有多种激活函数可供选择,研究和优化新型激活函数仍是深度学习领域的重要方向。未来的研究可能集中在设计自适应激活函数,如 Parametric ReLU (PReLU),以自动调节参数并适应不同层次和数据分布;开发针对特定任务需求的定制化激活函数,如信号处理或图像增强领域;优化理论以更深入地分析激活函数对梯度消失或爆炸问题的影响;结合不同激活函数的优点,采用分段或混合策略提升模型表现;以及为适应专用硬件(如 TPU 和 GPU)特点,设计高效易算的硬件加速友好型激活函数。

激活函数是神经网络的重要组成部分,其选择对模型的性能和训练效率有重要影响。每种激活函数都有其独特的优势与局限。理解并合理使用激活函数,是构建高效深度学习模型的关键。(作者:王海华)

编辑:黄继彦



关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。



新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU