《吴恩达深度学习》04卷积神经网络(第2周深度卷积网络:实例探究)

04.卷积神经网络

第2周 深度卷积网络:实例探究

2.1 为什么要进行实例探究?

  1. 概述
    (1)经典网络
    LeNet-5
    AlexNet
    VGG
    (2)ResNet
    (3)Inception

2.2 经典网络

  1. LeNet-5
    (1)针对灰度图像。
    (2)输入: 32 × 32 × 1 32\times 32 \times 1 32×32×1
    (3)Conv1: f = 5 , s = 1 f=5, s=1 f=5,s=1,6个过滤器,输出 28 × 28 × 6 28\times 28\times 6 28×28×6
    (4)Pool1: f = 2 , s = 2 f=2, s=2 f=2,s=2,一般采用平均池化,输出 14 × 14 × 6 14\times 14 \times 6 14×14×6
    (5)Conv2: f = 5 , s = 1 f=5, s=1 f=5,s=1,16个过滤器,输出 10 × 10 × 16 10\times 10\times 16 10×10×16
    (6)Pool2: f = 2 , s = 2 f=2, s=2 f=2,s=2,一般采用平均池化,输出 5 × 5 × 16 5\times 5 \times 16 5×5×16
    (7)FC3: 120 120 120
    (8)FC4: 84 84 84
    在这里插入图片描述
    (10)论文:LeCun et al. 1998. Gradient-based learning applied to document recognition。
  2. AlexNet
    (1)输入: 227 × 227 × 3 227\times227\times 3 227×227×3
    (2)Conv1: f = 11 , s = 4 f=11, s=4 f=11,s=4,96个过滤器,输出KaTeX parse error: Undefined control sequence: \5 at position 9: 55\times\̲5̲5\times96
    (3)Pool1: f = 3 , s = 2 f=3, s=2 f=3,s=2,采用最大池化法。
    (4)Conv2: f = 5 f=5 f=5,256个过滤器,采用相同卷积法,输出 27 × 27 × 256 27\times27\times256 27×27×256
    (5)Pool2: f = 3 , s = 2 f=3,s=2 f=3,s=2,采用最大池化法,输出 13 × 13 × 256 13\times13\times256 13×13×256
    (6)Conv3: f = 3 f=3 f=3,采用相同卷积法,输出 13 × 13 × 384 13\times13\times384 13×13×384
    在这里插入图片描述
    (7)论文:Krizhevsky et al. 2012. ImageNet: classification with deep convolutional neural networks。
  3. VGG-16
    (1)Conv= 3 × 3 3\times3 3×3过滤器, s = 1 s=1 s=1,相同卷积
    (2)MAX-POOL= 2 × 2 , s = 2 2\times2,s=2 2×2,s=2
    (3) [ C O N V 64 ] × 2 [CONV 64]\times2 [CONV64]×2表示有两层卷积层,每层有64个卷积过滤器
    在这里插入图片描述
    (4)论文:Simonyan & Zisserman 2015. Very deep convolutional networks for large-scale image recognition。
  4. 论文阅读顺序建议:首先阅读AlexNet论文,然后是VGG论文,最后是LeNet。

2.3 残差网络

  1. 残差模块
    (1)示意图
    在这里插入图片描述
    (2)主路径
    z [ l + 1 ] = W [ l + 1 ] a [ l ] + b [ l + 1 ] z^{[l+1]}=W^{[l+1]}a^{[l]}+b^{[l+1]} z[l+1]=W[l+1]a[l]+b[l+1]
    a [ l + 1 ] = g ( z [ l + 1 ] ) a^{[l+1]}=g(z^{[l+1]}) a[l+1]=g(z[l+1])
    z [ l + 2 ] = W [ l + 2 ] a [ l + 1 ] + b [ l + 2 ] z^{[l+2]}=W^{[l+2]}a^{[l+1]}+b^{[l+2]} z[l+2]=W[l+2]a[l+1]+b[l+2]
    a [ l + 2 ] = g ( z [ l + 2 ] ) a^{[l+2]}=g(z^{[l+2]}) a[l+2]=g(z[l+2])
    (3)在主路径的基础上,对 a [ l ] a^{[l]} a[l]增加捷径(也称为跳远连接),直接输入到深层中,形成残差。即在主路径中的第四行公式改为:
    a [ l + 2 ] = g ( z [ l + 2 ] + a [ l ] ) a^{[l+2]}=g(z^{[l+2]}+a^{[l]}) a[l+2]=g(z[l+2]+a[l])
  2. 残差网络
    在这里插入图片描述
  3. 残差网络的作用:尽管理论上,随着深度神经网络层数的增加,对训练集的拟合误差应减少,但是实际上在下降到一定程度后,误差反而会上升,如下图所示:
    在这里插入图片描述
    而残差网络不会出现这样的问题,其示意图如下所示:
    在这里插入图片描述

2.4 残差网络为什么有用?

  1. 残差网络为什么起作用?
  2. ResNet
    在这里插入图片描述

2.5 网络中的网络以及 1 × 1 1\times1 1×1卷积

  1. 1 × 1 1 \times 1 1×1为什么起作用?
    Lin et al. 2013. Network in network。
  2. 应用 1 × 1 1 \times 1 1×1卷积
    在这里插入图片描述
  3. 作用:根据需要,保持或压缩通道数量。

2.6 谷歌Inception网络简介

  1. Inception网络的动机
    (1)代替人工确定过滤器的规模,或确定是否要使用卷积层、池化层。
    (2)不同条件下卷积、池化示意图
    在这里插入图片描述
    (3)输入: 28 × 28 × 192 28\times28\times192 28×28×192
    (4)输出: 28 × 28 × 256 28\times28\times256 28×28×256
    (5)存在问题:计算成本
  2. 以上一张图中 5 × 5 5\times5 5×5卷积叙述计算成本问题
    (1)卷积示意图
    在这里插入图片描述
    (2)每个输出值需要计算 5 × 5 × 192 5\times5\times192 5×5×192次乘法,共 28 × 28 × 32 28\times28\times32 28×28×32个输出值,因此共需要进行乘法计算 28 × 28 × 32 × 5 × 5 × 192 = 120 M 28\times28\times32\times5\times5\times192=120M 28×28×32×5×5×192=120M。计算成本过高。
    (3)解决方法:上一节中学到的 1 × 1 1\times1 1×1网络。
  3. 使用 1 × 1 1\times1 1×1网络
    (1)网络结构示意图
    在这里插入图片描述
    (2)中间层有时被称为瓶颈层(bottleneck layer)
    (3)计算成本分析:
    a. 输入到瓶颈层, 28 × 28 × 16 × 192 = 2.4 M 28\times28\times16\times192=2.4M 28×28×16×192=2.4M
    b. 瓶颈层到输出层, 28 × 28 × 32 × 5 × 5 × 16 = 10.0 M 28\times28\times32\times5\times5\times16=10.0M 28×28×32×5×5×16=10.0M

2.7 Inception网络

  1. Inception模块
    (1)基本架构
    在这里插入图片描述
  2. Inception网络
    在这里插入图片描述
    除Inception模块外,还增加了部分全连接层和softmax,防止网络过拟合。

2.8 使用开源的实现方案

  1. 充分使用Github等开源网站

2.9 迁移学习

  1. 迁移学习
    (1)问题假设:检测猫是否是tigger或mity或两者都不是。
    (2)下载ImageNet的相关网络及权重,然后删除最后的softmax层,增加新的softmax层。
    (3)仅需训练softmax层的参数(新数据集较小时),或训练softmax层及部分其它隐藏层(新数据集较大时,要训练的隐藏层应在后面),或将原始权重作为初始化然后全部网络进行训练(新数据集充分大时)。

2.10 数据扩充

  1. 常见扩充方法
    (1)镜像操作
    在这里插入图片描述
    (2)随机剪裁
    在这里插入图片描述
    (3)旋转操作(不常用)
    (4)扭曲(不常用)
    (5)局部扭曲(不常用)
  2. 颜色变换
    通常基于某种分布对RGB通道进行变换。
    在这里插入图片描述
  3. 训练中实现变形
    在这里插入图片描述

2.11 计算机视觉现状

  1. 数据VS手工
    (1)当数据量越大时,人们往往更倾向于更简单的算法,更少的手工设计。
  2. 在基准测试集和竞赛中的建议
    (1)嵌入
    独立地训练若干神经网络,然后将输出平均
    (2)测试时采用Multi-crop
    测试时,在图片的多个版本中运行分类器并平均结果。10-crop举例如下:
    在这里插入图片描述
  3. 使用开源代码
    (1)使用文献中的网络结构。
    (2)使用开源实现。
    (3)使用预训练模型在数据集上调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值