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有更快的收敛速度
R e L U = m a x ( 0 , x ) ReLU = max(0,x) ReLU=max(0,x)
引申:一些常用激活函数的作用,特点以及选择原则 -
Local Response Normalized(LRN)局部响应归一化
不同于传统 tanh 和 sigmoid 激活函数,ReLU的值域没有一个区间,因此对结果进行归一化(LRN)
b ( x , y ) = a ( x , y ) i ( k + α ∑ j = m a x ( 0 , i − n / 2 ) m i n ( N − 1 , i + n / 2 ) ( α ( x , y ) j ) 2 ) β b_{(x,y)} = \frac{a_{(x,y)}^i}{(k+\alpha \sum\limits_{j=max(0,i-n/2)}^{min(N-1,i+n/2)}(\alpha_{(x,y)}^j)^2)^\beta} b(x,y)=(k+αj=max(0,i−n/2)∑min(N−1,i+n/2)(α(x,y)j)2)βa(x,y)i -
Overlapping Pooling(覆盖的池化操作)
-
Dropout
-
Data Augmentation(数据增广)
VGG(2014)
论文:Very Deep Convolutional Networks for Large-Scale Visual Recognition
结构:
说明:
- 加深版的AlexNet,网络更深
- 采用预训练,迁移学习:先训练一小部分网络,确保这部分网络稳定后,再加深网络,也即表格中从 A-E 过程
- 网络处于D阶段,效果最优,此阶段的网络就是 VGG-16
VGG-16
- 结构
网络结构很规整,全部使用以下结构卷积核和池化
C
o
n
v
3
:
s
i
z
e
=
3
×
3
,
s
t
r
i
d
e
=
1
,
p
a
d
d
i
n
g
=
′
S
A
M
E
′
P
o
o
l
2
:
s
i
z
e
=
2
×
2
,
s
t
r
i
d
e
=
2
,
M
a
x
P
o
o
l
\begin{aligned} & Conv3:size = 3 \times 3 ,\ stride = 1,\ padding = 'SAME' \\ & Pool2:size = 2 \times 2,\ stride = 2,\ Max\ Pool \end{aligned}
Conv3:size=3×3, stride=1, padding=′SAME′Pool2:size=2×2, stride=2, Max Pool
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