GoogLeNet

GoogLeNet 最大的特点就是使用了 Inception 模块,它的目的是设计一种具有优良局部拓扑结构的网络,即对输入图像并行地执行多个卷积运算或池化操作,并将所有输出结果拼接为一个非常深的特征图。
Naive Inception:基本组成结构有四个成分,1*1卷积,3*3卷积,5*5卷积,3*3最大池化。最后对四个成分运算结果进行通道上组合,核心思想:利用不同大小的卷积核实现不同尺度的感知,最后进行融合,可以得到图像更好的表征。
Inception v1:Naive Inception有两个非常严重的问题:首先,所有卷积层直接和前一层输入的数据对接,所以卷积层中的计算量会很大;其次,在这个单元中使用的最大池化层保留了输入数据的特征图的深度,所以在最后进行合并时,总的输出的特征图的深度只会增加,这样增加了该单元之后的网络结构的计算量。于是人们就要想办法减少参数量来减少计算量,在受到了模型 “Network in Network”的启发,开发出了在GoogleNet模型中使用的Inception单元(Inception V1),这种方法可以看做是一个额外的1*1卷积层再加上一个ReLU层。
Inception V2:就算有了Pointwise Conv,由于 5×5 卷积核直接计算参数量还是非常大,训练时间还是比较长,于是Google学习VGGNet的特点,提出了使用多个小卷积核替代大卷积核的方法。BN(Batch Normalization)批归一化是Inception-V2原文中的核心内容,它通过归一化来解决训练中协变量偏移问题,从而加速多层神经网络的训练由于BN的效果显著,目前已成为深度学习中的通用技术。
Inception V3:多个小卷积核替代大卷积核后,参数量还是比较大,于是Google学习Factorization into small convolutions的思想,在V2的基础上,将一个二维卷积拆分成两个较小卷积,例如将7*7卷积拆成1*7卷积和7*1卷积,这样做的好处是降低参数量。该paper中指出,通过这种非对称的卷积拆分比对称的拆分为几个相同的小卷积效果更好,可以处理更多,更丰富的空间特征。
Inception v4:Inception v4 和 Inception-ResNet 在同一篇论文《Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning》中提出来。研究了 Inception Module 结合 Residual Connection,结合 ResNet 可以极大地加速训练,同时极大提升性能,在构建 Inception-ResNet 网络同时,还设计了一个更深更优化的 Inception v4 模型,能达到相媲美的性能。

Bottleneck:我们发现使用上面的结构和方法,参数量还是较大,于是人们提出了 Bottleneck 的结构降低参数量。Bottleneck结构分三步走,首先用Pointwise Conv进行降维,再用常规卷积核进行卷积,最后使用Pointwise Conv进行进行升维。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

10 + 3 =