ReLU 是什么?
ReLU,全称是 Rectified Linear Unit(整流线性单元),它的定义超级简单:
f(x) = max(0, x)
换句话说:
- 如果输入 x是正数或零,输出就是 x本身。
- 如果输入 x是负数,输出就是 0。
它的函数图像是一条折线,在原点左侧沿横轴为0,右侧是一条斜率为1的直线。
ReLU 的数学表达式和代码实现
- 数学表达式: 0 0 & ext{otherwise} end{cases}”>
- Python 实现(使用 NumPy):
import numpy as np
def relu(x):
return np.maximum(0, x)
ReLU 的优点(为什么它如此流行?)
ReLU几乎取代了传统的 Sigmoid 和 Tanh 函数,成为深度学习的默认激活函数,主要归功于以下几个优势:
缓解梯度消失问题:
- 对于 Sigmoid 和 Tanh 函数,当输入值很大或很小时,函数的梯度会接近于0。在反向传播时,梯度会一层层连乘,导致网络前层的梯度变得超级小,参数几乎无法更新,这就是“梯度消失”。
- ReLU 在正区间的梯度恒为 1,在进行反向传播时,梯度不会由于连乘而迅速减小,极大地缓解了梯度消失问题,使得网络可以训练得更深,这是深度神经网络成功的关键之一。
计算效率极高:
- 它的计算超级简单,只涉及一个阈值判断(是否大于0),没有像 Sigmoid/Tanh 中复杂的指数运算。在训练大型深度网络时,需要计算数百万甚至数十亿次激活函数,ReLU 带来的速度优势是巨大的。
加速收敛:
- 由于梯度在正区间稳定为1,ReLU 能使网络更快地收敛。相比之下,Sigmoid 函数在接近饱和区时,微小的梯度更新需要许多步骤。
符合生物神经元的稀疏激活性:
- 在必定时间内,大脑中只有少量神经元被激活。ReLU 也具有类似的“稀疏性”:当输入为负时,神经元输出为0,相当于“死亡”或“未被激活”;只有输入为正时,神经元才被激活。这种稀疏性可以让网络更好地学习相关特征,并具有必定的鲁棒性。

© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END













暂无评论内容