Inception系列1_Going deeper with convolutions GoogleNet inception

来源:互联网 发布:国际专线网络价格 编辑:程序博客网 时间:2024/05/20 08:41

Going deeper with convolutions_GoogleNet_inception

作者:
Christian Szegedy, Wei Liu, Yangqing Jia

这个架构的主要优点是提高网络内部计算资源的利用率,前生是GoogLeNet.
提高网络结果的方法有增加深度和增加宽度,但缺点就是参数过多和增加计算资源.解决办法去就是将全连接改为系数连接架构(包括卷积内部).

Architectural Details
这里写图片描述

主要就是讲一下这两个结构怎么来的:
如(a),这个结构的主要目的是,卷积里边最优局部稀疏结构如何通过重复的稠密结构来近似和覆盖.所以,我们要找到最优局部结构,然后去重复.我们分析后边层的相关性统计,然后将高相关性的层聚类到一起,然后将这些聚类作为下一层.我们假定,前面层的每个单元对应原图上的一些层,这些单元被分为滤波器组.低层时,这些单元关注于局部区域.这意味着最后有许多互相关联的单元关注于单个的区域,这些单元在下一层里可以被1×1的卷积覆盖.然而,仍然有可能有小部分的更加空间分散的的聚类可以被大的patch的卷积覆盖,区域面积越大,patch个数越小.为了避免patch问题,Inception架构被限制为1×1, 3×3 and 5×5,这些大小只是为了方便而不是必须.当然,由于pooling的重要性,所以加上pooling.
高抽象的特征被高层捕获,它们将会变得不太空间集中,这意味着随着层深度的增加,3×3 and 5×5的卷积也应该增加.
问题随之出现,在顶层时,滤波器的个数很多,即使是个数适中的5×5卷积,也会非常’昂贵’.输出滤波器的个数等于上一层所有滤波器的个数.pooling层和卷积层输出的合并导致输出的个数不可避免的逐渐增加.这样的话,即使结构稀疏,也会导致计算的飞速增长.
这样就激发了第二种结构:在计算急速增长的时候,使用维度现少和投影.这依据嵌入(embedding)的成功:即使是低维度的嵌入也可能会包含许多关于大的图像patch的信息.我们的模型不需要这么密集的信息,所以,1×1的卷积被用到了3×3 and 5×5的之前.使用relu.
由于技术原因,只有在高层使用Inception模块,而不是从一开始就使用.好处就是,1.计算不会飞快增长;2.网络可以学习同时学习不同尺度的特征.
GoogLeNet
结构如图:
这里写图片描述

网络输入224×224,RGB三通道图像,减去均值.“#3×3 reduce” 和 “#5×5 reduce”表示在3×3 和 5×5之前使用1×1的滤波器的个数.
这么深的网络,梯度的反向传播是一个问题.这个网络表明,网络中间层输出的特征区分较明显.所以通过给这些中间层增加额外的分类器,我们期望在底层网络产生的特征图具有区分度,增加梯度信号的反向传播,并且提供额外的正则.对(4a) 和 (4d)的输出增加这些分类(形式为更小的卷积网络).在训练时,这两个输出的loss被增加到总的loss,权重为0.3.评估时,将这些额外的网络去掉.
网络结构如下图:
这里写图片描述

额外分类结构:
(4a) 和 (4d)的输出首先增加了一个5×5大小步长为3的平均池化层,输出为4×4×512和4×4×528.
1×1的卷积,输出为128个通道,减少维度(减少通道数),然后使用relu;
一个全链接层有1024个单元,然后使用relu;
Droupout层的比例为0.7;
然后是softmax,作为分类器,和最终分类一样,预测1000类,在评估时去掉。
Training Methodology
使用异步随机梯度下降,0.9的momentum,每8个周期减少4%的学习率。由于参数过多,很难确定一个最佳参数的模型。

结论:
虽然更加复杂的网络,或者相似深度和宽度的网络可以产生相似的想过,本文的结论证明,使用稀疏的架构任然是一个通用的办法。

阅读全文
0 0
原创粉丝点击