cnn
差别
这里会显示出您选择的修订版和当前版本之间的差别。
| cnn [2026/09/11 07:49] – 创建 holdsark | cnn [2026/09/11 07:49] (当前版本) – holdsark | ||
|---|---|---|---|
| 行 54: | 行 54: | ||
| 更深层的卷积则能够组合这些低级特征,学习更加复杂的结构。 | 更深层的卷积则能够组合这些低级特征,学习更加复杂的结构。 | ||
| - | ===== 局 | + | ===== 局部连接 ===== |
| + | |||
| + | CNN 的第一个重要特点是局部连接(Local Connectivity)。 | ||
| + | |||
| + | 一个神经元不需要连接输入图像的所有像素,而只关注一个局部区域。 | ||
| + | |||
| + | 例如 3 × 3 卷积核每次只观察 3 × 3 的像素区域。 | ||
| + | |||
| + | 随着网络层数增加,神经元能够间接看到越来越大的输入区域。 | ||
| + | |||
| + | 这个区域称为 [[感受野]](Receptive Field)。 | ||
| + | |||
| + | 因此: | ||
| + | |||
| + | 浅层 → 小感受野 → 局部特征 | ||
| + | |||
| + | 深层 → 大感受野 → 全局结构 | ||
| + | |||
| + | ===== 权重共享 ===== | ||
| + | |||
| + | CNN 的第二个重要特点是权重共享(Weight Sharing)。 | ||
| + | |||
| + | 同一个卷积核会在输入的不同位置重复使用。 | ||
| + | |||
| + | 例如: | ||
| + | |||
| + | 左上角使用同一个卷积核 → 中间使用同一个卷积核 → 右下角仍然使用同一个卷积核。 | ||
| + | |||
| + | 这意味着 CNN 不需要为每个图像位置学习一套完全独立的参数。 | ||
| + | |||
| + | 权重共享不仅减少参数,也使模型具有一定的[[平移等变性]]。 | ||
| + | |||
| + | ===== Padding ===== | ||
| + | |||
| + | 当卷积核在输入上进行计算时,可以在输入周围补充额外像素,这称为 Padding。 | ||
| + | |||
| + | 常见方式包括: | ||
| + | |||
| + | * Valid:不进行 Padding。 | ||
| + | * Same:通常使输出空间尺寸保持不变。 | ||
| + | * Zero Padding:使用 0 填充边缘。 | ||
| + | |||
| + | Padding 可以防止特征图尺寸随着网络深度增加而过快缩小。 | ||
| + | |||
| + | ===== Stride ===== | ||
| + | |||
| + | Stride(步幅)决定卷积核每次移动多少个像素。 | ||
| + | |||
| + | 例如: | ||
| + | |||
| + | Stride = 1 → 每次移动 1 个像素。 | ||
| + | |||
| + | Stride = 2 → 每次移动 2 个像素。 | ||
| + | |||
| + | 增加 Stride 通常会降低输出特征图的空间尺寸,因此卷积本身也可以承担 [[下采样]] 的作用。 | ||
| + | |||
| + | ===== 池化 ===== | ||
| + | |||
| + | Pooling(池化)是一种常见的下采样操作。 | ||
| + | |||
| + | 最常见的是 [[Max Pooling]] 和 Average Pooling。 | ||
| + | |||
| + | 例如 2 × 2 Max Pooling: | ||
| + | |||
| + | 4 2 | ||
| + | 1 3 | ||
| + | |||
| + | 经过 Max Pooling 后得到: | ||
| + | |||
| + | 4 | ||
| + | |||
| + | 即保留局部区域中的最大值。 | ||
| + | |||
| + | 池化可以降低特征图空间尺寸、减少计算量,并提高一定程度上的位置鲁棒性。 | ||
| + | |||
| + | ===== CNN 的层次化特征 ===== | ||
| + | |||
| + | CNN 最重要的特点之一是层次化表示学习。 | ||
| + | |||
| + | 例如在图像分类任务中: | ||
| + | |||
| + | 第一层 → 边缘 | ||
| + | |||
| + | 第二层 → 简单纹理 | ||
| + | |||
| + | 第三层 → 局部形状 | ||
| + | |||
| + | 更深层 → 物体部件 | ||
| + | |||
| + | 最后 → 完整目标 | ||
| + | |||
| + | 因此,CNN 能够自动学习从低级视觉特征到高级语义特征的层次结构。 | ||
| + | |||
| + | ===== LeNet ===== | ||
| + | |||
| + | LeNet 是早期最著名的 CNN 之一,由 Yann LeCun 等人发展。 | ||
| + | |||
| + | 1998 年,LeCun、Léon Bottou、Yoshua Bengio 和 Patrick Haffner 在论文《Gradient-Based Learning Applied to Document Recognition》中系统介绍了 LeNet-5,并将其用于手写数字和文档识别。 | ||
| + | |||
| + | LeNet-5 的典型结构包括: | ||
| + | |||
| + | 输入 → 卷积 → 子采样 → 卷积 → 子采样 → 全连接 → 分类。 | ||
| + | |||
| + | 它证明了卷积神经网络可以有效处理视觉识别任务,并成为后来 CNN 发展的重要基础。 | ||
| + | |||
| + | ===== AlexNet ===== | ||
| + | |||
| + | 2012 年,Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 提出的 [[AlexNet]] 在 ImageNet 图像分类任务上取得突破性结果。 | ||
| + | |||
| + | AlexNet 使用: | ||
| + | |||
| + | * 深层 CNN。 | ||
| + | * [[ReLU]]。 | ||
| + | * [[GPU]] 训练。 | ||
| + | * [[Dropout]]。 | ||
| + | * 数据增强。 | ||
| + | * Max Pooling。 | ||
| + | |||
| + | AlexNet 的成功被认为是现代 [[深度学习]] 革命的重要转折点之一。 | ||
| + | |||
| + | ===== VGG ===== | ||
| + | |||
| + | [[VGG]] 由牛津大学 Visual Geometry Group 提出,并在 2014 年的论文《Very Deep Convolutional Networks for Large-Scale Image Recognition》中系统研究。 | ||
| + | |||
| + | VGG 的重要思想是大量使用 3 × 3 小卷积核,并通过增加网络深度提高模型表达能力。 | ||
| + | |||
| + | 它展示了: | ||
| + | |||
| + | 更深的网络 → 更强的特征表示能力。 | ||
| + | |||
| + | ===== ResNet ===== | ||
| + | |||
| + | [[ResNet]] 由 Kaiming He 等人在 2015 年提出。 | ||
| + | |||
| + | 其核心思想是引入 [[残差连接]]: | ||
| + | |||
| + | 输入 x → F(x) → F(x) + x | ||
| + | |||
| + | 这种结构解决了深层神经网络训练中的部分优化困难,使网络可以达到非常深的层数。 | ||
| + | |||
| + | ResNet 对之后的 CNN 以及整个 [[深度学习]] 领域产生了巨大影响。 | ||
| + | |||
| + | ===== CNN 与计算机视觉 ===== | ||
| + | |||
| + | CNN 长期以来是 [[计算机视觉]] 的核心模型之一。 | ||
| + | |||
| + | 典型应用包括: | ||
| + | |||
| + | * 图像分类。 | ||
| + | * 目标检测。 | ||
| + | * 图像分割。 | ||
| + | * 人脸识别。 | ||
| + | * OCR。 | ||
| + | * 医学图像分析。 | ||
| + | * 自动驾驶视觉系统。 | ||
| + | * 视频分析。 | ||
| + | |||
| + | 例如目标检测模型可以使用 CNN 提取图像特征: | ||
| + | |||
| + | 图像 → CNN Backbone → Feature Map → Detection Head → 目标位置与类别。 | ||
| + | |||
| + | ===== CNN 与 Transformer ===== | ||
| + | |||
| + | 随着 [[Vision Transformer]](ViT)的出现,Transformer 开始进入计算机视觉领域。 | ||
| + | |||
| + | CNN 与 Transformer 的一个重要区别是: | ||
| + | |||
| + | CNN → 通过卷积的局部感受野提取特征。 | ||
| + | |||
| + | Transformer → 通过 [[Self-Attention]] 建立不同位置之间的关系。 | ||
| + | |||
| + | CNN 天然具有局部性和权重共享结构,而 Self-Attention 更容易建立全局依赖关系。 | ||
| + | |||
| + | 现代视觉模型也经常将二者结合使用。 | ||
| + | |||
| + | ===== CNN 的优点 ===== | ||
| + | |||
| + | * 参数共享,参数量通常低于对应的全连接网络。 | ||
| + | * 能够利用图像的局部空间结构。 | ||
| + | * 具有层次化特征学习能力。 | ||
| + | * 对图像平移具有一定鲁棒性。 | ||
| + | * 可以使用 GPU 进行高效并行计算。 | ||
| + | * 在图像任务上具有成熟的训练和部署体系。 | ||
| + | |||
| + | ===== CNN 的局限 ===== | ||
| + | |||
| + | * 卷积天然偏向局部信息,需要较深网络才能建立较大的感受野。 | ||
| + | * 对长距离依赖关系的建模能力有限。 | ||
| + | * 对输入的旋转、尺度等变化并不天然完全不变。 | ||
| + | * 大型 CNN 仍然需要大量训练数据和计算资源。 | ||
| + | * 在部分视觉任务中已经受到 [[Vision Transformer]] 等架构的竞争。 | ||
| + | |||
| + | ===== CNN 的核心意义 ===== | ||
| + | |||
| + | CNN 的核心贡献不是简单地使用“卷积”代替全连接,而是把**图像的空间结构先验**引入神经网络。 | ||
| + | |||
| + | 它通过: | ||
| + | |||
| + | 局部连接 + 权重共享 + 层次化特征学习 | ||
| + | |||
| + | 使神经网络能够高效地处理具有空间结构的数据。 | ||
| + | |||
| + | 从 LeNet 到 AlexNet、VGG、ResNet,CNN 的发展推动了 [[深度学习]] 在 [[计算机视觉]] 中的大规模应用,也为后来 [[Vision Transformer]] 等视觉架构的发展提供了重要基础。 | ||
| + | |||
| + | ===== 相关条目 ===== | ||
| + | |||
| + | * [[DNN]] | ||
| + | * [[深度学习]] | ||
| + | * [[卷积]] | ||
| + | * [[Feature Map]] | ||
| + | * [[感受野]] | ||
| + | * [[AlexNet]] | ||
| + | * [[VGG]] | ||
| + | * [[ResNet]] | ||
| + | * [[Vision Transformer]] | ||
| + | |||
| + | ===== 参考资料 ===== | ||
| + | |||
| + | * LeCun et al., 1998, 《Gradient-Based Learning Applied to Document Recognition》 | ||
| + | * Krizhevsky, Sutskever, Hinton, 2012, 《ImageNet Classification with Deep Convolutional Neural Networks》 | ||
| + | * Simonyan, Zisserman, 2014, 《Very Deep Convolutional Networks for Large-Scale Image Recognition》 | ||
| + | * He et al., 2015, 《Deep Residual Learning for Image Recognition》 | ||
| + | * LeCun, Bengio, Hinton, 2015, 《Deep learning》 | ||
cnn.txt · 最后更改: 由 holdsark
