人工智能【第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、深度学习、神经网络、人工智能

相关推荐
论文复现现场2 小时前
8卡4090能跑70B吗?Llama-2显存预算、QLoRA与通信瓶颈
人工智能·深度学习·分布式训练·llama·显存·qlora·算家云
用户15970637602 小时前
一文读懂淘宝店铺在售商品接口:整店商品批量拉取用于竞品研究
深度学习
布吉岛的石头2 小时前
Java 程序员第 49 阶段11:Java 接 BERT:用 ONNX Runtime 做句向量推理
java·人工智能·python·深度学习·bert·transformer
liron714 小时前
技术的诞生与演化--技术自举及其冷启动
人工智能·深度学习·神经网络·自然语言处理
喜欢打篮球的普通人5 小时前
MiniMind 学习笔记(十八):速通强化学习——从 MDP 到 PPO 的概念与算法地图
笔记·深度学习·学习
`流年づ6 小时前
VGG、AlexNet、GoogLeNet对比
人工智能·深度学习
打工仔折腾 AI6 小时前
FaceFusion本地换脸实战:Windows整合包、模型选择与遮罩调参记录
人工智能·windows·后端·python·深度学习·性能优化·ai agent 实战
数智工坊6 小时前
视觉SLAM第5讲|相机成像模型:针孔投影、畸变修正与深度感知全拆解
人工智能·深度学习·数码相机·机器人
Rocky Ding*7 小时前
VideoChat3 深度解析:视频理解的效率,来自时空压缩与主动感知的共同设计
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·视频理解
禹凕7 小时前
深度学习之激活函数(Deep Learning about Activation function)
人工智能·深度学习