• TensorFlow实战—Google Inception Net


    (1) 与VGG同在2014年出现,取得了ILSVRC 2014比赛第一名。

    (2) Inception V1有22层深,控制参数量的同时提高性能。控制参数量的原因:

    • 参数越多模型越庞大,需要供模型学习的数据量就越大,而目前高质量的数据非常昂贵
    • 参数越多,耗费的计算资源也会更大。

    (3) 参数少、模型深、表达能力强:

    • 去除了最后的全连接层,用全局平均池化层(将图片尺寸变为1*1)来取代它。全连接层占AlexNet 90%的参数,去除后训练快、减轻过拟合。
    • Inception Module提高了参数的利用效率

    (4) 一般,卷积层要提升表达能力,主要依靠增加输出通道数,副作用:计算量增大和过拟合。

    • 一个输出通道对应一个滤波器,同一个滤波器共享参数,只能提取一类特征,因此一个输出通道只能做一种特征处理。
    • 可以在输出通道之间进行信息组合。

    (5) Inception Module

    • 包含3种不同尺寸的卷积核1个最大池化,增加了网络对不同尺度的适应性,与Multi-scale类似。
    • Inception Net的主要目标是找到最优的稀疏结构单元,即Inception Module
    • 一个好的稀疏结构,应该把相关性高的一簇神经元节点连接在一起。普通数据中通过聚类,图像中临近区域的数据相关性高。
    • 而且可能有多个卷积核,同一空间位置但在不同通道的卷积核的输出结果相关性极高。
    • 1*1的卷积可以把这些相关性很高的、在同一个空间位置但是不同通道的特征连接在一起
    • 1*1连接的节点相关性最高,使用大一点的卷积核3*3/5*5连接节点的相关性也很高,增加多样性。
    • 整个网络中有多个堆叠的Inception Module,希望靠后的Module能捕获更高阶的抽象特征,因此靠后的Module的卷积的空间集中度应该逐渐降低,3*3和5*5大面积的卷积核的占比(输出通道数)应该更多。

    (6) Inception Net 有22层深,使用辅助分类节点(auxiliary classifiers),将中间某一层的输出用作分类,用较小的权重(0.3)加到最终分类中。

    (7) Inception 不同版本

    • Inception V1,Going Deeper with Convolutions,2014年9月(top5 error = 6.67%)
    • Inception V2,Batch normalization:Accelerating Deep Network Training by Reducing Internal Covariate, 2015年2月 (top5 error = 4.8%)
    • Inception V3, Rethinking the Inception Architecture for Computer Vision, 2015年12月 (top5 error = 3.5%)
    • Inception V4, Inception-ResNet and the Impact of Residual Connections on Learning, 2016年2月 (top5 error = 3.08%)

    (8) Inception V2

    • 学习VGG,用两个3*3的卷积替代5*5的大卷积,降低参数量并减轻过拟合
    • 提出了Batch normalization,有效的正则化方法,让大型卷机网络的训练速度加快很多倍,同时收敛后的分类准确率也可以得到大幅提高。
      • BN在用于神经网络某层时,会对每一个mini-batch数据的内部进行标准化处理,输出规范到 N(0,1)的正态分布,减少了Internal Covariate Shift(内部神经元分布的改变)。
      • 传统的深度神经网络在训练时,每一层的输入的分布都在变化,导致训练变得困难,只能使用一个很小的学习速率解决这个问题。对每层使用BN后就可以有效解决这个问题。
      • BN还起到了正则化的作用,可以减少或取消Dropout,简化网络结构。
    • 除了BN外,提高增益的其他调整:
      • 增大学习速率并加快学习衰减速度以适用BN规范后的数据
      • 去除Dropout并减轻 L2 正则
      • 去除 LRN
      • 更彻底地对训练样本进行shuffle
      • 减少数据增强过程中对数据的光学畸变,因为BN训练更快,每个样本被训练的次数更少,因此更真实的样本对训练更有帮助。

    (9) Inception V3

    • 引入了Factorization into small convolutions,将一个较大的二维卷积拆成两个较小的一维卷积,eg:7*7拆成1*7和7*1的卷积,3*3拆成1*3和3*1.节约了参数,减轻过拟合,同时增加了一层非线性扩展模型表达能力。非对称结构,比对称拆分为相同的小卷积效果更明显,可以处理更多/更丰富的空间特征,增加特征多样性。
    • 优化了Inception Module的结构,有35*35 17*17 和8*8三种不同结构。只在网络后部出现,前部还是普通卷积曾。在Inception Module使用分支,分支中又实用分支。

    (10) Inception V4

    • 将Inception Module与ResNet结合。

    参考资料:

    《TensorFlow实战》黄文坚  唐源 著

  • 相关阅读:
    python 多进程下的日志打印
    卷积神经网络思考点,卷积网络就是很多个小分类器构建的网络
    ShuffleNetV1 paper reading
    find,grep,mv 组合使用,对大量数据切割方便
    常用的开源协议
    python3 日志重复打印logger
    pytorch clamp 与clamp_区别
    version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference
    pytorch,cuda8,torch.cuda.is_available return flase (ubuntu14)
    opencv remap 函数
  • 原文地址:https://www.cnblogs.com/fighting-lady/p/7118608.html
Copyright © 2020-2023  润新知