参考:D2L
学习笔记
卷积层:学习图片空间信息
池化层:降低模型复杂度,泛化模型
全连接层:转换到类别空间
更大更深的LeNet
8 layers:
- 5 Conv layers
- 3 FC hidding layers
- 1 FC out layers
- 更大的池化窗口,使用最大池化层
- 更大的卷积核和步长,因为图片
- 新加了3层卷积层
- 更多的输出通道
- 1000类输出
- 隐藏层从120到4096
more details
- 激活函数从sigmoid变到ReLu(缓减梯度消失)
- 隐藏全连接层后加入了丢弃层
- 数据增强
更深更大的AlexNet
- 3*3 Conv 深但窄 效果更好
- 多个可重复使用的VCG块后接全连接层
- 不同次数的重复块得到不同架构,不同的卷积快个数和超参数可以得到不同复杂度的变种
全连接层:参数爆炸
LeNet 16x5x5x120= 48k
AlexNet 256x5x5x4096= 26M
VGG 512x7x7x4096= 102M
NiN块
- 一个卷积层后跟两个全连接层
- 无全连接层
- 交替使用NiN块和步幅为2的最大池化层
- 逐步减小高宽和增大通道数
- 最后使用全局平均池化层得到输出
- 其输入通道数是类别数
思考:最好的卷积层超参数?
1×1 3×3 5×5 Max pooling Multiple 1×1
能不能全都要?
Inception块
4个路径从不同层面抽取信息,然后在输出通道维合并
- 使用不同大小的卷积层
- 跟输入等同高宽
- 使用池化层
- 降低通道数来控制模型复杂度
- 总共256通道 一半给3×3 剩下一半给1×1 再分给5×5和1×1
- 黑色1×1Conv 变化通道数
橙色1×1Conv 抽取图像信息
橙色3×3 5×5 Conv MaxPool抽取空间信息- 每条路上通道数可能不同
与单3×3或5×5 Conv相比 Inception块有更少的参数个数和更低的计算复杂度
Details:
Stage3:通道分配不同 输出通道增加
Stage4:增加通道数,增加通道数
Stage5:增加通道数,1024维特征输出
残差块:
Details:
残差连接(Residual Connection)
- 将乘法运算变成加法运算
- 将函数分解为:一个简单的线性项和一个复杂的非线性想v
- 避免梯度消失
y
=
f
(
x
)
y = f(x)
y=f(x)
y
‘
=
f
(
x
)
+
g
(
f
(
x
)
)
y‘ = f(x) + g( f(x) )
y‘=f(x)+g(f(x)) 表示使用堆叠的方式对原有的模型进行加深之后的模型
y
‘
′
=
f
(
x
)
+
g
(
f
(
x
)
)
y‘' = f(x) + g( f(x) )
y‘′=f(x)+g(f(x)) 表示使用残差连接的方式对原有的模型进行加深之后的模型输出
这两项来说,就算第二项的值比较小,但还是有第一项的值进行补充(大数加上一个小数还是一个大数,但是大数乘以一个小数就可能变成小数)