RNN:面试常见RNN知识点整理
RNN知识点整理
Naive RNN
原生 RNN 单元对输入的数据进行简单的线性变换与激活。
对第 t 个时间的单元有:
- 2 个输入:
、
- 2 个输出:
、
计算过程
优缺点
优点:计算过程简单
缺点:简单地使用加法进行状态的叠加,存在长期依赖问题
长期依赖问题
对于比较长的数据序列,第
项的输出依赖于前
项,这意味着对第
项:
- 反向传播时,其相关的参数会累积前
次的梯度,容易导致梯度爆炸或梯度消失。
LSTM
通过使用门控机制(Gate mechanism)对原生 RNN 进行了改进,提高了学习能力。
每对第 个时间的单元有:
- 3 个输入
、
、
- 3 个输出
、
、
计算过程
首先,通过向量连接、线性变换和激活,计算基于输入特征
和上一步
hidden state
的门控(
gate
)与候选状态(candidate state
):其中:
- 门控使用
sigmoid
作为激活函数,用于将值域限制在之间使得其更好地发挥门控的选择作用。
- 门控使用
然后,通过门控机制、线性变换和激活,计算当前时间步的
hidden state
、
cell state
以及 输出
:
其中:
- 遗忘门
和输入门
分别控制了从上一个时间步的
cell state
以及当前时间步的候选状态
分别保留的多少特征,得到
;
- 输出门
控制如何从
cell state
得到
hidden state
,并使用
进行非线性的激活(缩放);
- 最后通过线性变换得到当前时间步的输出
。
- 遗忘门
优缺点
优点:通过 与
连接并计算所得到的门控,丰富了当相邻时间步之间状态关联与传递的方式,门控机制所使用的不是简单的线性变换再相加,从而解决了 Naive RNN 所面临的长期依赖问题,提高了针对序列数据的学习能力。
References
GRU
进一步优化了 LSTM 中的门控和状态计算,拥有相似的计算效果以及更小的计算开销。
第 个时间步的输入输出分别为:
- 2 个输入:
、
- 1 个输出:
计算过程
首先,计算
重置门
、
更新门
:
其中:
- 相比于 LSTM,GRU 只需要计算两个门控
然后,使用门控进行计算:
其中:
- 先通过线性变换、重置门
和
激活,“重置”从上一个时间步传递过来的隐藏状态,得到候选状态
;
- 再通过更新门
同时控制“遗忘”和“记忆”得到
。
- 先通过线性变换、重置门
优缺点
优点:相比于 LSTM 少计算一个门控和状态,有着更小的计算开销以及与 LSTM 类似的性能。
References
其他 RNN 变体
略
总结
- Naive RNN 存在梯度问题,在序列较长时容易导致梯度消失和梯度爆炸;
- 门控机制的引入提高了 RNN 模型的学习能力,降低了内部的长期依赖从而避免了梯度问题。
从0开始的算法工程师 文章被收录于专栏
从0开始的算法工程师,力求严谨、细节、全面。 除基础的模型和知识点外,会尽可能包含更多的应用方向,也是自己学习过程的记录。 抛瓦!(垃圾箱探头.jpg)