第8章中已经深入探讨了经典的多层感知器模型,它在解决分类问题上表现出了卓越的通用性。实践证明,在处理那些已经拥有良好特征表示的数据集时,采用多层感知器模型通常能够取得令人满意的性能。然而,对于这类数据,其他机器学习模型同样可以提供出色的预测性能。使用神经网络并没有带来额外的提升,反而可能损失了可解释性方面的优点。因此,神经网络需要在那些无法用向量描述建模对象的场景下证明自己的独特价值。
在现实生活中,我们常常面临着建模挑战,因为高质量特征表示的情况相对罕见。人类引以为傲的视觉能力,能够轻松识别图像,甚至可以将图像数字化,但将图像有效地向量化却是一项相当复杂的任务。这是因为我们并不清楚人体是如何执行这看似简单的工作的,也不明白图像中的哪些因素会影响我们的认知过程。因此,尽管计算机能够执行某些看似复杂且烦琐的任务,例如计算复杂损失函数的梯度,但它们却难以完成看似简单的图像识别任务。
正如第8章中讨论的,神经网络的隐藏层可以看作对数据进行自动特征提取的工具。这种自动特征提取的能力能否达到或超越人类的水平呢?换句话说,在人类无法有效完成特征提取的情况下,是否可以利用神经网络的特性来自动提取特征并完成建模任务呢?答案是肯定的。这也是本章要深入探讨的问题。在接下来的章节中,我们将详细讨论如何利用神经网络自动提取图像特征,进而赋予计算机视觉能力。
本章讨论的卷积神经网络(Convolutional Neural Network,CNN),是深度学习领域的一个重要里程碑。它展示了深度学习的潜力:通过增加网络的深度,模型可以获得惊人的性能提升。该模型的作者作为“较早吃螃蟹的人”,采用GPU而非传统的CPU进行模型训练,大幅提升了计算速度。这一成功案例推动了GPU在神经网络领域的广泛应用,使训练深度神经网络成为可能,也推动了深度学习的快速发展。可以毫不夸张地说,卷积神经网络开启了深度学习时代,让以深度学习为代表的人工智能走出实验室,走进现实世界。人工智能在极短的时间内在一个个项目中超越了人类的表现。或许,人工智能内心一直在不断地回响这句名言:“我来,我见,我征服。”
| 代码 | 说明 |
|---|---|
| mnist.ipynb | 展示所用的训练数据 |
| mlp.ipynb | 使用多层感知器识别图片 |
| conv_example.ipynb | 二维卷积计算的代码实现 |
| cnn.ipynb | 使用卷积神经网络识别图片 |
| res_nets.ipynb | 使用残差网络识别图片 |