zoukankan      html  css  js  c++  java
  • 经典卷积神经网络的学习(三)—— Inception Net

    Google Inception Net 首次出现在 ILSVRC 2014 的比赛中(和 VGGNet 同年),就以较大优势拔得头筹。那届比赛中的 Inception Net 一般被称为 Inception V1(version 1),其最大的优势在于控制 了参数量(也就控制了计算量)的同时,仍然能够获得非常好的分类性能 —— top-5 错误率 6.67%。

    Inception V1 降低餐数量的目的在于以下两点:

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

    0. 一些细节问题

    • Scale images because Inception needs pixels to be between 0 and 255,
      • Inception net 要求输入图像的像素值在 0-255 区间内,而不是 0-1,如果原始图像的像素值在 0-1,需要在乘以 255;
    • The output of the Inception model is a so-called Softmax-function
      • Inception net 的输出是 softmax-function,
    • 为什么使用了较多 1×1 的卷积
      • 图片数据天然地邻近区域的数据相关性较高,也即可通过卷积操作使相邻的像素点连接在一起。我们可十分方便构造多个卷积核,在同一空间位置但不同通道的卷积核的输出结果相关性较高
      • 因此一个 1×1 的卷积就可以很自然地将这些相关性很高的、在同一空间位置但不同通道的特征连接在一起,这也正是 1×1 的卷积会频繁地应用到 Inception Net 中的原因。
      • 1×1 卷积所连接的节点的相关性是最高的,而稍微大一点尺寸的卷积,3×35×5 的卷积所连接的节点相关性也很高,因此可进一步地使用一些稍大尺寸的卷积,增加特征多样性(diversity)

    1. 模型拓扑

    • Inception V1 有 22 层深,比 AlexNet 的 8 层或者 VGGNet 的 19 层还要更深。
    • 去除了最后的全连接层,而使用全局平均池化层(将图片尺寸变为 1×1)取代全连接层;



    如上图所示为 Inception Module 的结构图,可知:

    • 基本结构共有四个分支;Inception Module 的 4 个分支在最后一个聚合操作合并(在输出通道数这个维度上聚合)
    • Inception Module 中包含了:
      • 3 种不同尺寸的卷积:1×1,3×3,5×5
      • 1 个最大池化层:3×3

    2. Inception Net 家族

    • 2014 年 9 月,Going Deeper with Convolutions ⇒ Inception V1(top-5 错误率 6.67%)
    • 2015 年 2 月,Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate ⇒ Inception V2(top-5 错误率 4.8%)
      • 学习了 VGGNet,用两个 3×3 的卷积代替 5×5 的大卷积(以降低参数和减轻过拟合),正如论文标题所言,还提出了有效的 Batch Normalization 方法,可为大型卷积网络的训练加速很多倍;
    • 2015 年 12 月,Rethinking the Inception Architecture for Computer Vision ⇒ Inception V3(top-5错误率 3.5%),主要有下述改进:
      • 引入 Factorization into Small convolutions 的思想,讲一个较大的二维卷积拆成两个较小的一维卷积,比如将 7×71×7 & 7×1
    • 2016 年 2 月,Inception V4、Inception-ResNet and the Impact of Residual Connections on learning,提出 Inception V4 的概念,(top-5 错误率 3.08%)
  • 相关阅读:
    Object-c的类可以多重继承么?可以实现多个接口么?如何实现?
    对于TableViewCell重用机制的理解
    xcode快捷方式
    Mysql数据迁移——按分号split一列字段插入另一张表
    Android手机导出微信聊天记录
    Java性能分析工具之Jprofiler初体验
    Android adb端口被占用的解决办法
    mysql limit查询性能优化
    Delphi异或算法转换为java实现
    [python]用Python进行SQLite数据库操作
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9422034.html
Copyright © 2011-2022 走看看