
293
第 11 章
训练深度神经网络
在第 10 章中,我们介绍了人工神经网络并训练了第一个深度神经网络。但是它们是浅
层网络,只有几个隐藏层。如果你需要解决一个复杂的问题,例如检测高分辨率图像中
的数百种物体,该怎么办?你可能需要训练更深的 DNN,也许 10 层或更多层,每层包
含数百个神经元,有成千上万个连接。训练深度 DNN 并不是在公园里散步。以下是你
可能会遇到的一些问题:
•
你可能会遇到棘手的梯度消失问题或相关的梯度爆炸问题。这是在训练过程中通过
DNN 反向传播时,梯度变得越来越小或越来越大时发生的。这两个问题都使得较低
的层很难训练。
•
对于如此大的网络,你可能没有足够的训练数据,或者做标签的成本太高。
•
训练可能会非常缓慢。
•
具有数百万个参数的模型会有严重过拟合训练集的风险,尤其是在没有足够的训练
实例或噪声太大的情况下。
在本章中,我们将研究所有这些问题,并介绍解决这些问题的技术。我们从探索梯度消
失和梯度爆炸问题及其一些受欢迎的解决方法开始。接下来,我们将研究迁移学习和无
监督预训练,即使在标签数据很少的情况下,它们也可以帮助你解决复杂的任务。然后
我们将讨论可以极大加速训练大型模型的各种优化器。最后我们将介绍一些流行的针对
大型神经网络的正则化技术。
使用这些工具,你就能够训练非常深的网络。欢迎使用深度学习!
11.1 梯度消失与梯度爆炸问题
正如我们在第 10 章中讨论的那样,反向传播算法的工作原理是从输出层到输入层,并
在此过程中传播误差梯度。一旦算法计算出成本函数相对于网络中每个参数的梯度,就 ...