当前位置: 代码迷 >> 综合 >> CNN通识教育:GoogLeNet
  详细解决方案

CNN通识教育:GoogLeNet

热度:17   发布时间:2024-01-10 00:33:26.0

论文原文:https://arxiv.org/abs/1409.4842
参考资料:
https://baijiahao.baidu.com/po/feed/share?wfr=spider&for=pc&context=%7B%22sourceFrom%22%3A%22bjh%22%2C%22nid%22%3A%22news_3570975145242505168%22%7D

针对的问题:分类和检测
成果:在ILSVRC14的分类和检测问题中崭露头角
特点:提升网络中计算资源的利用率,精心设计的结构使得网络在保持计算资源基本不变的情况下同时加深网络的深度和宽度。
贡献:
① 为如下结论提供了依据:用稠密结构表示稀疏结构有助于提升网络的性能;
② 用Inception构造了能够不增加计算负担,而增加网络深度和宽度的结构。

一般提升网络性能的手段有两个:增加网络的深度和宽度,但是这会带来两个明显的问题:①参数数量增加,更易过拟合,尤其当训练集中样本数量有限时这个问题更为突出;②计算量的陡增,如果增加的计算量没有被有效利用,就造成了计算资源的浪费。
解决上述两个问题的关键是:将全连接的结构变为稀疏连接的结构
然而,如今的运算设备在处理不均匀的稀疏数据时运算效率很低。可以将稀疏矩阵聚合成稠密矩阵解决这个问题,Inception结构就是针对稀疏到稠密的一次相对成功的尝试。

Inception网络的核心思想是找到卷积视觉网络可以近似的最优局部稀疏结构,并且该结构可以利用现有的密度矩阵计算硬件实现。Inception架构中使用1×1、3×3和5×5的卷积核,层级越高,所对应的原始图片的视野就越大,同样大小的卷积核就越难捕捉到特征,因而层级越高,卷积核的大小就应该增大。但是这个原始版的Inception还有一个问题,因为所有的卷积核都在上一层的所有输出上来做,那5×5的卷积核所需的计算量就太大了(参数太多)。当pooling单元加入之后这个问题更加明显:输出滤波器的数量等于前一步中滤波器的数量,pooling层的输出和卷积层的输出融合会导致输出数量逐步增长。即使这个架构可能包含了最优的稀疏结构,还是会非常没有效率,导致计算没经过几步就崩溃。因而,可以采用NIN中的方法对上一层的输出进行合并(使用1×1卷积核进行特征降维)。这样就衍生出了真正可用的Inception,如下图所示。
这里写图片描述
技术上的做法是,保持低层为传统卷积方式不变,只在较高的层开始用Inception模块。 这种架构有两个主要优点:①允许显著增加每一步的单元数目,计算复杂性不会不受控制,降维的普遍使用能保护最后一步到下一层的大量输入滤波器,在对它们用大的patch size卷积前首先降维;②视觉信息在不同的尺度上进行处理然后聚合,这样下一步可以同时从不同尺度提取特征。
这里写图片描述

激活层:ReLU
输入图像:224*224的RGB,减去均值
图像采样:图像8%到100%,长宽比在3/4到4/3之间,光度扭曲减轻过拟合,随机插值
损失函数:Softmax,网络末尾的Softmax加上两个辅助分类器的Softmax*0.3。
辅助分类器结构:5*5 ave-pooling(3 stride)+ 1*1卷积层(输出128) + 全连接层(1024) + ReLU + Softmax
训练参数:动量0.9,学习率每8轮下降4%,用Polyak平均创造最后的模型。

ILSVRC2014使用的方法:
① 训练7个模型,初始化方式相同,学习率下降方式相同,训练样本不同;
② 采样方式:将图片短边resize到256,288,320,352,从中取左中右三个正方形。裁剪四角+中心的224*224,翻转,正方形resize到224*224,翻转。这样每张图片可以取得4*3*6*2的样本。
③ 对softmax的结果做平均输出。

分类结果:
这里写图片描述
这里写图片描述

检测结果:
mean average precision (mAP)
这里写图片描述
这里写图片描述