nndl-book摘录_第6章 循环神经网络

摘录自“神经网络与深度学习_邱锡鹏”

高亮颜色说明:突出重点
个人觉得,:待核准个人观点是否有误

*循环神经网络概述

  在前馈神经网络中,信息的传递是单向的,且网络的输出只依赖于当前的输入. 但是在很多现实任务中,网络的输出不仅和当前时刻的输入相关,也和其过去一段时间的输出相关.比如一个有限状态自动机,其下一个时刻的状态(输出)不仅仅和当前输入相关,也和当前状态(上一个时刻的输出)相关.
  此外,前馈网络难以处理时序数据,比如视频、语音、文本等.时序数据的长度一般是不固定的,而前馈神经网络要求输入和输出的维数都是固定的,不能任意改变.

给网络增加短期记忆能力

为了处理这些时序数据并利用其历史信息, 我们需要让网络具有短期记忆能力.而前馈网络是一种静态网络,不具备这种记忆能力.

延时神经网络(TDNN)

延时神经网络(Time Delay Neural Network, TDNN)

有外部输入的非线性自回归模型(NARX)

有外部输入的非线性自回归模型(Nonlinear AutoRegressive with Exogenous Inputs Model, NARX)

循环神经网络(RNN)

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

*简单循环网络

  循环神经网络经常使用非线性激活函数为 Logistic 函数或 Tanh 函数作为非线性激活函数。
6.2.1 循环神经网络的计算能力 --> 略
6.2.1.1 循环神经网络的通用近似定理 --> 略
6.2.1.2 图灵完备

*循环神经网络应用到机器学习

  循环神经网络可以应用到很多不同类型的机器学习任务.根据这些任务的特点可以分为以下几种模式:序列到类别模式同步的序列到序列模式异步的序列到序列模式

序列到类别模式

同步的序列到序列模式

异步的序列到序列模式

  个人觉得,编码器可采用 “序列到类别模式”的最终单个输出 y ^ \hat{y} y^,或者 只取“同步的序列到序列模式”最后时刻状态的输出 y ^ T \hat{y}_T y^T
  解码器通常采用自回归模型;

参数学习

随时间反向传播算法(BPTT)

随时间反向传播(BackPropagation Through Time, BPTT)

∂ L t ∂ U = ⋯ + h t − 3 ⋅ δ t , t − 2 + h t − 2 ⋅ δ t , t − 1 + h t − 1 ⋅ δ t , t \frac{\partial \mathcal{L_t}}{\partial \textbf{U}}=\cdots+h_{t-3}\cdot\delta_{t,t-2}+h_{t-2}\cdot\delta_{t,t-1}+h_{t-1}\cdot\delta_{t,t} ULt=+ht3δt,t2+ht2δt,t1+ht1δt,t
∂ L t − 1 ∂ U = ⋯ + h t − 3 ⋅ δ t − 1 , t − 2 + h t − 2 ⋅ δ t − 1 , t − 1 \frac{\partial \mathcal{L_{t-1}}}{\partial \textbf{U}}=\cdots+h_{t-3}\cdot\delta_{t-1,t-2}+h_{t-2}\cdot\delta_{t-1,t-1} ULt1=+ht3δt1,t2+ht2δt1,t1
∂ L t − 2 ∂ U = ⋯ + h t − 3 ⋅ δ t − 2 , t − 2 \frac{\partial \mathcal{L_{t-2}}}{\partial \textbf{U}}=\cdots+h_{t-3}\cdot\delta_{t-2,t-2} ULt2=+ht3δt2,t2
⋯ ⋯ \cdots\cdots

实时循环学习算法(RTRL)

实时循环学习(Real-Time Recurrent Learning, RTRL)

长程依赖问题

  梯度消失是循环网络的主要问题.

长程依赖问题的改进方案

*基于门控的循环神经网络

  为了改善循环神经网络的长程依赖问题, 一种非常好的解决方案是在公式(6.50)的基础上引入门控机制来控制信息的累积速度,包括有选择地加入新的信息,并有选择地遗忘之前累积的信息.这一类网络可以称为基于门控的循环神经网络(Gated RNN).本节中,主要介绍两种基于门控的循环神经网络:长短期记忆网络门控循环单元网络

长短期记忆网络(LSTM)

长短期记忆网络(Long Short-Term Memory Network, LSTM)
  新的内部状态 c t c_t ct + 门控机制(输入门 i t i_t it、遗忘门 f t f_t ft和输出门 o t o_t ot) + 图6.7
  LSTM 网络中的“门”是一种“软”门,取值在(0, 1) 之间,表示以一定的比例允许信息通过。Logistic 函数 σ ( ⋅ ) \sigma(\cdot) σ()的输出区间为(0, 1)。

  • 在简单循环网络中,公式(6.7)和公式(6.50),隐状态每个时刻都会被重写,因此可以看作一种短期记忆(Short-Term Memory).并且由于 h t h_t ht会不断累积存储每个时刻的信息,很容易发生饱和现象;
  • 在神经网络中,长期记忆(Long-Term Memory)可以看作网络参数,隐含了从训练数据中学到的经验,其更新周期要远远慢于短期记忆.
  • 而在LSTM 网络中,公式(6.51),记忆单元𝒄 可以在某个时刻捕捉到某个关键信息,并有能力将此关键信息保存一定的时间间隔,因此是一种较长的“短期记忆”.并且由于 c t c_t ct有选择地会不断累积存储关键时刻的信息,饱和现象有所缓解;

LSTM 网络的各种变体

  目前主流的LSTM 网络用三个门来动态地控制内部状态应该遗忘多少历史信息,输入多少新信息,以及输出多少信息.我们可以对门控机制进行改进并获得LSTM 网络的不同变体.

门控循环单元网络

门控循环单元(Gated Recurrent Unit, GRU)网络
  候选状态 h ^ t = g ( x t , h t − 1 ; θ ) \hat{h}_t=g(x_t,h_{t-1};\theta) h^t=g(xt,ht1;θ) + 门控机制(更新门 z t z_t zt、重置门 r t r_t rt) + 图6.8

  综上,GRU 网络中两个门的作用为:
(1)更新门 z t \bm{z_t} zt控制当前状态需要从历史状态 h t − 1 \bm{h_{t-1}} ht1中保留多少信息(不经过非线性变换),以及需要从候选状态 h ^ t = g ( x t , h t − 1 ; θ ) \bm{\hat{h}_t=g(x_t,h_{t-1};\theta)} h^t=g(xt,ht1;θ)中接受多少新信息.
(2)重置门 r t \bm{r_t} rt控制候选状态 h ^ t \bm{\hat{h}_t} h^t的计算是否依赖上一时刻的状态 h t − 1 \bm{h_{t-1}} ht1

深层循环神经网络

循环神经网络的深度

  循环神经网络的深度:时间维度上 按时间展开的路径长度, “空间维度上” 同一时刻网络输入到输出的路径长度;

堆叠循环神经网络(SRNN)

堆叠循环神经网络(Stacked Recurrent Neural Network, SRNN)

双向循环神经网络(Bi-RNN)

双向循环神经网络(Bidirectional Recurrent Neural Network, Bi-RNN)

扩展到图结构

递归神经网络(RecNN)

递归神经网络(Recursive Neural Network, RecNN)

图神经网络(GNN)

图神经网络(Graph Neural Network, GNN)

总结和深入阅读

Q: 引入注意力机制是如何解决简单循环网络的长短程依赖问题的?
A:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值