前言
本文为8月22日计算机视觉理论学习笔记,分为两个章节:
一、常见 CNN
1、AlexNet
- 5个卷积层 + 3个全连接层;
- 60M 个参数 + 650K 个神经元;
- 新技术:
- ReLu;
- Max pooling;
- Dropout。
| | |
---|
输入层 | 224×224×3 | |
卷积层1 | 96×11×11×3 | ⇒ LRN ⇒ MP ⇒ ReLu |
卷积层2 | 256×5×5×48 | ⇒ LRN ⇒ MP ⇒ ReLu |
卷积层3 | 384×3×3×256 | ⇒ ReLu |
卷积层4 | 384×3×3×192 | ⇒ MP ⇒ ReLu |
卷积层5 | 256×3×3×192 | ⇒ ReLu |
全连接层1 | 4096 | ⇒ ReLu |
全连接层2 | 4096 | ⇒ ReLu |
全连接层3 | 1000 | ⇒ ReLu |
Softmax层 | 1000 | |
Loss | 4096 | ⇒ ReLu |
- 1×1 卷积: 实现同一个像素点上的各个通道的值的线性组合。作用有:
- 跨通道的交互和信息整合;
- 卷积核通道数的降维和升维。
2、VGG
- 核分解:7×7核 ⇒ 3个 3×3核(ReLu 连接),参数数量:
49
c
2
49c^2
49c2 ⇒
27
c
2
27c^2
27c2;
- 减少参数,降低计算,增加深度。
3、GoogLeNet
(1)、Inception V1
- 核心组件:Inception Achitecture
- Split-Merge ⇒ 1×1 卷积、3×3 卷积、5×5 卷积、3×3 池化:增加网络对多尺度的适应性、增加网络宽度;
- Bottleneck Layer ⇒ 使用 NiN 的1×1 卷积进行特征降维。
- 取消全连接层;
- 全局平均池化 GAP: 针对整张 feature map:
(2)、Inception V2
- 核心组件:Batch Normalization:
- 使每一层的输出都规范化到
N
(
0
,
1
)
N~(0, 1)
N (0,1);
- 允许较高学习率;
- 5×5 卷积核 ⇒ 2个 3×3 卷积核;
- Batch Normalization 的位置: 卷积 ⇒ BN ⇒ ReLu。
(3)、Inception V3
- 核心组件:非对称卷积:
- N×N 分解成 1×N & N×1;
- 降低参数数量和计算量。
(4)、Inception V4
4、ResNet
5、ResNeXt
- 提出“深”和“宽”之外的第三个维度:
- 基数 cardinality:
- 采用 Split-Transform-Aggregate 策略:
- 将卷积核按通道分组,形成 32个并行分支;
- 低维度卷积进行特征变换;
- 加法合并。
- 100层 ResNeXt = 200层 ResNet
二、CNN 设计准则
- 避免信息瓶颈:
- 卷积过程中:
- 空间尺寸 H×W 逐渐变小;
- 输出通道数 C 逐渐变多。
- H × W × C 要缓慢变小。
-
卷积核的通道数量保持在可控范围内:
-
感受野要足够大:
-
分组策略 ⇒ 降低计算量