面试高频-RNN系列
笔记整理
常见问题:
- RNN结构、计算公式、思想; 激活函数, 存在问题; 发展
- LSTM、GRU 结构、公式、思想; 激活函数, 解决了什么问题? 依然存在哪些问题? 发展
LSTM 扫盲:长短期记忆网络解读及其 PyTorch 应用实现
自己
RNN、GRU、LSTM结构、公式整理;
各自对应优点整理;
padding、边长处理
梯度消失、梯度爆炸相关
RNN梯度消失与梯度爆炸的原因
Pytorch等实现
- 最基础最基础的一个,一定要首先理解。
百面机器学习-RNN相关问题
问题一、处理文本数据时,循环神经网络与前馈神经网络相比有什么特点?
问题二、RNN为什么会出现梯度消失或梯度爆炸?有哪些改进方案?
梯度消失(Gradient Vanishing)问题,即在梯度的反向传播过程中,后层的
梯度以连乘方式叠加到前层。由于当时神经网络中的激活函数一般都使用Sigmoid
函数,而它具有饱和特性,在输入达到一定值的情况下,输出就不会发生明显变
化了。而后层梯度本来就比较小,误差梯度反传到前层时几乎会衰减为0,因此无
法对前层的参数进行有效的学习,
循环神经网络模型的求解可以采用BPTT(Back Propagation Through Time,基
于时间的反向传播)算法实现,BPTT实际上是反向传播算法的简单变种。如果将
循环神经网络按时间展开成T层的前馈神经网络来理解,就和普通的反向传播算法
没有什么区别了。循环神经网络的设计初衷之一就是能够捕获长距离输入之间的
依赖。从结构上来看,循环神经网络也理应能够做到这一点。然而实践发现,使
用BPTT算法学习的循环神经网络并不能成功捕捉到长距离的依赖关系,这一现象
主要源于深度神经网络中的梯度消失。传统的循环神经网络梯度可以表示成连乘
的形式
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200711172815599.png
问题三、在RNN中能否使用ReLU作为激活函数?
问题四、LSTM是如何实现长短期记忆功能的?
知识点: LSTM,门控,激活函数,双曲正切函数,Sigmoid函数
问题五、LSTM里各模块分别使用什么激活函数,可以使用别的激活函数吗?
问题六、什么是Seq2Seq模型?Seq2Seq模型有哪些优点?
问题七、Seq2Seq模型在解码时,有哪些常用的办法?。
问题八、Seq2Seq注意力解决什么问题?为什么用双向LSTM?
其他
RNN 中为什么要采用 tanh,而不是 ReLU 作为激活函数?
人人都能看懂的LSTM