深度卷积神经网络原理与实践

写在前面

回顾上一节课,我们明白,每个神经元做的工作就是 Wx+b , 那么每个神经元的W的尺寸就是:
卷积核尺寸*图像深度。

卷积网络的结构

与常规的神经网络不同,ConvNet的神经元是三维排列的。

输入层
卷积层
非线性变换层
池化层
全连接层,就是普通的神经网络,输出层,隐含层,输出层

常见名词
  • 感受野receptive field: 卷积核尺寸
  • 局部连接
  • 参数共享
  • feature map = filter = neuron
  • Sride 步长

卷积操作后,图像尺寸减小,假设卷积模板F * F,输入图像尺寸N*N,则输出尺寸**(N-F)/Stride + 1**,当然必须为整数,不然说明卷积核尺寸有问题。

  • 神经元参数个数,即权重矩阵W的元素个数

假设A个F * F卷积核,输入图像RGB三通道,则参数个数为 F * F * 3 *A

  • 卷积层输出尺寸(0 padding)

((N-F)/Stride + 1) * ((N-F)/Stride + 1) * A

  • 卷积层输出尺寸(P padding)

((N-F+2P)/Stride + 1) * ((N-F+2P)/Stride + 1) * A
卷积层输出体积不考虑通道数,输出的深度是卷积核个数;但是神经元参数是把通道数考虑进去的

池化操作Pool Operation

池化操作是周期地在连接的池化层之间插入池化层,以渐进地(progressively)减少空间尺寸、参数数量、计算量,因此也控制了overfitting。

池化层不会改变通道数量,只会改变长和宽

4x4经过2x2最大池化层,(4-2)/2+1=2,则输出2x2
max operation指的是每个新的像素取filter区域的最大值
Layer Patterns

在这里插入图片描述

在这里插入图片描述

最后一个卷积层和第一个全连接层之间占据了整个net的大部分参数,参数个数为13x13x256x4096。因此,在conv5和fc6之间会加一个最大池化层,且最大化池化层为13x13, 这样conv5经过 13x13 池化层之后,输出1x1x256,然后再和全连接层fc6连接。 ——这叫全局池化层

fc6 fc7 fc8 就是普通的神经网络,fc6是输入层,fc7是隐含层,fc8是输出层。fc6可以认为是5个卷积层提取完卷积特征输出的结果。前面5个卷积层就是在做 特征提取feature extraction

如果卷积层做的特别好,那么全连接层可以换成SVM,效果也可以。

可以这么看,深度卷积神经网络前半部分在做卷积层的特征提取,后面在做分类器

Problem Analysis

当模型参数数量远远小于样本数量时,我们可能产生overfitting。

迁移学习 Transfer Learning

迁移学习,即微调fine-tune 预训练网络的权重Pretrained weights

当目标任务和源任务比较接近时,数据量比较小时。可以选择迁移学习。

比如我们原始训练的模型分1000类,现在分10类。迁移学习方式:

  1. 把最后一层换掉,训练最后一层
    在这里插入图片描述

  2. 往前推,训练最后两层
    在这里插入图片描述

  3. 往前推,训练最后三层

    n. 直至训练整个网络

Code
  1. 设置参数
  2. 建立网络,包括Pretrained weights,然后更改最后一层
  3. 数据扩增
  • 训练集会做数据扩增
  • 验证集一般不会做数据扩增,不然不知道结果的好坏是由参数的原因还是验证集的变化引起的。
  1. 网络训练
    包括样本数、轮次
Trick
  • Average Multiple Testing Results with a Single Model
    比如对一张测试图片输出结果是一头牛,那么将这张图片旋转后我们还是希望结果是一头牛。所以,测试多张变换后的图片,看看大多数的结果是哪个,把多次结果的平均作为最终结果。
  • 交叉验证
    把训练数据随机打乱,取一份作为测试集。
    比如下面训练5个模型,相当于有5个人帮你指认结果,更加准确。
    在这里插入图片描述
  • 用不同的训练参数。数据增强,初始化等等。
  • 可以结合Trick1和Trick2,既用数据扩增对一张验证图片做10次测试,也用交叉验证训练5个模型,那么就有50个结果。相当于有50个人帮你指认。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值