ReLU(Rectified Linear Unit)之所以有效,核心原因可以用一句话概括:它简单、计算快、能缓解梯度消失,还天然带来稀疏性,非常适合深度神经网络。
下面分点讲清楚它为什么这么好用:
1. 计算极其简单
公式:ReLU(x)=max(0,x)
只需要判断正负,没有指数、除法等复杂运算
前向、反向传播都极快,训练速度大幅提升
这在深层网络和大数据集下优势非常明显。
2. 有效缓解梯度消失问题
早期常用 sigmoid、tanh:
两端饱和区梯度接近 0,深层网络梯度会越来越小,几乎无法更新
深层网络很难训练
ReLU:
正数区域导数恒为 1
反向传播时梯度不会被连续压缩变小
深层网络也能稳定传播梯度
这是它能支撑深度卷积网络、深度 Transformer的关键原因。
3. 带来稀疏性,更接近生物神经元
输入 <0 时输出为 0,相当于 "神经元不激活"
网络中会自然出现大量 0,形成稀疏表示
稀疏性有助于减少冗余、提升泛化能力、降低过拟合
4. 收敛速度远快于 sigmoid/tanh
线性特性,优化更简单
实际训练中,ReLU 网络收敛速度往往比 sigmoid 快几倍
5. 为什么它 "有效" 的直观理解
可以把 ReLU 理解为:
只保留有用信号,忽略负向无用信号,同时保证梯度不会消失。
它既简单又符合深度学习的实际需求,因此成为现代神经网络默认激活函数。
小缺点(也顺便提一下)
可能出现死神经元(梯度永远为 0,不再更新)
输出不是零均值所以后来才有 Leaky ReLU、PReLU、GELU、Swish 等改进版本,但基础 ReLU 依然是最经典、最常用的。