高亮颜色说明:突出重点
个人觉得,:待核准个人观点是否有误
文章目录
*循环神经网络概述
在前馈神经网络中,信息的传递是单向的,且网络的输出只依赖于当前的输入. 但是在很多现实任务中,网络的输出不仅和当前时刻的输入相关,也和其过去一段时间的输出相关.比如一个有限状态自动机,其下一个时刻的状态(输出)不仅仅和当前输入相关,也和当前状态(上一个时刻的输出)相关.
此外,前馈网络难以处理时序数据,比如视频、语音、文本等.时序数据的长度一般是不固定的,而前馈神经网络要求输入和输出的维数都是固定的,不能任意改变.
给网络增加短期记忆能力
为了处理这些时序数据并利用其历史信息, 我们需要让网络具有短期记忆能力.而前馈网络是一种静态网络,不具备这种记忆能力.
延时神经网络(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}
∂U∂Lt=⋯+ht−3⋅δt,t−2+ht−2⋅δt,t−1+ht−1⋅δ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}
∂U∂Lt−1=⋯+ht−3⋅δt−1,t−2+ht−2⋅δt−1,t−1
∂
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}
∂U∂Lt−2=⋯+ht−3⋅δt−2,t−2
⋯
⋯
\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,ht−1;θ) + 门控机制(更新门
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}}
ht−1中保留多少信息(不经过非线性变换),以及需要从候选状态
h
^
t
=
g
(
x
t
,
h
t
−
1
;
θ
)
\bm{\hat{h}_t=g(x_t,h_{t-1};\theta)}
h^t=g(xt,ht−1;θ)中接受多少新信息.
(2)重置门
r
t
\bm{r_t}
rt控制候选状态
h
^
t
\bm{\hat{h}_t}
h^t的计算是否依赖上一时刻的状态
h
t
−
1
\bm{h_{t-1}}
ht−1.
深层循环神经网络
循环神经网络的深度
循环神经网络的深度:时间维度上 按时间展开的路径长度, “空间维度上” 同一时刻网络输入到输出的路径长度;
堆叠循环神经网络(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: