Files
2026_DesignAI/03-computer-vision/02.1-cnn-foundation.md
T
pengxiao e58b95d227 初始化:从 docx 拆分为独立 Markdown 章节
将《设计人工智能:基础与应用》拆分为 38 个 Markdown 文件,
按 11 个部分(上篇6部分+下篇5部分)+ 3 个附录组织。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 10:32:58 +08:00

4.4 KiB
Raw Blame History

学习目标

理解CNN的核心思想:局部连接与权重共享

掌握卷积、激活、池化三大组件

了解CNN与MLP的区别和联系

为什么需要CNN

MLP的问题

将图像展平成一维向量输入MLP

28×28``图像`` → 784``维向量`` → MLP

问题 1. 参数量巨大:784×1000 = 784,000个参数 2. 忽略空间结构:相邻像素的关系被破坏 3. 缺乏平移不变性:物体移位后需要重新学习

CNN的解决方案


特性 说明 优势


局部连接 每个神经元只连接局部区域 符合图像局部相关性

权重共享 同一卷积核扫描全图 大幅减少参数

层次化特征 低层→高层特征抽象 自动学习特征表达

CNN三大组件

1. 卷积层 (Convolution)

卷积操作:用卷积核(Filter)在图像上滑动,计算局部特征

输入图像`` ``卷积核`` ``特征图
┌─────────┐ ┌─────┐ ┌─────────┐
│ 1 2 3 │ │ 1 0 │ │ 8 10 │
│ 4 5 6 │ ⊗ │ 0 -1 │ = │ 14 16 │
│ 7 8 9 │ │ │ │ │
└─────────┘ └─────┘ └─────────┘

计算示例

输出``(1,1) = 1×1 + 2×0 + 4×0 + 5×(-1) = 1 - 5 = -4

多通道卷积

RGB``图像`` (3``通道``) + ``卷积核`` (3×3×3) → ``特征图`` (``单通道``)

2. 激活层 (Activation)

通常使用ReLU

output ``=`` ``max``(``0``, ``feature_map``)

作用:引入非线性,使网络能学习复杂模式

3. 池化层 (Pooling)

最大池化 (Max Pooling)

2×2``窗口`` → ``取最大值
┌─────┐ ┌───┐
│3 1 │ │ 3 │
│2 5 │ → │ │
└─────┘ │ 5 │
└───┘

作用: - 降低维度,减少计算量 - 增强平移不变性 - 扩大感受野

CNN架构示例

LeNet-5 (经典架构)

输入``(32×32) → ``卷积层`` → ``池化层`` → ``卷积层`` → ``池化层

``全连接层`` → ``输出

VGG-16 (深层架构)

输入`` → [Conv×3 + Pool] ×2 → [Conv×3 + Pool] ×3
→ [Conv×3 + Pool] ×3 → FC×3 → ``输出

CNN vs MLP


特性 MLP CNN


连接方式 全连接 局部连接

权重 每个连接独立 同层共享

空间结构 忽略 保留

参数量 大 小

适用任务 结构化数据 图像/语音

经典网络架构演进

LeNet`` (1998) → ``首次定义``CNN``结构

AlexNet`` (2012) → ``深度学习爆发,``ReLU``激活

VGG (2014) → ``更深网络,``3×3``小卷积核

GoogLeNet`` (2014) → Inception``模块,多尺度

ResNet`` (2015) → ``残差连接,``152``层

EfficientNet`` (2019) → ``复合缩放,高效

思考与练习

1.为什么卷积核通常选择奇数尺寸(3×3, 5×5)?

2.感受野如何随着网络深度增加?

3.设计一个简单的CNN用于手写数字识别

关键术语


中文 英文 说明


卷积核 Kernel/Filter 用于特征提取的小矩阵

步幅 Stride 卷积核滑动的步长

填充 Padding 边缘补零以保持尺寸

感受野 Receptive Field 神经元响应的输入区域

通道 Channel 图像的颜色维度或特征图数量

延伸阅读

CS231n: Convolutional Neural Networks

Understanding CNNs # 02.2 目标检测