欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

经典神经网络论文超详解(三) - GoogLeNet InceptionV1 学习笔记(翻译 + 精读 + 代码重现) - 为什么要这样构建?

最编程 2024-06-21 12:25:34
...

Q1:为什么分三个卷积核?

根据上一篇VGG中介绍感受野的例子,我们可以知道卷积核大的,感受野就越大。如果这个区域越大,说明我们获得的越是一个偏向全体的特征;而区域越小,说明我们获得的是一个偏向局部的特征。这样一来就可以获得不同尺度的特征。


Q2:为什么有条路是池化层?

引用论文原话:由于池化操作对于目前卷积网络的成功至关重要,因此建议在每个这样的阶段添加一个替代的并行池化路径应该具有额外的有益效果。


Q3:四条路过后为什么要合一块?

举个例子:有一个Inception结构的块,它的输入是16个通道的,输出是256个通道的。而有另外一个卷积层,设它的卷积核是5×5的,它的输入和输出也是16和256个通道。那么其实卷积层的这个输出是256个5×5尺度的信息,这样就造成了大量的冗余。但Inception输出同样是256个通道,但是它有四个尺度的信息,可能每个尺度占据64个通道,冗余信息就更少,这个输出信息也更加丰富。

过程:特征图先被复制成4份并分别被传至接下来的4个部分,将前一层用三个单独的卷积核扫描,并加一个池化操作,然后把这四个操作的输出串联到一起作为下一层的输入。

不足:

1.整个网络是通过大量堆叠这个模块来构建的,即使是适量的5×5卷积也会产生参数的爆炸式增长;

2.在这个单元中使用的最大池化层保留了输入数据的特征图的深度,所以在最后进行合并时,总的输出的特征图的深度增加,通道数多了,这样增加了该单元之后的网络结构的计算量。


InceptionV1结构

翻译

这就导致了所提出的架构的第二个想法:在其他计算需求会增加过多的地方,明智地应用降维 和投影。这是基于嵌入的成功:即使是低维的嵌入也可能包含大量关于一个相对较大的图像补 丁的信息。然而,嵌入以密集的、压缩的形式表示信息,而压缩的信息更难建模。我们希望在 大多数地方保持我们的表示稀疏 (根据[2]的条件的要求) ,并且只在信号必须集体聚集时压缩 它们。也就是说,在昂贵的3*3和5*5个卷积之前,使用1*1个卷积来计算缩减。除了被用作减 少量外,它们还包括使用校正的线性激活,这使它们具有双重用途。最终的结果如图2(b).所示

       一般来说,初始网络是由上述类型的模块堆叠组成的网络,偶尔有最大池化层,步幅为2,使网格 分辨率减半。出于技术上的原因 (训练期间的记忆效率) ,只在较高的层开始使用Inception模 块,同时以传统的卷积方式保持较低的层似乎是有益的。这并不是严格必要的,只是反映了我 们目前实施中的一些基础设施低低下。

       这种体系结构的一个主要好处方面是,它允许在每个阶段显著增加单元的数量,而不会导致计 算复杂性的不受控制的爆炸。降维的普遍使用允许将最后阶段的大量输入滤波器屏蔽到下一层 ,首先减少它们的维数,然后与大的卷积核进行卷积。这种设计的另一个实际有用的方面是 ,它与直觉相一致,即视觉信息应该在不同的尺度上进行处理,然后进行聚合,以便下一阶段 可以同时从不同的尺度上提取特征。

       计算资源的改进使用允许增加每个阶段的宽度和阶段的数量,而不遇到计算困难。利用初始架 构的另一种方法是创建质量稍低,但计算成本较低的版本。我们发现,所有包含的旋钮和杠杆 都允许计算资源的控制平衡,从而导致网络比非初始架构的网络快2-3倍,但在这一点上需要仔 细的手动设计。

 

精读

InceptionV1结构

主要思想:降维。在的3×3和5×5卷积之前,使用1×1卷积核进行卷积,来计算减少量,达到降维效果还有增强非线性能力的作用。

过程: