激活函数 作者:马育民 • 2026-01-24 10:18 • 阅读:10000 # 介绍 激活函数就是神经网络里用来**引入非线性**的函数,**没有它,再深的网络也只是线性模型**。下面用很短的篇幅帮你理一遍常用激活函数和怎么选。 # 应用场景 在神经元里,先做线性计算: $$ z = Wx + b $$ 再通过激活函数: $$ a = \sigma(z) $$ # 作用 - 引入非线性,让网络能拟合复杂函数 - 把值压缩到合适范围(有的会,有的不会) - 影响梯度流动,从而影响训练是否容易 --- # 常见激活函数 ### 1. Sigmoid - 输出:`(0, 1)` - 用途:二分类的输出层 - 问题:容易**梯度消失**,输出不是零均值 ### 2. Tanh - 输出:`(-1, 1)` - 用途:隐藏层,比 sigmoid 常用 - 特点:零均值,但仍有梯度消失问题 ### 3. ReLU - 输出:`[0, ∞)` - 用途:现在最常用的**隐藏层激活函数** - 优点:计算快,缓解梯度消失 - 缺点:部分神经元可能永远不激活(**dying ReLU**) ### 4. Leaky ReLU - 输出:`(-∞, ∞)` - 用途:解决 ReLU 死掉的问题 - 特点:一般比 ReLU 更稳,但 α 是超参数 ### 5. Softmax - 输出:`(0, 1)`,且和为 1 - 用途:**多分类的输出层** - 特点:配合交叉熵损失使用 --- ### 应用场景 - 二分类输出层:用 **Sigmoid** - 多分类输出层:用 **Softmax** - 隐藏层(默认):用 **ReLU** - 训练不稳定、ReLU 死掉:试试 **Leaky ReLU** - RNN 等序列模型:常用 **Tanh** 或 **ReLU** 原文出处:http://malaoshi.top/show_1GW2eL49vPk4.html