ReLU是目前深度学习中最常用、最基础的激活函数广泛用于卷积神经网络CNN和全连接层中。1. 数学公式ReLU 的数学表达式非常简单ReLU(x)max(0,x) \text{ReLU}(x) \max(0, x)ReLU(x)max(0,x)也就是说当输入x0x 0x0时输出等于输入xxx。当输入x≤0x \le 0x≤0时输出等于000。2. 几何特征与性质输出范围[0,∞)[0, \infty)[0,∞)。形状在坐标系中它是一条在原点处“折断”的折线。左半部分贴着 x 轴y0右半部分是一条斜率为 1 的直线yx。非线性虽然它看起来像线性函数但因为在x0x0x0处的拐折它整体是非线性的。这一点至关重要正是这个非线性使得神经网络能够学习复杂的非线性映射。如果它完全是线性的那么多层神经网络叠加起来依然等效于单层失去了深度的意义。3. 导数梯度在反向传播中ReLU 的导数同样极其简单ReLU′(x){1,x00,x≤0 \text{ReLU}(x) \begin{cases} 1, x 0 \\ 0, x \le 0 \end{cases}ReLU′(x){1,0,x0x≤0当x0x 0x0时梯度恒为1。当x≤0x \le 0x≤0时梯度为0。(注在x0x0x0处严格来说是不可导的但在代码实现中通常将其归为 0 或 1不影响实际训练。结尾专门有补充这部分的内容)4. ReLU 的变体为了解决“死亡 ReLU”为了克服死亡 ReLU 和非零中心化的问题人们提出了许多 ReLU 的变体Leaky ReLU带泄漏的 ReLU公式f(x){x,x0αx,x≤0f(x) \begin{cases} x, x 0 \\ \alpha x, x \le 0 \end{cases}f(x){x,αx,x0x≤0α\alphaα通常是一个很小的常数如 0.01。作用在负区间引入一个微小的斜率使得负区间也有梯度彻底解决死亡 ReLU 问题。PReLU (Parametric ReLU)把 Leaky ReLU 里的α\alphaα当作一个可学习的参数让网络自己训练出最佳的负区间斜率。RReLU (Randomized ReLU)在训练时随机采样负斜率如α∼U(0.01,0.3)增加模型鲁棒性。ELU (Exponential Linear Unit)负区间使用指数函数平滑过渡到−1-1−1输出均值更接近 0缓解了非零中心化问题但计算包含了指数稍慢。GELU / Swish更现代的平滑激活函数目前在 Transformer如 GPT、BERT中极为常见性能优于传统 ReLU。5. 常见应用场景CNN卷积神经网络的隐藏层几乎所有现代 CNN如 ResNet, VGG, YOLO的卷积层后都默认使用 ReLU。MLP多层感知机的隐藏层深度全连接网络的标配。注通常不会在输出层使用 ReLU因为输出层通常有特定的任务需求如分类用 Softmax回归用线性或 tanh。扩展问题既然ReLU 在 0 处不可导为什么还能使用尽管ReLU在 ( x 0 ) 处不可导但在实际训练中不影响使用因为实际训练中某个神经元的输入为 0 的概率极低即使偶尔碰到也可以通过工程上的约定来处理【即在实现反向传播时我们通常会约定 ReLU 在 x0 处的导数为 0 或 1这种约定对结果无影响】。
常见激活函数之ReLU激活函数
发布时间:2026/6/28 3:17:45
ReLU是目前深度学习中最常用、最基础的激活函数广泛用于卷积神经网络CNN和全连接层中。1. 数学公式ReLU 的数学表达式非常简单ReLU(x)max(0,x) \text{ReLU}(x) \max(0, x)ReLU(x)max(0,x)也就是说当输入x0x 0x0时输出等于输入xxx。当输入x≤0x \le 0x≤0时输出等于000。2. 几何特征与性质输出范围[0,∞)[0, \infty)[0,∞)。形状在坐标系中它是一条在原点处“折断”的折线。左半部分贴着 x 轴y0右半部分是一条斜率为 1 的直线yx。非线性虽然它看起来像线性函数但因为在x0x0x0处的拐折它整体是非线性的。这一点至关重要正是这个非线性使得神经网络能够学习复杂的非线性映射。如果它完全是线性的那么多层神经网络叠加起来依然等效于单层失去了深度的意义。3. 导数梯度在反向传播中ReLU 的导数同样极其简单ReLU′(x){1,x00,x≤0 \text{ReLU}(x) \begin{cases} 1, x 0 \\ 0, x \le 0 \end{cases}ReLU′(x){1,0,x0x≤0当x0x 0x0时梯度恒为1。当x≤0x \le 0x≤0时梯度为0。(注在x0x0x0处严格来说是不可导的但在代码实现中通常将其归为 0 或 1不影响实际训练。结尾专门有补充这部分的内容)4. ReLU 的变体为了解决“死亡 ReLU”为了克服死亡 ReLU 和非零中心化的问题人们提出了许多 ReLU 的变体Leaky ReLU带泄漏的 ReLU公式f(x){x,x0αx,x≤0f(x) \begin{cases} x, x 0 \\ \alpha x, x \le 0 \end{cases}f(x){x,αx,x0x≤0α\alphaα通常是一个很小的常数如 0.01。作用在负区间引入一个微小的斜率使得负区间也有梯度彻底解决死亡 ReLU 问题。PReLU (Parametric ReLU)把 Leaky ReLU 里的α\alphaα当作一个可学习的参数让网络自己训练出最佳的负区间斜率。RReLU (Randomized ReLU)在训练时随机采样负斜率如α∼U(0.01,0.3)增加模型鲁棒性。ELU (Exponential Linear Unit)负区间使用指数函数平滑过渡到−1-1−1输出均值更接近 0缓解了非零中心化问题但计算包含了指数稍慢。GELU / Swish更现代的平滑激活函数目前在 Transformer如 GPT、BERT中极为常见性能优于传统 ReLU。5. 常见应用场景CNN卷积神经网络的隐藏层几乎所有现代 CNN如 ResNet, VGG, YOLO的卷积层后都默认使用 ReLU。MLP多层感知机的隐藏层深度全连接网络的标配。注通常不会在输出层使用 ReLU因为输出层通常有特定的任务需求如分类用 Softmax回归用线性或 tanh。扩展问题既然ReLU 在 0 处不可导为什么还能使用尽管ReLU在 ( x 0 ) 处不可导但在实际训练中不影响使用因为实际训练中某个神经元的输入为 0 的概率极低即使偶尔碰到也可以通过工程上的约定来处理【即在实现反向传播时我们通常会约定 ReLU 在 x0 处的导数为 0 或 1这种约定对结果无影响】。