zoukankan      html  css  js  c++  java
  • 卷积神经网络进阶

    卷积神经网络进阶

    使用全连接层的局限性:

    • 图像在同一列邻近的像素在这个向量中可能相距较远。它们构成的模式可能难以被模型识别。
    • 对于大尺寸的输入图像,使用全连接层容易导致模型过大。

    使用卷积层的优势:

    • 卷积层保留输入形状。
    • 卷积层通过滑动窗口将同一卷积核与不同位置的输入重复计算,从而避免参数尺寸过大。

    LeNet

    LeNet分为卷积层块和全连接层块两个部分,交替使用卷积层和最大池化层后接全连接层来进行图像分类。下面我们分别介绍这两个模块。

    Image Name

    卷积层块里的基本单位是卷积层后接平均池化层:卷积层用来识别图像里的空间模式,如线条和物体局部,之后的平均池化层则用来降低卷积层对位置的敏感性。

    卷积层块由两个这样的基本单位重复堆叠构成。在卷积层块中,每个卷积层都使用(5 imes 5)的窗口,并在输出上使用sigmoid激活函数。第一个卷积层输出通道数为6,第二个卷积层输出通道数则增加到16。

    全连接层块含3个全连接层。它们的输出个数分别是120、84和10,其中10为输出的类别个数。

    LeNet: 在大的真实数据集上的表现并不尽如⼈意。
    1.神经网络计算复杂。
    2.还没有⼤量深⼊研究参数初始化和⾮凸优化算法等诸多领域。

    AlexNet

    首次证明了学习到的特征可以超越⼿⼯设计的特征,从而⼀举打破计算机视觉研究的前状。
    特征:

    1. 8层变换,其中有5层卷积和2层全连接隐藏层,以及1个全连接输出层。
    2. 将sigmoid激活函数改成了更加简单的ReLU激活函数。
    3. 用Dropout来控制全连接层的模型复杂度。
    4. 引入数据增强,如翻转、裁剪和颜色变化,从而进一步扩大数据集来缓解过拟合。

    Image Name

    使用重复元素的网络(VGG)

    VGG:通过重复使⽤简单的基础块来构建深度模型。
    Block:数个相同的填充为1、窗口形状为(3 imes 3)的卷积层,接上一个步幅为2、窗口形状为(2 imes 2)的最大池化层。
    卷积层保持输入的高和宽不变,而池化层则对其减半。

    Image Name

    ⽹络中的⽹络(NiN)

    LeNet、AlexNet和VGG:先以由卷积层构成的模块充分抽取 空间特征,再以由全连接层构成的模块来输出分类结果。
    NiN:串联多个由卷积层和“全连接”层构成的小⽹络来构建⼀个深层⽹络。
    ⽤了输出通道数等于标签类别数的NiN块,然后使⽤全局平均池化层对每个通道中所有元素求平均并直接⽤于分类。

    Image Name

    1×1卷积核作用
    1.放缩通道数:通过控制卷积核的数量达到通道数的放缩。
    2.增加非线性。1×1卷积核的卷积过程相当于全连接层的计算过程,并且还加入了非线性激活函数,从而可以增加网络的非线性。
    3.计算参数少

    NiN重复使⽤由卷积层和代替全连接层的1×1卷积层构成的NiN块来构建深层⽹络。
    NiN去除了容易造成过拟合的全连接输出层,而是将其替换成输出通道数等于标签类别数 的NiN块和全局平均池化层。
    NiN的以上设计思想影响了后⾯⼀系列卷积神经⽹络的设计。

    GoogLeNet

    1. 由Inception基础块组成。
    2. Inception块相当于⼀个有4条线路的⼦⽹络。它通过不同窗口形状的卷积层和最⼤池化层来并⾏抽取信息,并使⽤1×1卷积层减少通道数从而降低模型复杂度。
    3. 可以⾃定义的超参数是每个层的输出通道数,我们以此来控制模型复杂度。

    Image Name

    完整模型结构

    Image Name

  • 相关阅读:
    49. 字母异位词分组
    73. 矩阵置零
    Razor语法问题(foreach里面嵌套if)
    多线程问题
    Get json formatted string from web by sending HttpWebRequest and then deserialize it to get needed data
    How to execute tons of tasks parallelly with TPL method?
    How to sort the dictionary by the value field
    How to customize the console applicaton
    What is the difference for delete/truncate/drop
    How to call C/C++ sytle function from C# solution?
  • 原文地址:https://www.cnblogs.com/yu212223/p/12334060.html
Copyright © 2011-2022 走看看