什么是 ReLU 激活函数?
线性整流单元(Rectified Linear Unit,简称 ReLU)是现代神经网络中应用最广泛的激活函数之一。它的定义为 \(f(x) = \max(0, x)\):当输入为正数时,原样返回该输入;当输入为负数时,则返回 0。这条简单的分段线性规则为网络引入了非线性,同时计算开销极低、求导也十分方便。
如何使用本计算器
只需输入三个值:x 的初始值(扫描的起点)、增量或步长(每一步 x 变化的幅度),以及重复次数(要生成多少个点)。工具会在每个 x 值上计算 ReLU,构建一张完整的 (x, f(x)) 数据表,并绘制出一条线性图——呈现出先平直、后上升、并在原点处出现拐角的典型形状。
公式详解
ReLU 的表达式为 \(f(x) = \max(0, x)\),也就是「当 \(x > 0\) 时取 \(x\),否则取 0」。扫描序列依据规则生成
$$f(x_k) = \max\left(0,\; x_k\right), \quad x_k = \text{Start }x + k \cdot \text{Step}, \quad k = 0,1,\dots,\text{Count}-1$$其中 \(k\) 从 0 取到 \(\text{iterations} - 1\),因此最终的 x 值(endX)等于 \(\text{startX} + (\text{iterations} - 1) \cdot \text{stepX}\)。在所有负数输入区间,函数值恒为零;进入正数区间后,则以恒定的斜率 1 上升。
实例演示
采用默认参数 \(\text{startX} = -5\)、\(\text{stepX} = 0.1\)、\(\text{iterations} = 101\),扫描区间为 x 从 \(-5\) 到 \(-5 + 100 \cdot 0.1 = +5\),共包含 101 个点(含端点)。当 \(x = -2.0\) 时,\(f = \max(0, -2.0) = 0\);当 \(x = 0\) 时,\(f = 0\);当 \(x = 0.1\) 时,\(f = 0.1\);当 \(x = 2.5\) 时,\(f = 2.5\);当 \(x = 5.0\) 时,\(f = 5.0\)。绘制出的曲线在整个负数区间始终贴着零,随后线性攀升至 \((5, 5)\)。
常见问题
ReLU 在零点处可导吗? 不可导。ReLU 在 \(x = 0\) 处存在一个拐角(折点),因此在该点不可导。它的导数在 \(x < 0\) 时为 0,在 \(x > 0\) 时为 1;按惯例,通常将 0 处的导数取为 0。
步长可以为负吗? 可以。负步长会让 x 向下扫描。若步长为零,则每个 x 都等于起始值(退化为一列恒定值)。
为什么 ReLU 如此流行? 在正数区间,它避免了 sigmoid 和 tanh 常见的梯度消失问题;计算极其简单;并且往往会产生稀疏激活,这通常能加快训练速度。