人工智能【第16篇】激活函数详解:Sigmoid、ReLU、Tanh与Softmax

作者的话 :在前一篇文章中,我们学习了神经网络的基础结构------感知机和多层感知机。今天我们将深入探讨神经网络中至关重要的组成部分------激活函数。激活函数是神经网络的灵魂,它赋予了网络非线性能力,使其能够学习复杂的模式。


一、为什么需要激活函数?

1.1 线性模型的局限性

如果没有激活函数,无论神经网络有多少层,其本质都只是一个线性模型,这意味着深层网络与单层网络没有任何区别,无法学习复杂的非线性关系。

1.2 激活函数的作用

激活函数的核心作用:引入非线性、控制信息流动、输出范围限制、梯度传播。

二、Sigmoid函数

2.1 数学定义

Sigmoid函数将任意实数映射到(0, 1)区间:sigmoid(x) = 1 / (1 + e^(-x))

2.2 函数特性

输出范围(0,1),导数为sigmoid(x) * (1 - sigmoid(x)),关于点(0, 0.5)中心对称,具有饱和性。

2.3 优缺点分析

优点:输出

范围适合表示概率,平滑可导,单调递增。
缺点:梯度消失问题,输出非零中心化,计算量大。

2.4 适用场景

二分类问题的输出层、需要概率输出的场景。

三、Tanh函数

3.1 数学定义

Tanh(双曲正切)函数将任意实数映射到(-1, 1)区间:tanh(x) = (e^x - e^(-x)) / (e^x + e^(-x))

3.2 函数特性

输出范围(-1,1),导数为1 - tanh(x)^2,零中心化,同样存在饱和性问题。

3.3 与Sigmoid的比较

优势 :零中心化输出,收敛速度比Sigmoid快。
劣势:仍然存在梯度消失问题。

3.4 适用场景

隐藏层的激活函数,循环神经网络(RNN)中常用。

四、ReLU函数

4.1 数学定义

ReLU(Rectified Linear Unit)是目前最常用的激活函数:ReLU(x) = max(0, x)

4.2 函数特性

输出范围[0, +∞),导数为x>0时1否则0,计算简单,缓解梯度消失。

4.3 优缺点分析

优点 :计算速度快,缓解梯度消失,稀疏激活。
缺点:死亡ReLU问题(负数区域梯度为0)。

4.4 ReLU的变体

Leaky ReLU :f(x) = max(ax, x),a通常取0.01。
PReLU :参数化的Leaky ReLU。
ELU :指数线性单元,负数区域使用指数函数。
Swish:f(x) = x * sigmoid(x),Google提出。

4.5 适用场景

卷积神经网络(CNN)的标准选择,大多数隐藏层的默认激活函数。

五、Softmax函数

5.1 数学定义

Softmax用于多分类问题的输出层,将向量转换为概率分布:Softmax(xi) = e^xi / sum(e^xj)

5.2 函数特性

输出范围(0,1),所有输出之和为1,可导,适用于多分类。

5.3 与Sigmoid的区别

Sigmoid用于二分类,Softmax用于多分类;Sigmoid独立处理每个输出,Softmax考虑所有输出。

5.4 适用场景

多分类神经网络的输出层,配合交叉熵损失函数使用。

六、激活函数选择指南

6.1 选择原则

隐藏层 :优先使用ReLU或其变体(Leaky ReLU、ELU)。
输出层-二分类 :使用Sigmoid。
输出层-多分类 :使用Softmax。
输出层-回归:不使用激活函数或使用线性激活。

6.2 各激活函数对比表

Sigmoid:适合二分类输出,存在梯度消失。

Tanh:适合隐藏层,零中心化。

ReLU:默认选择,计算快。

Leaky ReLU:解决死亡ReLU。

Softmax:多分类输出。

七、Python实战:激活函数可视化

7.1 绘制所有激活函数

使用matplotlib绘制激活函数及其导数的图像。

7.2 对比实验

在同一数据集上比较不同激活函数的训练效果。

八、激活函数与梯度消失/爆炸

8.1 梯度消失问题

Sigmoid和Tanh在饱和区梯度接近于0,导致深层网络梯度无法回传。

8.2 解决方案

使用ReLU、批归一化、残差连接、更好的初始化方法。

8.3 梯度爆炸问题

梯度值过大导致参数更新失控,使用梯度裁剪解决。

九、实战案例:MNIST分类

9.1 实验设置

使用不同激活函数训练神经网络,比较准确率。

9.2 结果分析

ReLU通常表现最好,收敛最快;Sigmoid和Tanh在深层网络表现较差。

十、总结与学习建议

10.1 核心要点

激活函数引入非线性;ReLU是隐藏层的首选;Softmax用于多分类;注意梯度消失问题。

10.2 快速选择指南

不知道选什么?用ReLU!二分类输出用Sigmoid,多分类用Softmax。

10.3 进阶学习

GELU、Mish等新型激活函数,激活函数搜索技术。


下一篇预告:【第17篇】损失函数详解:从MSE到交叉熵


本文为系列第16篇,详细讲解了神经网络的激活函数。有任何问题欢迎在评论区交流!

标签:激活函数、Sigmoid、ReLU、Tanh、Softmax、深度学习、神经网络、人工智能

相关推荐
qq1180096172 小时前
电力预测大赛经验教训与心得总结
人工智能·深度学习·机器学习
XMAIPC_Robot2 小时前
180FPS AI相机模组,轻巧大算力, 高性能双目同步摄像模组+搭配RK3588
人工智能·嵌入式硬件·深度学习·数码相机·fpga开发
机器学习之心2 小时前
电池SOH估计和RUL预测,基于GRU门控循环单元的锂电池健康状态估计和剩余寿命预测,MATLAB代码
深度学习·matlab·gru·门控循环单元·锂电池健康状态估计
MATLAB代码顾问2 小时前
【深度学习】Vision Transformer (ViT) 详解:从原理到实践
人工智能·深度学习·transformer
XMAIPC_Robot2 小时前
基于RK3588 高算力,小尺寸,轻重量6T算力无人机AI模块,可接两路同步相机模组
运维·人工智能·深度学习·fpga开发·无人机·边缘计算
SuperHeroWu72 小时前
【AI大模型】Self-Attention:为什么它能取代 RNN 解决长距离依赖?
人工智能·rnn·深度学习·循环神经网络·自注意力机制·self-attention
2zcode2 小时前
原创文档:基于MATLAB卷积神经网络的多颜色车牌识别系统设计与实现
深度学习·计算机视觉·cnn
墨&白.2 小时前
PINNs在传染病预测中的应用
深度学习·神经网络·机器学习
AIDF20262 小时前
【无声音的画像——当深度学习遇上 MFCC标题】
人工智能·深度学习·语音识别