文章

32 深度L层神经网络

32 深度L层神经网络

一、什么是深层神经网络?

  • Logistic 回归:可视为 1 层神经网络(只有输出层,无隐藏层),属于“浅层模型”。
  • 单隐藏层神经网络:共 2 层(1 个隐藏层 + 1 个输出层)。
  • 深层神经网络(Deep Neural Network) :具有 多个隐藏层(通常 ≥2),例如:

    • 2 个隐藏层 → 3 层网络
    • 5 个隐藏层 → 6 层网络

📌 注意:在神经网络中,层数 L 不包括输入层,只计算隐藏层 + 输出层。

  近年来研究发现:某些复杂函数只能被深层网络有效学习,而浅层模型(如 logistic 回归或单隐藏层)难以拟合。但具体需要多深,需通过实验(超参数调优)确定。


二、符号约定(Notation)

  设一个 L 层神经网络(含 L−1 个隐藏层 + 1 个输出层):

符号含义
$L$网络总层数(不包括输入层)
$n^{[l]}$第 $l$ 层的神经元数量(units)
$n^{[0]} = n_x$输入特征维度(即输入层大小)
$a^{[l]}$第 $l$ 层的激活值(activations)
$z^{[l]}$第 $l$ 层的线性组合(pre-activation)
$W^{[l]}$第 $l$ 层的权重矩阵,维度为 $(n^{[l]}, n^{[l-1]})$
$b^{[l]}$第 $l$ 层的偏置向量,维度为 $(n^{[l]}, 1)$
$x = a^{[0]}$输入数据
$\hat{y} = a^{[L]}$网络最终输出(预测值)

示例:

  若网络结构为:
输入层(3 维)→ 隐藏层1(5 单元)→ 隐藏层2(5 单元)→ 隐藏层3(3 单元)→ 输出层(1 单元)
则:

  • $L = 4$
  • $n^{[0]} = 3,\ n^{[1]} = 5,\ n^{[2]} = 5,\ n^{[3]} = 3,\ n^{[4]} = 1$

三、前向传播(Forward Propagation)公式

  对每一层 $l = 1, 2, …, L$,执行:

\[\begin{aligned} z^{[l]} &= W^{[l]} a^{[l-1]} + b^{[l]} \\ a^{[l]} &= g^{[l]}(z^{[l]}) \end{aligned}\]

  其中:

  • $g^{[l]}(\cdot)$ 是第 $l$ 层的激活函数(如 ReLU、tanh、sigmoid)
  • 对于输出层($l = L$),若为二分类问题,通常用 sigmoid 激活函数:

    \[a^{[L]} = \sigma(z^{[L]}) = \frac{1}{1 + e^{-z^{[L]}}}\]

✅ 最终输出:$\hat{y} = a^{[L]}$


四、关键实践要点

  1. 随机初始化权重
    不能将所有权重初始化为 0,否则对称性导致各神经元学习相同特征。应使用小的随机数(如 np.random.randn(...) * 0.01)。
  2. 向量化(Vectorization)
    所有计算应对整个训练集(batch)进行向量化,避免 for 循环。例如:

    • $A^{[l]}$ 表示第 $l$ 层对所有样本的激活矩阵,维度为 $(n^{[l]}, m)$,其中 $m$ 是样本数。
  3. 层数 $L$ 是超参数
    实际应用中,可尝试不同 $L$(如 1, 2, 3, 4…),在验证集上评估性能,选择最优深度。
  4. 深层 ≠ 总是更好
    虽然深层网络表达能力更强,但也可能带来:

    • 过拟合(需正则化)
    • 梯度消失/爆炸(需良好初始化、BatchNorm 等)
    • 训练更慢

五、后续内容预告

  本视频为 前向传播 的基础,下一节将讲解:

  • L 层网络的反向传播(Backpropagation)
  • 如何高效计算梯度 $\frac{\partial \mathcal{L}}{\partial W^{[l]}}$ 和 $\frac{\partial \mathcal{L}}{\partial b^{[l]}}$
  • 构建完整的 L-layer neural network 编程作业

六、学习建议

  • 动手实现:完成本周编程作业(构建任意 L 层网络的前向+反向传播)
  • 熟记符号体系:$W^{[l]}, b^{[l]}, a^{[l]}, z^{[l]}$ 的维度和含义
  • 理解“为什么深层有效”:函数复合能力增强,可学习层次化特征(如边缘 → 部件 → 物体)

  ✅ 总结一句话

深层神经网络通过堆叠多个非线性变换层($a^{[l]} = g(W^{[l]} a^{[l-1]} + b^{[l]})$),具备强大的函数逼近能力;其核心在于合理设计层数 $L$、正确初始化参数,并高效实现前向与反向传播。

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