本章从数学角度描述了卷积神经网络(CNN)的工作原理。这一章是自成一体的,重点是让初学者能够理解CNN领域。
卷积神经网络(CNN)在许多计算机视觉、机器学习和模式识别问题上表现出优异的性能。关于这个主题已经发表了许多可靠的论文,并且已经提供了许多高质量的开源CNN软件包。
也有写得很好的CNN教程或CNN软件手册。但是,我们认为,专门为初学者准备的介绍CNN的材料仍然是需要的。研究论文通常很简洁,缺乏细节。对于初学者来说,阅读这样的论文可能是困难的。针对有经验的研究人员的教程可能无法涵盖理解CNN如何运行的所有必要细节。
本章试图提出一个文档:
自成一体。所有需要的数学背景知识都将在本章(或本书其他章节)中介绍;
有所有衍生的细节。这一章的目的是详细解释所有必要的数学。我们尽量不忽略推导过程中的任何重要步骤。因此,初学者应该能够跟上(尽管专家可能会发现这一章有点重复);
忽略实现细节。目的是让读者了解CNN是如何在数学层面运作的。我们将忽略这些实现细节。在CNN中,对各种实现细节做出正确的选择是其高准确性的关键之一(即“细节决定成败”)。然而,我们有意省略了这一部分,以便读者关注数学。在了解了数学原理和细节之后,通过亲身体验CNN编程来学习这些实现和设计细节会更有优势。本章的练习问题提供了动手制作CNN编程的机会。
CNNs在很多应用中都很有用,特别是在与图像相关的任务中。CNNs的应用包括图像分类、图像语义分割、图像中的目标检测等。在本章中,我们将重点讨论图像分类。在图像分类中,每幅图像都有一个主要的对象,占图像的很大一部分。一个图像根据其主要对象的身份被分类到其中一个类中。狗、飞机、鸟等。