GoogLeNet吸收了NiN中串联网络的思想,并在此基础上做了改进。 这篇论文的一个重点是解决了什么样大小的卷积核最合适的问题。 毕竟,以前流行的网络使用小到1 * 1,大到11 * 11的卷积核。
本文的一个观点是,有时使用不同大小的卷积核组合是有利的。
本节将介绍一个稍微简化的GoogLeNet版本:我们省略了一些为稳定训练而添加的特殊特性,现在有了更好的训练方法,这些特性不是必要的。
1. 最好的卷积层超参数?
2. Inception块:小学生才做选择题,我全要了
在GoogLeNet中,基本的卷积块被称为Inception块(Inception block)。这很可能得名于电影《盗梦空间》(Inception),因为电影中的一句话“我们需要走得更深”(“We need to go deeper”)。
4个路径从不同层面抽取信息,然后在输出通道维合并。
Inception块由四条并行路径组成。
前三条路径使用窗口大小为 1×1 、 3×3 和 5×5 的卷积层,从不同空间大小中提取信息。
中间的两条路径在输入上执行 1×1 卷积,以减少通道数,从而降低模型的复杂性。
第四条路径使用 3×3 最大汇聚层,然后使用 1×1 卷积层来改变通道数。
这四条路径都使用合适的填充来使输入与输出的高和宽一致,最后我们将每条线路的输出在通道维度上连结,并构成Inception块的输出。在Inception块中,通常调整的超参数是每层输出通道数。
3. Inception块
图中白色区域可以看做基本上是改变通道数的,蓝色的卷积是用来抽取特征:第一条路径的1 * 1是用来抽取通道信息,而不抽取空间信息,中间两条路径是抽取空间信息,最后一条路径也是抽取空间信息。
跟单 3 * 3或 5 * 5卷积层相比,Inception块有更少的参数个数和计算复杂度。
4. GoogLeNet模型
最后的全连接层把通道数映射到标号所要的类别数,因此在这里,不强求经过全局平均汇聚层使得通道数等于类别数。
5. 段1 & 2
更小的宽口,更多的通道。
6. 段3
7. 段 4 & 5
8. Inception 有各种后续变种
9. Inception V3块,段3
10. Inception V3块,段4
11. Inception V3块,段5
12. 实际效果
ps:图片中圈的大小越大,所耗内存越多
13. 总结
-
Inception块用4条有不同超参数的卷积层和池化层的路来抽取不同的信息
- 它的一个主要优点是模型参数小,计算复杂度低
-
GoogleNet使用了9个Inception块,是第一个达到上百层的网络
- 后续有一系列改进