Alexnet
网络结构
AlexNet包含8层,前5层里面都是卷积层和最大池化层的混搭,最后3层是全连接层。除最后一层外,网络被分成两个副本,分别运行在一个GPU上。
(
C
N
N
→
R
N
→
M
P
)
2
→
(
C
N
N
3
→
M
P
)
→
(
F
C
→
D
O
)
2
→
L
i
n
e
a
r
→
s
o
f
t
m
a
x
\displaystyle (CNN\to RN\to MP)^{2}\to (CNN^{3}\to MP)\to (FC\to DO)^{2}\to Linear\to softmax
(CNN→RN→MP)2→(CNN3→MP)→(FC→DO)2→Linear→softmax
- CNN = convolutional layer (with ReLU activation)
- RN = local response normalization局部响应归一化
- MP = maxpooling
- FC = fully connected layer (with ReLU activation)
- Linear = fully connected layer (without activation)
- DO = dropout
- used the non-saturating ReLU activation function
具体例图
优缺点
- CONV1
- 卷积核太大,不好,特征提取不精细,但是算的快
- 不加padding,边缘特征遗失太多,但是减少了计算量
- stride=4,太大了,提取不精细,但是算的快
- NORM层,好像被证明是没有用的层?
- 分为俩副本在不同GPU上运行
- 数据并行ism,将整个模型复制到每个GPU上,然后将训练数据分成多个批次,每个批次分配给不同的GPU进行处理。每个GPU都独立计算梯度并执行权重更新,然后将梯度同步到其他GPU上,以保持所有GPU上的模型参数一致,好训练。
Vgg
网络结构
大致分为Vgg16与Vgg19,二者深度不同,原理一样
D为Vgg16,E为Vgg19,如下表
:
从头到尾都是3*3的filter与2*2的maxpooling
优缺点
- 从头到尾都是3*3的filter与2*2的maxpooling,简洁,特征提取更精细
- 池化后特征图翻倍,每个最大池化层都会将特征图的尺寸减半,但会使通道数翻倍。这种设计有助于在保持足够的空间信息的同时,逐渐增加网络对特征的抽象表示。
- 几个3*3的filter组合比一个5*5或7*7之类的大filter效果好(重点)
- 参数更小,好训练
- 深度++,效果++,感受野还不变
- (为什么越深入效果越好?)
- 怎么个替代法:
- 层数比Alexnet多,更深度,性能更好
- 算力需求大,主要是全连接层里面的参数多
- 注:有的文章称:这些全连接层即使被去除,对于性能也没有什么影响
- 多加卷积层后会退化,不能进一步深入学习
Resnet
网络结构
由于在上述Vgg中存在难以进一步深入学习的问题,于是就有人(何恺明)在前人基础上提出了Resnet,创新点主要在于引入了残差块(Residual Block)和跳跃连接(Skip Connection),以解决上述问题。由图也能看到,从18层已经可以到152层了。
残差分析
表达式可为:
H
(
x
)
=
F
(
x
)
+
x
H(x)=F(x)+x
H(x)=F(x)+x
F
(
x
)
F(x)
F(x)为残差,在训练过程中可以直接调为0,就约等于跳过这个块了。
参考
[1] Krizhevsky, A., Sutskever, I., & Hinton, G.E. (2012). ImageNet classification with deep convolutional neural networks. Communications of the ACM, 60, 84 - 90.
[2] AlexNet - 维基百科 — AlexNet - Wikipedia
[3] 卷积神经网络经典回顾之AlexNet - 知乎 (zhihu.com)
[4] 10-VGG网络架构 - 哔哩哔哩 - bilibili
[5] 一文读懂VGG网络 - 知乎 (zhihu.com)
[6] VGG Very Deep Convolutional Networks (VGGNet) - What you need to know - viso.ai
[7] 你必须要知道CNN模型:ResNet - 知乎 (zhihu.com)
[8] ResNet算法概述和作者介绍_哔哩哔哩_bilibili
另:本文部分文本有AI辅助生成ChatGPT (openai.com)