文章

27 为什么神经网络必须使用非线性激活函数?

27 为什么神经网络必须使用非线性激活函数?

🧠 课程核心问题

为什么神经网络必须使用非线性激活函数?

  简短回答:如果所有层都使用线性激活函数(即恒等函数),那么无论网络有多少隐藏层,整个网络等价于一个单层线性模型,无法学习复杂的非线性关系。


🔍 详细解释

1. 假设使用线性激活函数

  考虑一个含一个隐藏层的简单神经网络:

  • 输入:$\mathbf{x} \in \mathbb{R}^{n_x}$
  • 隐藏层:$\mathbf{a}^{(1)} = \mathbf{z}^{(1)} = \mathbf{W}^{(1)}\mathbf{x} + \mathbf{b}^{(1)}$
  • 输出层:$a^{(2)} = z^{(2)} = \mathbf{W}^{(2)}\mathbf{a}^{(1)} + b^{(2)}$

  这里假设激活函数 $g(z) = z$(即线性/恒等激活函数)。

  将隐藏层代入输出层:

\[\begin{aligned} a^{(2)} &= \mathbf{W}^{(2)} (\mathbf{W}^{(1)}\mathbf{x} + \mathbf{b}^{(1)}) + b^{(2)} \\ &= (\mathbf{W}^{(2)}\mathbf{W}^{(1)}) \mathbf{x} + (\mathbf{W}^{(2)}\mathbf{b}^{(1)} + b^{(2)}) \end{aligned}\]

  令:

\[\mathbf{W}' = \mathbf{W}^{(2)}\mathbf{W}^{(1)}, \quad b' = \mathbf{W}^{(2)}\mathbf{b}^{(1)} + b^{(2)}\]

  则最终输出为:

\[\hat{y} = a^{(2)} = \mathbf{W}' \mathbf{x} + b'\]

  👉 这只是一个关于 $\mathbf{x}$ 的线性函数!


2. 多层网络也无济于事

  即使你堆叠任意多层隐藏层,只要每层都使用线性激活函数,整个网络仍然等价于一个单层线性变换

线性函数的复合仍是线性函数。

  例如:

\[f(x) = W_3(W_2(W_1 x + b_1) + b_2) + b_3 = W' x + b'\]

  因此:

  • 隐藏层数量失去意义
  • 无法拟合非线性数据(如 XOR、图像、语音等)
  • 等价于逻辑回归或线性回归

结论:没有非线性激活函数,深度神经网络就“不深”——它退化为浅层线性模型。


3. 非线性激活函数的作用

  引入非线性激活函数(如 ReLU、tanh、sigmoid)后:

  • 每一层可对输入进行非线性变换
  • 多层叠加可逼近任意复杂函数(通用逼近定理)
  • 网络具备表达高维非线性模式的能力

  例如使用 ReLU:$g(z) = \max(0, z)$,则:

\[\mathbf{a}^{(1)} = \text{ReLU}(\mathbf{W}^{(1)}\mathbf{x} + \mathbf{b}^{(1)})\]

  此时输出不再是 $\mathbf{x}$ 的线性函数,而是分段线性但整体非线性的函数。


4. 唯一可用线性激活的场景:输出层(回归任务)

  在某些回归问题中(如预测房价),目标值 $y \in \mathbb{R}$ 是连续实数,此时输出层可使用线性激活函数:

\[\hat{y} = \mathbf{W}^{(L)} \mathbf{a}^{(L-1)} + b^{(L)}\]

  这样可以让 $\hat{y} \in (-\infty, +\infty)$,匹配真实值范围。

⚠️ 但隐藏层仍必须使用非线性激活函数!否则整个网络仍是线性的。

💡 补充:即使做房价预测,由于价格 $\geq 0$,也可用 ReLU 作为输出激活函数,强制 $\hat{y} \geq 0$。


✅ 总结要点

场景是否可用线性激活函数说明
隐藏层❌ 不推荐(几乎从不使用)会导致整个网络退化为线性模型
输出层(分类)❌ 不可用分类需 sigmoid / softmax 输出概率
输出层(回归)✅ 可用允许输出任意实数;但非必须,ReLU 也可用于非负输出

📌 关键公式回顾(KaTeX)

  • 线性激活下的两层网络输出:

    \[\hat{y} = \mathbf{W}^{(2)}\mathbf{W}^{(1)}\mathbf{x} + (\mathbf{W}^{(2)}\mathbf{b}^{(1)} + b^{(2)}) = \mathbf{W}'\mathbf{x} + b'\]
  • 非线性激活(以 ReLU 为例):

    \[\mathbf{a}^{(l)} = \text{ReLU}(\mathbf{W}^{(l)}\mathbf{a}^{(l-1)} + \mathbf{b}^{(l)})\]
  • 线性函数的复合仍是线性的:

    \[f(g(x)) = A(Bx + c) + d = (AB)x + (Ac + d)\]

🔚 结语

非线性激活函数是神经网络“智能”的源泉。
它们赋予网络拟合复杂模式的能力,使“深度”真正有意义。
没有它们,再深的网络也只是“纸老虎”。

本文由作者按照 CC BY 4.0 进行授权