激活函数学习
激活函数有什么作用?
ReLu激活函数怎么实现增强非线性的?
ReLu = max(0,x)
:其核心机制源于其独特的分段线性设计及网络层面的组合效应。打破输入的线性对称性。
(负数来源,初始化权重,前一层神经元的输出值,偏置项,负数一般代表背景或噪音)
ReLu激活函数相对其他激活函数有什么优势,为什么它会的用的比较多?
常见激活函数:
激活函数 | 公式 | 适用场景 | 优点 | 缺点 |
Sigmoid | ![]() | 输出可解释为概率,适合二分类输出层 | 输出可解释为概率 连续可导梯度平滑 | 梯度消失严重; 非零中心输出,导致后续梯度更新效率低 指数运算量大 |
Tanh (双曲正切) | ![]() | RNN/LSTM 隐藏层(处理正负信号平衡的时序数据) | 零中心输出,梯度更新更高效 | 存在梯度消失问题, 指数运算成本高 |
ReLU | max(0,x) | 主流选择(中间层/隐藏层) | 计算高效,缓解梯度消失,稀疏激活 | 神经元死亡 |
Leaky ReLU | x>=0 ? x : α*x (α=0.01) | 担心神经元死亡时的ReLU替代品 | 缓解神经元死亡 | 负区间斜率需预设 |
ReLU6 | min(max(0, x), 6) | 主要针对移动端部署、模型量化及数值稳定性问题 | 显著降低激活值的动态范围。抑制极端大值,避免梯度幅值剧烈波动。提升移动端推理效率 | 1.表达能力受限2.梯度饱和问题,当输入x > 6时,梯度为0。3.阈值6可能还需要调整,以更适合数据分布。 |
GELU | ![]() | 替代 ReLU 追求更高精度的各种任务。自然语言处理 (NLP) 领域的模型(如Transformer) | 平滑性好,更符合自然规律 | 计算相对复杂,速度最慢。 |
Swish |
| 平滑,在深度模型中性能常优于ReLU | 计算稍慢 | 图像分类网络(如MobileNet) |
如何选择?—— 实用建议:
- 1.
默认首选:从 ReLU 开始,它是绝大多数情况的可靠选择。
- 2.
遇到问题:如果怀疑网络受“神经元死亡”影响,换用 Leaky ReLU 或 PReLU。
- 3.
追求极致性能:在计算机视觉任务中,可以尝试 Swish;在自然语言处理任务中,直接使用 GELU。
- 4.
输出层:根据任务选择——二分类用 Sigmoid,多分类用 Softmax,回归问题用线性激活(无激活函数)。