L06 深度学习(II)

卷积神经网络(Convolutional Neural Networks, CNNs)

全连接前馈神经网络vs卷积神经网络



  • 全连接前馈神经网络

    • 权重矩阵的参数非常多
  • 局部不变性特征

    • 自然图像中的物体都具有局部不变性特征
    • 尺度缩放、平移、旋转等操作不影响其语义信息。
    • 全连接前馈网络很难提取这些局部不变特征
  • 卷积神经网络(Convolutional Neural Networks,CNN)

    • 一种前馈神经网络
    • 受生物学上感受野(Receptive Field)的机制而提出的
      • 在视觉神经系统中,一个神经元的感受野是指视网膜上的特定区域,只有这个区域内的刺激才能够激活该神经元。
  • 卷积神经网络有三个结构上的特性:

    • 局部连接
    • 权重共享
    • 空间或时间上的次采样

卷积


  • 卷积经常用在信号处理中,用于计算信号的延迟累积。
  • 假设一个信号发生器每个时刻产生一个信号,其信息的衰减率为,即在个时间步长后,信息为原来的
    • 假设, ,
  • 时刻收到的信号为当前时刻产生的信息和以前时刻延迟信息的叠加

  • 滤波器(filter)或卷积核(convolution kernel)

给定一个输入信号序列和滤波器,卷积的输出为:

低频信息
高频信息

二阶微分

卷积扩展

步长(Stride) 是指卷积核在滑动时的时间间隔.图(a)给出了步长为2的卷积示例.

零填充(Zero Padding) 是在输入向量两端进行补零.图(b)给出了输入的两端各补一个零后的卷积示例.

卷积类型

  • 卷积的结果按输出长度不同可以分为三类:

    • 窄卷积:步长,两端不补零,卷积后输出长度为
    • 宽卷积:步长,两端补零,卷积后输出长度
    • 等宽卷积:步长,两端补零,卷积后输出长度
  • 早期的文献中,卷积一般默认为窄卷积

  • 目前的文献中,卷积一般默认为等宽卷积

二维卷积

  • 在图像处理中,图像是以二维矩阵的形式输入到神经网络中,因此我们需要二维卷积。
  • 一个输入信息和滤波器的二维卷积定义为:

卷积作为特征提取器

互相关

  • 算卷积需要进行卷积核翻转。
  • 卷积操作的目标:
    • 提取特征
    • 翻转是不必要的
  • 互相关

二维卷积的扩展

步长1,零填充0

步长2,零填充0

步长1,零填充1

步长2,零填充1

卷积神经网络 = 卷积层+汇聚层+全连接层

  • 卷积层代替全连接层

  • 卷积层的两个重要性质
    • 局部连接
    • 权重共享 ,

卷积层的典型结构

  • 输入特征映射组为三维张量,其中每个切片矩阵为一个输入特征映射,
  • 输出特征映射组为三维张量,其中每个切片矩阵为一个输出特征映射,
  • 卷积核为四维张量,其中每个切片矩阵为一个二维卷积核,

卷积层的映射关系

汇聚层



  • 卷积层虽然可以显著减少连接的个数,但是每一个特征映射的神经元个数并没有显著减少。

  • 汇聚层(Pooling Layer)也叫子采样层(Subsampling Layer),其作用是进行特征选择,降低特征数量,从而减少参数数量.

  • 常用的汇聚函数:

    • 最大汇聚(Maximum Pooling或Max Pooling):对于一个区域选择这个区域内所有神经元的最大活性值作为这个区域的表示

    • 平均汇聚(Mean Pooling):一般是取区域内所有神经元活性值的平均

卷积网络结构

  • 卷积网络是由卷积层、汇聚层、全连接层交叉堆叠而成。
    • 趋向于小卷积、大深度
    • 趋向于全卷积
  • 典型结构
    • 一个卷积块为连续个卷积层和个汇聚层(通常设置为)。一个卷积网络中可以堆叠个连续的卷积块,然后在接着个全连接层(的取值区间比较大,比如或者更大;一般为)。

其它卷积种类

  • 转置卷积(Transposed Convolution)/反卷积(Deconvolution)
    • 低维特征映射到高维特征
  • 微步卷积(Fractionally-Strided Convolution)
    • 低维特征映射到高维特征
  • 空洞卷积(Atrous Convolution)/膨胀卷积(Dilated Convolution)
    • 通过给卷积核插入“空洞”来变相地增加其大小。

典型的卷积网络:LeNet-5

  • LeNet-5 是一个非常成功的神经网络模型。
    • 基于 LeNet-5 的手写数字识别系统在 90 年代被美国很多银行使用,用来识别支票上面的手写数字。
    • LeNet-5 共有 7 层。

典型的卷积网络:AlexNet

  • 2012 ILSVRC winner
    (top 5 error of 16% compared to runner-up with 26% error)
    • 第一个现代深度卷积网络模型
    • 首次使用了很多现代深度卷积网络的一些技术方法
      • 使用GPU进行并行训练,采用了ReLU作为非线性激活函数,使用Dropout防止过拟合,使用数据增强
    • 5个卷积层、3个汇聚层和3个全连接层

典型的卷积网络:Inception网络(GoogLeNet)

  • 2014 ILSVRC winner (22层)
    • 参数:GoogLeNet:4M VS AlexNet:60M
    • 错误率:6.7%
    • Inception网络是由有多个inception模块和少量的汇聚层堆叠而成。

典型的卷积网络:Inception模块 v1

  • 在卷积网络中,如何设置卷积层的卷积核大小是一个十分关键的问题。
  • 在Inception网络中,一个卷积层包含多个不同大小的卷积操作,称为Inception模块。
  • Inception模块同时使用等不同大小的卷积核,并将得到的特征映射在深度上拼接(堆叠)起来作为输出特征映射。

典型的卷积网络:Inception模块 v3

  • 用多层小卷积核替换大卷积核,以减少计算量和参数量。
  • 使用两层3x3的卷积来替换v1中的的卷积
  • 使用连续的来替换的卷积。

典型的卷积网络:残差网络

  • 残差网络(Residual Network,ResNet)是通过给非线性的卷积层增加直连边的方式来提高信息的传播效率。
    • 假设在一个深度网络中,我们期望一个非线性单元(可以为一层或多层的卷积层)去逼近一个目标函数为
    • 将目标函数拆分成两部分:恒等函数和残差函数

  • 残差单元

典型的卷积网络:ResNet

  • 2015 ILSVRC winner (152层)
  • 错误率:3.57%

循环神经网络(Recurrent Neural Networks, RNNs)

前馈网络

  • 连接存在层与层之间,每层的节点之间是无连接的。(无循环)
  • 输入和输出的维数都是固定的,不能任意改变。无法处理变长的序列数据。
  • 假设每次输入都是独立的,也就是说每次网络的输出只依赖于当前的输入。


可计算问题

  • 有限状态自动机(Finite Automata)
  • 图灵机

给网络增加记忆能力:延时神经网络(Time Delay Neural Network,TDNN)

  • 建立一个额外的延时单元,用来存储网络的历史信息(可以包括输入、输出、隐状态等)


  • 这样,前馈网络就具有了短期记忆的能力。

给网络增加记忆能力:自回归模型(Autoregressive Model,AR)

  • 自回归模型:一类时间序列模型,用变量的历史信息来预测自己

    • 为第t个时刻的噪声
  • 有外部输入的非线性自回归模型(Nonlinear Autoregressive with Exogenous Inputs Model,NARX)

    • 其中表示非线性函数,可以是一个前馈网络,为超参数.

循环神经网络( Recurrent Neural Network ,RNN )

  • 循环神经网络通过使用带自反馈的神经元,能够处理任意长度的时序数据。

  • 循环神经网络比前馈神经网络更加符合生物神经网络的结构。
  • 循环神经网络已经被广泛应用在语音识别、语言模型以及自然语言生成等任务上
  • 作用:
    • 输入-输出映射:机器学习模型
    • 存储器:联想记忆模型

按时间展开

简单循环网络( Simple Recurrent Network , SRN )

  • 状态更新:

  • 一个完全连接的循环网络是任何非线性动力系统的近似器 。

图灵完备


  • 图灵完备(Turing Completeness)是指一种数据操作规则,比如一种计算机编程语言,可以实现图灵机的所有功能,解决所有的可计算问题。
  • 一个完全连接的循环神经网络可以近似解决所有的可计算问题。

参数学习

  • 机器学习
    • 给定一个训练样本,其中
      • 为长度是的输入序列,
      • 是长度为的标签序列。
  • 时刻t的瞬时损失函数为

  • 总损失函数

随时间反向传播算法






梯度消失/爆炸与长程依赖

  • 梯度

  • 其中

  • 长程依赖问题:由于梯度爆炸或消失问题,实际上只能学习到短周期的依赖关系。

  • 改进梯度爆炸问题

    • 权重衰减
    • 梯度截断
  • 改进梯度消失问题

    • 改进模型

长程依赖问题的改进方法

  • 循环边改为线性依赖关系

  • 增加非线性

长短期记忆神经网络(Long Short-Term Memory, LSTM )

LSTM的各种变体

  • 没有遗忘门

  • 耦合输入门和遗忘门

  • peephole连接

门控循环单元(Gated Recurrent Unit, GRU)

  • 重置门

  • 更新门

深层模型

堆叠循环神经网络

  • 将多个循环网络堆叠起来

双向循环神经网络

  • 增加一个按照时间的逆序来传递信息的网络层,来增强网络的能力.

循环网络应用

  • 传统统计机器翻译

    • 源语言:
    • 目标语言:
      • 模型:

      • : 翻译模型
      • : 语言模型
  • 基于序列到序列的机器翻译

    • 一个RNN用来编码
    • 另一个RNN用来解码
  • 看图说话