Convolutional Neural Networks/zh

    From Marovi AI
    < Convolutional Neural Networks
    Revision as of 07:09, 24 April 2026 by DeployBot (talk | contribs) ([deploy-bot] Deploy from CI (8c92aeb))
    (diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
    Languages: English | Español | 中文
    Article
    Topic area Deep Learning
    Difficulty Intermediate
    Prerequisites Neural Networks, Backpropagation

    卷积神经网络(Convolutional Neural Network)CNNConvNet)是一类专门用于处理具有网格状拓扑结构数据的深度神经网络,例如图像(二维像素网格)、音频频谱图和视频。它们通过局部连接、权重共享和池化来利用输入的空间结构,使其在视觉和空间任务上比全连接网络高效得多。

    卷积运算

    核心构建模块是离散卷积(Discrete Convolution)。对于二维输入 $ \mathbf{X} $ 和大小为 $ k \times k $ 的滤波器(卷积核) $ \mathbf{K} $,输出特征图 $ \mathbf{Y} $ 为:

    $ Y_{i,j} = \sum_{m=0}^{k-1}\sum_{n=0}^{k-1} K_{m,n} \cdot X_{i+m,\, j+n} + b $

    其中 $ b $ 是偏置项。滤波器在输入上滑动(卷积),在每个位置计算点积。严格来说,大多数实现计算的是互相关(Cross-correlation)而非真正的卷积(后者会翻转卷积核),但由于卷积核权重是学习得到的,这一区别无关紧要。

    控制卷积的关键超参数:

    • 卷积核大小 — 滤波器的空间范围(例如 $ 3 \times 3 $$ 5 \times 5 $)。
    • 步幅(Stride) — 卷积核连续位置之间的步长。步幅为2会将空间维度减半。
    • 填充(Padding) — 在输入边界周围添加零来控制输出大小。"Same"填充保持空间维度不变;"Valid"填充不使用填充。

    滤波器与特征检测

    每个滤波器学习检测特定的局部模式。在早期层中,滤波器通常对边缘、角点和颜色梯度有响应。更深的层将这些组合成更高级的特征——纹理、部件,最终是完整的物体。

    卷积层并行应用多个滤波器,生成一叠特征图。如果输入有 $ C_{\text{in}} $ 个通道,该层有 $ C_{\text{out}} $ 个滤波器,则可学习参数的总数为:

    $ C_{\text{out}} \times (C_{\text{in}} \times k^2 + 1) $

    这比具有相同输入和输出维度的全连接层少得多,因为权重在所有空间位置上是共享的。

    池化

    池化(Pooling)层对特征图进行下采样,减小其空间维度并提供一定程度的平移不变性。常见的池化操作:

    • 最大池化(Max Pooling) — 取每个局部窗口(例如 $ 2 \times 2 $)中的最大值。
    • 平均池化(Average Pooling) — 取每个窗口中的平均值。
    • 全局平均池化(Global Average Pooling) — 将每个完整的特征图平均为单个值,通常在最终分类层之前使用。

    池化减少了计算成本,并通过逐步抽象表示来帮助防止过拟合。

    CNN的架构

    典型的CNN交替使用卷积层和池化层,然后接一个或多个全连接层用于最终预测:

    Input → [Conv → ReLU → Pool] × N → Flatten → FC → FC → Output
    

    每个卷积-池化模块提取越来越抽象的特征,而全连接层将它们组合用于分类或回归。

    里程碑架构

    架构 年份 关键贡献 深度
    LeNet-5 1998 开创了CNN用于手写数字识别(MNIST) 5层
    AlexNet 2012 赢得ImageNet竞赛;推广了ReLU、Dropout、GPU训练 8层
    VGGNet 2014 证明深度很重要;全程仅使用 $ 3 \times 3 $ 滤波器 16-19层
    GoogLeNet(Inception) 2014 引入了具有并行滤波器大小的Inception模块 22层
    ResNet 2015 引入残差连接,使极深网络的训练成为可能 50-152+层
    DenseNet 2017 通过密集块将每层与所有后续层连接 121-264层
    EfficientNet 2019 对深度、宽度和分辨率进行复合缩放 可变

    残差连接

    ResNet引入的残差连接(Residual Connection)(或跳跃连接)将模块的输入直接加到其输出上:

    $ \mathbf{y} = \mathcal{F}(\mathbf{x}) + \mathbf{x} $

    这使得梯度可以直接通过恒等路径流动,缓解了梯度消失问题,使得训练数百层的网络成为可能。残差连接已成为几乎所有现代架构的标准组件。

    计算机视觉中的应用

    CNN在广泛的视觉任务中取得了最先进的性能:

    • 图像分类 — 为整张图像分配标签(ImageNet、CIFAR)。
    • 目标检测(Object Detection) — 在图像中定位和分类目标(YOLO、Faster R-CNN、SSD)。
    • 语义分割(Semantic Segmentation) — 为每个像素分配类别标签(U-Net、DeepLab)。
    • 实例分割(Instance Segmentation) — 区分物体的各个实例(Mask R-CNN)。
    • 图像生成 — 使用基于CNN的生成器生成逼真图像(GAN、扩散模型)。
    • 医学影像 — 肿瘤检测、视网膜分析和放射学筛查。

    实践技巧

    • 当标注数据有限时,使用预训练模型(迁移学习/Transfer Learning)。
    • 优先使用堆叠的小卷积核($ 3 \times 3 $)——两个 $ 3 \times 3 $ 层与一个 $ 5 \times 5 $ 层具有相同的感受野(Receptive Field),但参数更少。
    • 在卷积之后、激活之前应用批量归一化(Batch Normalization)。
    • 大量使用数据增强(Data Augmentation)以减少过拟合
    • 用全局平均池化替代全连接层以减少参数数量。

    参见

    参考文献

    • LeCun, Y. et al. (1998). "Gradient-Based Learning Applied to Document Recognition". Proceedings of the IEEE.
    • Krizhevsky, A., Sutskever, I. and Hinton, G. E. (2012). "ImageNet Classification with Deep Convolutional Neural Networks". NeurIPS.
    • Simonyan, K. and Zisserman, A. (2015). "Very Deep Convolutional Networks for Large-Scale Image Recognition". ICLR.
    • He, K. et al. (2016). "Deep Residual Learning for Image Recognition". CVPR.
    • Tan, M. and Le, Q. V. (2019). "EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks". ICML.