卷积神经网络,简称CNN,是一种围绕卷积层构建的神经网络架构,卷积层对输入应用小型共享滤波器,使其特别适用于图像等网格结构数据,其中邻近像素相互关联,且边缘或纹理等有用模式可出现在画面任意位置。通过在每个空间位置复用相同的滤波器权重,CNN所需的参数远少于同等规模的完全连接网络,并自然编码了图像含义在内容平移时基本不变的假设,这一性质称为平移不变性。
历史
该架构的概念根源可追溯至Kunihiko Fukushima的neocognitron,这是一个1980年提出的视觉皮层层次模型,由Kunihiko Fukushima描述,引入了分层特征检测,但尚未使用反向传播进行训练。Yann LeCun在1980年代末将卷积层与反向传播结合,产生了LeNet,到1990年代中期,LeNet已在商业部署中用于读取银行支票上的手写数字,成为深度学习最早的实际成功案例之一。CNN在约二十年间仍是一种专业工具,直到2012年,由Alex Krizhevsky与Ilya Sutskever及Geoffrey Hinton设计的AlexNet,凭借在GPU (in AI)上训练的深度CNN,以巨大优势赢得了ImageNet 2012 (AlexNet moment)的ImageNet竞赛,这一事件被广泛认为点燃了现代深度学习热潮。
架构
典型CNN堆叠交替的卷积层(使用学习到的滤波器检测局部模式)和池化层(降低空间分辨率同时保留最强检测特征),逐步从早期层中的边缘和颜色等低级模式构建到更深层中的面部或物体等高级语义概念。最后几层通常是完全连接的,将提取的特征映射到输出类别。后来的架构如VGGNet、ResNet和Inception将深度推得更远,其中ResNet在2015年引入的残差或跳跃连接解决了消失梯度问题,该问题此前使得非常深的CNN难以用普通梯度下降训练。
应用
CNN成为计算机视觉任务的默认架构,包括图像分类、目标检测、语义分割和人脸识别,并支撑了自动驾驶感知系统、医学图像分析以及早期生成对抗网络设计的组成部分,其中CNN通常同时构成生成器和判别器。它们也被应用于视觉之外的领域,例如音频频谱图和一些文本分类任务,只要数据具有局部网格状结构且共享滤波器可利用即可。
相对主导地位的下降
自2020年左右以来,Vision Transformers将Transformer (architecture)架构及其注意力机制适配到图像块而非卷积滤波器,在许多大规模视觉基准上达到或超过了CNN性能,尤其是在超大数据集上训练时,这引发了关于卷积内置空间假设在数据和计算充足时是否仍属必要的争论。尽管如此,CNN在实践中仍被广泛使用,尤其是在资源受限或边缘AI环境中,因为其归纳偏置使其在训练数据有限时比Transformer更具数据效率,并且它们继续作为更大多模态系统中的编码器。