【BasicNet系列:一】GoogLeNet 系列v1 v2 v3 Xception v4

ILSVRC14 比赛 冠军

参考:
深度学习—GoogLeNet

  • GoogLeNet(Inception-v1):相比AlexNet和VGG,出现了多支路,引入了1×1卷积帮助减少网络计算量
  • Inception-v2:引入Batch Normalization(BN);5×5卷积使用两个3×3卷积代替
  • Inception-v3:非对称卷积(n×n卷积分割为1×n和n×1两个卷积); new pooling ; Label smooth
  • Inception-v4:进一步优化,引入ResNet的shortcut思想

1、GoogLeNet 解决了什么问题

  • 提升了计算资源的利用率
  • 基于Hebbian法则和多尺度处理来 优化性能
  • 从深度与宽度两方面增加尺寸,直接提升深度卷积网络性能

Inception 结构引出缘由

CNN结构演化图

CNN结构演化图

GoogLeNet出来之前,主流的网络结构突破大致是网络更深(层数),网络更宽(神经元数)

主流缺点:

  • 参数太多,容易过拟合,若训练数据集有限;
  • 网络越大计算复杂度越大,难以应用;
  • 网络越深,梯度越往后穿越容易消失(梯度弥散),难以优化模型

解决方法:增加网络深度和宽度的同时减少参数,既能保持网络结构的稀疏性,又能利用密集矩阵的高计算性能。 ————GoogLeNet

2、⭐Inception v1

2014
Going deeper with convolutions

主要思路: 怎样用密集成分来近似最优的局部稀疏结构。

传统的提高网络精度的方法:扩大网络规模(巨量参数容易产生过拟合也会大大增加计算量) 或 增大训练数据集

贡献:

  • 利用1x1的卷积解决维度爆炸

native version

title

在pooling层添加一个额外的并行pooling路径用于提高效率。

title

(channel数等红蓝字仅为示例)
  • 采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合
  • 之所以卷积核大小采用1、3和5,主要是为了方便对齐。设定卷积步长stride=1之后,只要分别设定pad=0、1、2,那么卷积之后便可以得到相同维度的特征,然后这些特征就可以直接拼接在一起了;
  • 文章说很多地方都表明pooling挺有效,所以Inception里面也嵌入了。
  • 网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加。

问题 : 使用5x5的卷积核仍然会带来巨大的计算量。 文章借鉴NIN2(Network in Network),采用1x1卷积核来进行降维。

Improved version

title

图 :Filter Concatenation 是**channel**级别的操作(channel数为示例)
def __init__(self, in_planes, n1x1, n3x3red, n3x3, n5x5red, n5x5, pool_planes):
    super(Inception, self).__init__()
    # 1x1 conv branch
    self.b1 = nn.Sequential(
        nn.Con
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值