基于卷积神经网络(CNN)的几个网络模型(LeNet, AleNet, VGG, GoogLeNet)总结
LeNet(1998)
论文:Gradient-based learning applied to document recognition
结构:
Layer | Description | outSize | params |
---|---|---|---|
input | 32 x 32 x 1 | ||
1 | Conv 5x5 s1,6 | 6, 28 x 28 | 156 |
2 | Pooling 2x2 s2 / sigmoid | 6, 14 x 14 | 12 |
3 | Conv 5x5 s1,16 | 16, 10 x 10 | 24164 |
4 | Pooling 2x2 s2 / sigmoid | 16, 5 x 5 | 32 |
5 | FC 120 | 120 | 48120 |
6 | FC 84 /sigmoid | 84 | 10164 |
7 | FC 10 | 10 | 840 |
说明:
- subsampling/pooling:下采样层,先将 2 x 2 单元的值求和,然后乘以参数 w,然后加偏置,最后取 sigmoid。每层的w,b相同,即每层参数个数为 2
AlexNet(2012)
论文:ImageNet Classification with Deep Convolutional Neural Networks
结构:
Layer | Description | outSize |
---|---|---|
input | 227 x 227 x 3 | |
1 | Conv 11x11x3 s4,96 / ReLU | 96, 55 x 55 |
Local Response Normalized | ||
Max Pool 3x3 s2 | 96, 27 x 27 | |
2 | Conv 5x5 s1,256 p2 / ReLU | 256, 27 x 27 |
Local Response Norm | ||
Max Pool 3x3 s2 | 256, 13 x 13 | |
3 | Conv 3x3 s1,384 p1 / Relu | 384, 13 x 13 |
4 | Conv 3x3 s1,384 p1 / Relu | 384, 13 x 13 |
5 | Conv 3x3 s1,256 p1 / Relu | 256, 13 x 13 |
Max Pool 3x3 s2 | 256, 6 x 6 | |
6 | FC 4096 / Relu,Dropout | 4096 |
7 | FC 4096 / Relu,Dropout | 4096 |
8 | FC 1000 | 1000 |
要点:
-
Rectified Linear Unit(ReLU)
引入非线性,此后还有其他推广,如 Leaky-ReLU, P-ReLU, R-ReLU,相比于sigmoid有更快的收敛速度
引申:一些常用**函数的作用,特点以及选择原则 -
Local Response Normalized(LRN)局部响应归一化
不同于传统 tanh 和 sigmoid **函数,ReLU的值域没有一个区间,因此对结果进行归一化(LRN)
-
Overlapping Pooling(覆盖的池化操作)
-
Dropout
-
Data Augmentation(数据增广)
VGG(2014)
论文:Very Deep Convolutional Networks for Large-Scale Visual Recognition
结构:
说明:
- 加深版的AlexNet,网络更深
- 采用预训练,迁移学习:先训练一小部分网络,确保这部分网络稳定后,再加深网络,也即表格中从 A-E 过程
- 网络处于D阶段,效果最优,此阶段的网络就是 VGG-16
VGG-16
- 结构
网络结构很规整,全部使用以下结构卷积核和池化
Layer | Description | outSize | params |
---|---|---|---|
input | 224 x 224 x 3 | ||
1 | Conv3-64 | 64, 224 x 224 | 1782 |
2 | Conv3-64 | 64, 224 x 224 | 36864 |
Pool2 | 64, 112 x 112 | 0 | |
3 | Conv3-128 | 128, 112 x 112 | 73728 |
4 | Conv3-128 | 128, 112 x 112 | 147456 |
Pool2 | 128, 56 x 56 | 0 | |
5 | Conv3-256 | 256, 56 x 56 | 294912 |
6 | Conv3-256 | 256, 56 x 56 | 589824 |
7 | Conv3-256 | 256, 56 x 56 | 589824 |
Pool2 | 256, 28 x 28 | 0 | |
8 | Conv3-512 | 512, 28 x 28 | 1179648 |
9 | Conv3-512 | 512, 28 x 28 | 2359296 |
10 | Conv3-512 | 512, 28 x 28 | 2359296 |
Pool2 | 512, 14 x 14 | 0 | |
11 | Conv3-512 | 512, 14 x 14 | 2359296 |
12 | Conv3-512 | 512, 14 x 14 | 2359296 |
13 | Conv3-512 | 512, 14 x 14 | 2359296 |
Pool2 | 512, 7 x 7 | 0 | |
14 | FC 4096 | 4096 | 102760448 |
15 | FC 4096 | 4096 | 16777216 |
16 | FC 1000 | 1000 | 4096000 |
- 要点
- 预处理:每个像素减去均值
- 关于池化:不作为一层,因为池化操作没有需要训练的权值w(对比LeNet)
- 关于正则:卷积层参数共享,需要训练的参数相对少,没有正则;全连接层参数多,使用正则化防止过拟合
GoogLeNet(2014)
论文:
-
Going deeper with convolutions
-
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
-
Rethinking the Inception Architecture for Computer Vision
-
Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning
结构:
-
Inception
-
架构
-
网络
要点:
- Inception模块中卷积部分都用了 ReLU
- 更深的网络结构和更少的参数和计算量。参数数量比 AlexNet 和 VGG 都要少很多。
- 使用不同的卷积核可以得到不同大小的感受野
- 采用 1x1 的卷积可以减少参数量,较少全连接层的使用也减少大量参数
- 在中间层加入了两个辅助分类器(softmax),在训练进行梯度下降求导时,将辅助分类器损失函数乘以 0.3的权重加到总损失上。可以有效避免梯度消失。
待续:ResNet,DenseNet