e58b95d227
将《设计人工智能:基础与应用》拆分为 38 个 Markdown 文件, 按 11 个部分(上篇6部分+下篇5部分)+ 3 个附录组织。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
146 lines
4.4 KiB
Markdown
146 lines
4.4 KiB
Markdown
|
||
### 学习目标
|
||
|
||
理解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](http://cs231n.stanford.edu/)
|
||
|
||
[Understanding CNNs](https://poloclub.github.io/cnn-explainer/) \# 02.2 目标检测
|