深度学习面试-RNN、LSTM、seq2seq,预训练模型

680 阅读2分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。​​ ​

1、如何解决RNN梯度爆炸和消失的问题?

梯度爆炸:当梯度大于一定阈值时,将它截断为一个较小的数。

梯度消失:激活函数选择Relu函数。

2、RNN的经典结构?

1对1:输入和输出一致,

1对多:有1对N或N对1,1对N的场景有负荷分解,图像生成文字,类别生成语音或音乐等,N对1针对于序列分类。

多对多:有N对N或N对M,N对N的场景有语音处理,时间序列,N对M的场景是机器翻译,文本摘要,阅读理解等,常见模型是encoder-decoder模型。

3、为什么LSTM模型中既存在sigmoid又存在tanh两种激活函数,而不是选择统一一种sigmoid或者tanh?这样做的目的是什么?

sigmoid函数被用作各个门上,产生0~1之间的值,来判断是对信息进行记住还是遗忘。

tanh用在了状态和输出上,是对数据的处理,可以替换成其他激活函数。

4、LSTM为什么能保留长期记忆?

LSTM的第一步是决定我们会从细胞状态中丢弃什么信息。这个通过遗忘门进行判断,具体结构如图:

下一步是确定什么样的新信息被保存在细胞状态C中,包含两个部分:sigmoid决定什么值我们将要更新,一个tanh层创建一个新的候选值向量,并加入到状态中。

更新细胞状态,即(C_{t-1}\rightarrow C_{t}​):

最后,我们需要确定输出的值,这个输出会基于细胞状态。

5、GRU和LSTM的区别?

GRU是Gated Recurrent Units,是循环神经网络的一种。

GRU只有两个门(update和reset),LSTM有三个门(input,output,forget),GRU直接将hidden state传给下一单元,LSTM通过记忆单元将hidden state包装起来。