Google InceptionNet

来源:互联网 发布:《幻》知乎 编辑:程序博客网 时间:2024/06/06 20:06

1 网络结构:
整个模型结构:
这里写图片描述
其中:
这里写图片描述
这里写图片描述
这里写图片描述
InceptionNet将网络设计的更深更复杂。但是,它的参数却只有AlexNet的1/12。惊不惊喜?意不意外?反正我是被这个模型俘获了。Why?
①从AlexNet模型中,我们可以看到,模型的参数主要在全连接层的时候,剧增。所以,InceptionNet就抛弃了全连接层,这样大大减少了需要训练的参数的数量。
②Inception model。一般的,如果要提升CNN的表达能力,首先想到的就是增加卷积核数量,模型的层数等方法,可是这样的后果就是计算量太大,模型容易过拟合。而这里的Inception model就很好的中和了这个问题。整个模型有3个inception model,从上面的结构图中,我们看到,每个inception model其实也是一个小网络,每个小网络有3~4个分支,每个分支下1~5层不等。这样就是不仅增加了这个网络的深度还增加了这个网络的宽度,也就是增加了每层对特征的收集能力,最后合并各个分支,相当于将各个分支对特征提取的融合,如下图所示。
这里写图片描述
这里写图片描述
这是某个inception model的内部结构,可以看得到,每层的卷积核size是很小的,特别是1*1的居多。因为1*1卷积是代价最小的可以进行一次非线性变换的操作。另外我们可以发现的是,这里面有1*n与n*1叠加的卷积核。因为将一个小的n*n卷积核拆分成1*n与n*1不仅可以减少参数从而加速运算减轻过拟合,还可以增加非线性表达能力,增加特征多样性。

2 成绩:
2014年冠军之作,错误率6.7%左右。最大特点就是在控制了计算量和参数数量的同时,获得了非常好的分类性能,它的误差,只有AlexNet的一半左右。

3 新技术点:
①模型更深,表达能力更强。
②全连接层几乎占了Alexnet或者VGGnet 90%的参数量,而在inception net中,用全局平均池化层代替全连接层,减轻过拟合。
③inception 模块中采用较小的卷积核,提高参数利用率。并且,每个inception模块都可以看做是一个小网络,而每个模块中都采用好几种卷积核,增加了网络对不同尺度的适应性。
④在inception three中出现类似1*7,7*1这种不对称的卷积结构,一方面节约大量参数,减轻过拟合,另一方面增加了一层非线性扩展模型的表达能力。
⑤Batch normalization。批规范化,这是在inception V2里提出来的。即在每次SGD时,通过mini-batch来对相应的activation做规范化操作,使得结果(输出信号各个维度)的均值为0,方差为1。这样可以加快网络的训练速度,同时收敛后的准确率也大幅度提升,并且可以防止梯度弥散。

原创粉丝点击