keras搬砖系列-inception流派
GoogleleNet系列网络
1.Inception v1通过把不同尺寸的卷积核比如:1*1,3*3,5*5进行堆叠增加了网络对不同卷积。
inception Module
Inception Module的4个分支在最后通过一个操作合并(在输出通道数这个维度上聚合,在tensorflow中使用tf.concat(2,[],[]))实现合并。完整的GoogleLeNet结构在传统的卷积层和池化层后面引入了Inception结构,层数虽然增加,但是参数的数量减少,绝大部分的参数都集中在了全连接层。
2,Inception V2学习了VGG用了两个3*3的卷积来代替5*5的大卷积,在降低参数的同时建立了更多非线性变换,是的CNN对特征的学习能力进行增强。
并加入了BN层。
3,inception v3
将一个3*3的卷积拆分成1*3卷积与3*1卷积
主要思想:将一个较大的二维卷积拆分成两个比较小的一维卷积。节约了大量参数,同时增加了一层非线性的扩展模型表达能力。
4,inception v4 主要结合了ResNet
总结:
Inception V1——构建了1x1、3x3、5x5的 conv 和3x3的 pooling 的分支网络,同时使用 MLPConv 和全局平均池化,扩宽卷积层网络宽度,增加了网络对尺度的适应性;
Inception V2——提出了 Batch Normalization,代替 Dropout 和 LRN,其正则化的效果让大型卷积网络的训练速度加快很多倍,同时收敛后的分类准确率也可以得到大幅提高,同时学习 VGG 使用两个3´3的卷积核代替5´5的卷积核,在降低参数量同时提高网络学习能力;
Inception V3——引入了 Factorization,将一个较大的二维卷积拆成两个较小的一维卷积,比如将3´3卷积拆成1´3卷积和3´1卷积,一方面节约了大量参数,加速运算并减轻了过拟合,同时增加了一层非线性扩展模型表达能力,除了在 Inception Module 中使用分支,还在分支中使用了分支(Network In Network In Network);
Inception V4——研究了 Inception Module 结合 Residual Connection,结合 ResNet 可以极大地加速训练,同时极大提升性能,在构建 Inception-ResNet 网络同时,还设计了一个更深更优化的 Inception v4 模型,能达到相媲美的性能。