美文网首页
9. 卷积神经网络工程实践

9. 卷积神经网络工程实践

作者: 路小漫 | 来源:发表于2018-04-16 16:04 被阅读0次

    小姐姐归来,带着蜜汁微笑,啦啦啦~

    这次讲的应该是一些成功的神经网络架构,毕竟我们不能总重复造轮子,借鉴很重要

    AlexNet

    结构
    • AlexNet的架构如图,有5个卷积层
    问题1
    • 输入是:227×227×3 的图像
    • 第一层(卷积层1):96个大小为11×11的滤波器,步长为4
    • 问题:卷积层的输出是?
      *答案:55×55×96
    问题2
    • 问题:这一层的超参数的个数是多少?
    • 答案:(11×11×3)×96=35k
    问题3
    • 输入:227×227×3
    • 经过卷积层1:55×55×96
    • 第二层(池化层1):3×3 的滤波器 步长为2
    • 问题:这层输出大小为?
    • 答案:27×27×96
    问题4
    • 问题:第二层的超参数个数?
    • 答案:0
    • 池化层没有参数!
    所有层的情况
    • input: [227×227×3]
    • conv1: [55×55×96]
    • max pool1: [27×27×96]
    • norm1: [27×27×96]
    • conv2: [27×27×256]
    • max pool2: [13×13×256]
    • norm2: [13×13×256]
    • conv3: [13×13×384]
    • conv4: [13×13×384]
    • conv5: [13×13×256]
    • max pool3: [6×6×256]
    • FC6: 4096
    • FC7: 4096
    • FC8: 1000
    更多的细节

    图像分类比赛冠军概览

    ILSVRC1
    • AlexNet是第一个基于CNN的获得冠军的网络
    ILSVRC2
    • ZFNet在AlexNet的基础上改善了超参数的设置
    ZFNet ILSVRC3
    • VGG和GoogleNet在AlexNet的基础上使用了更深的网络

    VGGNet

    VGGNet

    更小的卷积核,更深的网络

    • AlexNet只有8层,而VGG有16层到19层
    • 只使用 3×3的卷积核,步长为1,pad为1;池化层采用2×2的核,步长为2
    • 达到了7.3%的错误率

    为什么使用更小的卷积核?

    • 三个步长为1的3×3的卷积核,与一个7×7的卷积核有相同的效果,但是拥有更少的参数,更深的网络。
    3×3

    网络具体情况

    VGG16-1 VGG16-2 细节

    GoogleNet

    GoogleNet

    网络更深,计算效率更高

    • 22层
    • 采用inception模块
    • 没有FC(全连接)层
    • 只有5百万个超参数,比Alex Net少了12倍
    • 6.7%的错误率

    inception模块

    inception
    • 设计一个好的局部网络拓扑,把它看作一个网络,然后堆放这些网络,放到每一层的顶部
    inception
    • 对相同层的相同输入并行应用不同类型的滤波操作
    • 把结果串联起来,得到一个张量输出
    • 这个张量进入下一层
    example
    • 模块的输入是:28×28×256
    • 经过不同的滤波器,保持28×28不变
    • 串联后的结果是:28×28×672
    • 计算次数:854m ops
    • 这样的计算量是很大的,该如何解决呢?
    solution
    • 增加一个”瓶颈层“,减少在进行卷积之前的特征深度
    1×1
    • 1×1的卷积保持了特征,减少了深度
    改进
    • 在进行3×3,5×5之前,增加了一层1×1的瓶颈层
    • 在池化层后加一层1×1的瓶颈层
    改进后
    • 计算量为:356m ops
    完整结构

    ResNet

    ILSVRC winner
    • ResNet:深度革命
    ResNet

    非常深的网络

    • 152层网络
    • 3.57%的错误率
    普通网络层数增加后
    • 比较20层的网络和56层的网络
    • 56层的网络在训练损失和测试损失上都表现较差
    • 更深的网络表现更差,却不是因为过拟合
    原因
    • 问题应该是由于更深的网络更难优化,所以不如浅层网络表现好
    • 更深的网络应该至少和浅层网络表现得一样好
    • 一个解决方法是,从浅层网络复制已经训练好的层,添加到剩下的深层网络的层
    • 通过上面的方法可以让深层的网络表现的和浅层的一样好
    solution
    • 基于上面的思路,产生了Residual block的方法,如图右
    Residual block
    • 完整的结构:
      • 由residual块组成
      • 每个residual块拥有两个3×3的卷积层
      • 通常,两个滤波器,步长为2
      • 在网络开始的时候添加额外的卷积层
      • 没有任何全连接层
    瓶颈层
    • 对于深层网络,通常需要添加瓶颈层来减小网络的深度
    实际应用中
    • 在实际应用中在每个卷积层后进行批量归一化
    • 使用Xavier/2初始化
    • 使用随机梯度下降和动量初始化
    • 使用类似时间表类型的学习率
    • 小批量的大小为256
    • 权重小
    • 没有使用dropout

    相关文章

      网友评论

          本文标题:9. 卷积神经网络工程实践

          本文链接:https://www.haomeiwen.com/subject/zvaxkftx.html