zoukankan      html  css  js  c++  java
  • [DeeplearningAI笔记]卷积神经网络2.2经典网络

    4.2深度卷积网络

    觉得有用的话,欢迎一起讨论相互学习~

    我的微博我的github我的B站

    参考文献
    [LeNet]--Lécun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.
    [AlexNet]--Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]// International Conference on Neural Information Processing Systems. Curran Associates Inc. 2012:1097-1105.
    [VGG-16]--Simonyan K, Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition[J]. Computer Science, 2014.

    2.2经典网络

    LeNet-5

    • LeNet针对的是单通道的灰度图像
    • 原始图像为(32*32*1)的单通道灰度图像
    • 第一层使用的是(6个5*5)的卷积核,步长为1,Padding 为0,图像尺寸缩小到(28*28)
    • 接着使用池化窗口为(2*2)的平均池化窗口,其中步长为2。当时更趋向于使用平均池化方法,现在更倾向于使用最大池化方法。--输出的结果是一个(14*14*6)的图像。
    • 第二层使用的是(16个5*5)的卷积核,步长为1,Padding 为0,图像尺寸缩小到(10*10)。当时几乎不使用Padding填充的方法,所以每次池化后特征图大小都会变小。
    • 接着使用池化窗口为(2*2)的平均池化窗口,其中步长为2。则输出的结果是一个(5*5*16)的图像。
    • 紧接着是一个具有120个节点的全连接层FC1,其和上一层的高级特征图中的400个节点进行全连接,而后是全连接层FC2,有84个神经元,最后与输出神经元相连接得到模型最终的输出。

    讨论

    • 其对现在的启发是:随着网络层数的递增,使用的卷积核的个数增加,特征图的高度和宽度逐渐减小,而深度逐渐增加。
    • 过去人们使用Sigmoid函数和Tanh函数,现在主要使用ReLU函数。
    • 各网络层之间存在连接,每个卷积核的信道数和其输入的信道数相同。

    AlexNet

    • AlexNet首先用一张(227*227*3)的图片作为输入,实际上原文使用的图像是(224*224*3)作为输入,但是如果你尝试输入会发现(227*227)这个尺寸更好一些。
    • 第一层使用96个(11*11)的卷积核,步幅为4,因此图像尺寸缩小到(55*55),然后使用一个(3*3)的池化窗口构建最大池化层,步幅为2,则此时特征图尺寸缩小为(27*27*96)
    • 第二层使用256个(5*5)的卷积核,使用“SAME”模式进行填充,则得到(27*27*256)的特征图。接着使用(3*3)的池化窗口构建最大池化层,步长为2,则此时特征图尺寸缩小为(13*13*256)
    • 第二层使用256个(5*5)的卷积核,使用“SAME”模式进行填充,则得到(27*27*256)的特征图。接着使用(3*3)的池化窗口构建最大池化层,步长为2,则此时特征图尺寸缩小为(13*13*256)
    • 第三层使用384个(3*3)的卷积核,使用“SAME”模式进行填充,则得到(13*13*384)的特征图。连续对特征图进行三次卷积操作,均使用“SAME”模式,卷积核个数分别为“384”,“384”,“256”之后使用(3*3)池化窗口的池化层对其进行池化操作,且池化步长为2.最终得到(6*6*256)大小的特征图。
    • 将其展开为9216个单元,然后接上两个具有4096个神经元节点的全连接层,最后连接上一个单独的Softmax函数用以输出识别的结果。

    讨论

    • AlexNet网络比LeNet-5网络要大的多,LeNet-5网络大约有6万个参数,AlexNet网络包含约6000万个参数。这使得其能识别更多的特征。
    • AlexNet网络比LeNet-5网络表现更为出色的另一个原因是因为它使用了ReLU激活函数
    • 对于AlexNet,其使用了LRN的结构(局部响应归一化),简单而言是在中间特征图中每一个点上所有信道的值进行归一化操作。由于有研究证明其效果并不明显,所以我们并没有在此进行详细介绍。

    [lrn局部响应归一化示意图]


    VGG-16

    • VGG-16并没有太多的超参数,其只专注于构建卷积层的简单网络
    • 首先用(3*3)的卷积核,步幅为1,构建卷积层,Padding="SAME",然后使用(2*2)的卷积核,步幅为2,构建最大池化层。
    • 对于一个(224*224*3)的图片,使用64个上述卷积核进行两次卷积操作,得到(224*224*64)的特征图,再使用上述池化方式对其进行池化操作,得到(112*112*64)的特征图。再对其使用128个上述卷积核进行两次卷积操作后得到(112*112*128)的特征图。接着使用上述池化方式对其进行池化操作,得到(56*56*128)的特征图。再使用256个上述卷积核对特征图进行三次卷积操作得到(56*56*256)的特征图。再池化,512个卷积核卷积三次,池化,512个卷积核卷积三次,池化。最终得到(7*7*512)结构的特征图,然后进行全连接操作.后接两个具有4096个节点的全连接层,最后接上Softmax节点。具体网络结构如下图所示:

    讨论

    • VGG-16指的是这个网络包含16个卷积层和全连接层,总共包含1.38亿个参数。虽然网络较大,参数量多,但是结构并不复杂。网络结构十分规整。
    • 每一层的卷积核个数都进行翻倍,所以特征图中的信道数量也增加一倍,很有规律性,从这一点来说,这篇文章十分吸引人。
  • 相关阅读:
    day 80 视图家族
    day 79 drf 多表关联操作
    day 78 drf 序列化
    day 77 drf中请求、渲染、解析、异常、响应模块的二次封装
    day 76 drf
    python小知识
    请求 渲染 解析 异常 响应模块
    子组件
    vue基础(2)
    vue基础
  • 原文地址:https://www.cnblogs.com/cloud-ken/p/9360829.html
Copyright © 2011-2022 走看看