zoukankan      html  css  js  c++  java
  • 讲解GoogleNet的Inception从v1到v4的演变

    GoogleNet和VGG是ImageNet挑战赛中的第一名和第二名。共同特点就是两个网络的层次都更深了。但是:

    • VGG继承了LeNet和AlexNet的一些框架结构
    • 而GoogleNet则做了更大胆的尝试,虽然深度有22层,但是参数却是Alexnet的1/12.而VGG都是Alexnet的三倍,由此可见,在内存和计算资源有限的时候,GoogleNet是好的结构,而且这个的性能更加优越,碾压VGG。

    对于GoogleNet结构的描述,什么是GoogleNet?什么是Inception?GoogleNet结构详解(2014年)

    对了GoogLeNet,可不是GoogleNet!!,我之前都打错了哈哈,据说是向LeNet致敬哈哈哈

    Inception v1

    总之,Inception是GoogLeNet的核心,GoogLeNet优秀,一方面是运算速度快,而这就是Inception的功劳。
    在这里插入图片描述设计一个稀疏网络结构,但是怎么产生稠密的数据呢。就用这个!CNN中常见的三种卷积核,和池化操作堆叠在一起,一方面增加了网络的宽度,另一方面也加强了网络对尺度的是影响。但是这个原始的版本思路是好的,但是计算量太大了,因此作者对3x3和5x5的卷积层之前用了1x1的缩小图片的channel数量,因此V1是这个样子:
    在这里插入图片描述

    1x1的卷积核有什么用呢?

    1x1卷积的主要目的是为了减少维度,还用于修正线性激活(ReLU)。比如,上一层的输出为100x100x128,经过具有256个通道的5x5卷积层之后(stride=1,pad=2),输出数据为100x100x256,其中,卷积层的参数为128x5x5x256= 819200。而假如上一层输出先经过具有32个通道的1x1卷积层,再经过具有256个输出的5x5卷积层,那么输出数据仍为为100x100x256,但卷积参数量已经减少为128x1x1x32 + 32x5x5x256= 204800,大约减少了4倍。

    为什么会有池化层在其中呢?

    一般来说,想让图像缩小,有以下两种方式:
    在这里插入图片描述
    但是左边的方法先池化层后inception,这样会导致特征的确实,而右边的方法,会导致运算量很大。为了同时保持特征并且降低运算发,将网络改成下图,使用两个并行化的模块来降低计算量,也就是池化,卷积并行,然后再合并

    inception V2

    设计人员想,如果只是单纯的堆叠网络,虽然可以提高准确率,但是会导致计算效率的下降,如何在不增加过多额计算量的同时提高网络的表达能力呢?

    卷积分解(Fatorizing Convolutions)

    大尺寸的卷积核可以带来更大的感受野,但是也意味着更多的参数,比如size=5的卷积核有25个参数,size=3的有9个参数。GoogLeNet团队提出可以用2个连续的3x3的卷积核组成小网络来代替单个size=5的卷积层:
    在这里插入图片描述
    通过大量的实验证明,这样的方案并不会导致表达的缺失。更进一步,团队考虑了nx1的卷积核,如下图:
    在这里插入图片描述
    因此,任意的nxn的卷积都可以通过nx1后接上1xn来代替。但是团队发现在网络的前期使用这样分解的效果并不好,在中部使用效果才会好。

    在这里插入图片描述

    团队更新了网络中的Inception的结构,如下图:

    在这里插入图片描述figure5是原来的v1版本,然后figure6是改成两个3x3的版本,然后figure7是改成了1xn和nx1的版本。

    inception v3

    最重要的改进就是分解Factorization,把7x7分解成两个一维的卷积(1x7和7x1),3x3的也是一样,这样的好处是,既可以加速运算,又可以将一个卷积拆成两个卷积,这样使得网络的深度进一步加深,并且增加了网络的非线性。(每增加一层都要用ReLU),此时网络的输入也从224x224变成299x299。

    Inception v4

    研究了Inception模块与残差连接的结合,ResNet结构大大加深了网络的深度,而且极大的提高了训练速度。总之,Inception v4就是利用残差连接(Residual Connection)来改进v3,得到Inception-ResNet-v1, Inception-ResNet-v2, Inception-v4网络
    我们先简单的看一下什么是残差结构:
    在这里插入图片描述
    结合起来就是:
    在这里插入图片描述

    然后通过二十个类似的模块,得到:
    在这里插入图片描述
    参考博文:
    googleNet

  • 相关阅读:
    fullCalendar改造计划之带农历节气节假日的万年历(转)
    Linked List Cycle
    Remove Nth Node From End of List
    Binary Tree Inorder Traversal
    Unique Binary Search Trees
    Binary Tree Level Order Traversal
    Binary Tree Level Order Traversal II
    Plus One
    Remove Duplicates from Sorted List
    Merge Two Sorted Lists
  • 原文地址:https://www.cnblogs.com/PythonLearner/p/12925712.html
Copyright © 2011-2022 走看看