RNN介绍
认识RNN
RNN(Recurrent Neural Network),即"循环神经网络",是在基础神经网络模型中增加了循环机制。具体的表现形式为网络会对前面的信息进行记忆并应用于当前的计算中,即当前时刻利用了上一时刻的信息,这便是“循环”的含义。
RNN的应用领域
- 语音识别
- OCR识别(optical character recognition)
- 机器翻译
- 文本分类
- 视频动作识别
- 序列标注
常见的RNN模型
实时效果反馈
1. 关于RNN,下列说法正确的是:
A 属于CNN的一种
B RNN添加了“循环”机制,即当前时刻利用了上一时刻的信息
C RNN的每个时刻是相互独立的
D 以上说法均不正确
2. 关于RNN的模型,不包括:
A Simple RNN
B LSTM
C BERT
D Alex
答案
1=>B 2=>D
LSTM
认识LSTM
LSTM是Long-Short Term Memory的缩写,中文名叫长短期记忆网络,它是RNN的改进版本。为了更好地解决“梯度爆炸”和“梯度消失”的问题,让RNN具备更强、更好的记忆,于是就出现了LSTM。
LSTM的“门结构”
LSTM的关键就是记忆细胞(在最上面的贯穿水平线上)。记忆细胞提供了记忆的功能,使得记忆信息在网络各层之间很容易保持下去。
- 遗忘门(Forget Gate)
遗忘门的作用是控制t-1时刻到t时刻时允许多少信息进入t时刻的门控设备
遗忘门的计算公式如下:
Γ
t
f
=
σ
(
w
f
[
a
t
−
1
,
x
t
]
+
b
f
)
\Large \Gamma_t^f=\sigma(w_f[a_{t-1},x_t]+b_f)
Γtf=σ(wf[at−1,xt]+bf)
其中,xt是当前时刻的输入,at-1是上一时刻隐状态的值
- 输入门(Input Gate)
输入门的作用是确定需要将多少信息存入记忆细胞中。除了计算输入门外,还需要使用tanh计算记忆细胞的候选值c't
Γ
t
i
=
σ
(
w
i
[
a
t
−
1
,
x
t
]
+
b
i
)
c
t
′
=
t
a
n
h
(
w
c
[
a
t
−
1
,
x
t
]
+
b
c
)
\Large \Gamma_t^i=\sigma(w_i[a_{t-1},x_t]+b_i) \\ \Large c'_t = tanh(w_c[a_{t-1},x_t]+b_c)
Γti=σ(wi[at−1,xt]+bi)ct′=tanh(wc[at−1,xt]+bc)
然后,就可以对当前时刻的记忆细胞进行更新了
c
t
=
Γ
t
f
c
t
−
1
+
Γ
t
i
c
t
′
\Large c_t=\Gamma_t^fc_{t-1}+\Gamma_t^ic'_t
ct=Γtfct−1+Γtict′
- 输出门(Output Gate)
输出门是用来控制t时刻状态值对外多少是可见的门控设备
输出门与t时刻隐层节点输出值得公式为:
Γ
t
o
=
σ
(
w
o
[
a
t
−
1
,
x
t
]
+
b
o
)
a
t
=
Γ
t
o
t
a
n
h
(
c
t
)
\Large \Gamma_t^o=\sigma(w_o[a_{t-1},x_t]+b_o) \\ \Large a_t=\Gamma_t^otanh(c_t)
Γto=σ(wo[at−1,xt]+bo)at=Γtotanh(ct)
实时效果反馈
1. 关于LSTM,下列说法正确的是:
A 属于CNN的一种
B LSTM比RNN的结构更简单
C LSTM是RNN的改进版本,可以更好地解决“梯度爆炸”和“梯度消失”问题
D 以上说法均不正确
2. 关于LSTM的门结构,下列说法正确的是:
A 遗忘门的作用是确定需要将多少信息存入记忆细胞中
B 输入门的作用是控制t-1时刻到t时刻时允许多少信息进入t时刻的门控设备
C 输出门是用来控制t时刻状态值对外多少是可见的门控设备
D 以上说法均不正确
答案
1=>C 2=>C
Seq2Seq模型
Seq2Seq表现形式
在RNN的结构中,最常见的就是不等长的多对多结构,即输入、输出虽然都是多个,但是并不相等。这种不等长的多对多结构就是Seq2Seq(序列对序列)模型。
例如,汉译英的机器翻译时,输入的汉语句子和输出的英文句子很多时候并不是等长的,这时就可以用Seq2Seq模型了。
Encoder+Decoder
Seq2Seq由一个编码器(Encoder)和一个解码器(Decoder)构成,编码器先将输入序列转化为一个上下文向量C(理解序列),然后再用一个解码器将C转化为最终输出(生成序列)。
- 编码器(Encoder)
20230724024159.png?origin_url=imgs%5Cimage-20220707152117775.png&pos_id=img-1wlDgNPp-1718784998688)
- 解码器(Decoder)
实时效果反馈
1. 关于Seq2Seq的表现形式,下列说法正确的是:
A 是不等长的多对多结构
B 是一对多结构
C 是一对一结构
D 是等长的多对多结构
2. 关于Seq2Seq的编码器和解码器,下列说法正确的是:
A 编码器将输入序列转化为多个向量
B 编码器负责生成序列
C 解码器将编码器生成的上下文向量C转化为最终输出
D 以上说法均不正确
答案
1=>A 2=>C
Attention模型
home.csdnimg.cn/images/20230724024159.png?origin_url=imgs%5Cimage-20220707155142894.png&pos_id=img-4VZwHuXT-1718784998699)
引入Attention模型的必要性
Seq2Seq作为一种通用的编码-解码结构,在编码器将输入编码成上下文向量C后,在解码时每一个输出Y都会不加区分地使用这个C进行解码,这样并不能有效地聚焦到输入目标上。
Seq2Seq+Attention模型
Seq2Seq引入Attention模型后,Attention模型(注意力模型)通过描述解码中某一时间步的状态值和所有编码中状态值的关联程度(即权重),计算出对当前输出更友好的上下文向量,从而对输入信息进行有选择性的学习。
y 1 = f ( C 1 ) y 2 = f ( C 2 , y 1 ) y 3 = f ( C 3 , y 1 , y 2 ) . . . \Large y_1=f(C_1) \\ \Large y_2=f(C_2,y_1) \\ \Large y_3=f(C_3,y_1,y_2) \\ ... y1=f(C1)y2=f(C2,y1)y3=f(C3,y1,y2)...
实时效果反馈
1. 关于Attention模型,下列说法正确的是:
A 只编码出一种上下文向量
B 对各个输出值使用同一个上下文向量
C 对输入信息进行无差别学习
D 描述当前输出和所有输入元素的关联程度,计算出针对当前输出的上下文向量
2. 关于Seq2Seq+Attention模型,下列说法正确的是:
A 与只使用Seq2Seq模型没有区别
B Seq2Seq引入Attention模型后,可以计算出针对当前输出更友好的上下文向量
C 没有Seq2Seq的效果好
D 以上说法均不正确
答案
1=>D 2=>B