本文约800字,建议阅读4分钟
本文为你总结RNN模型结构的优缺点。
神经网络是深度学习的载体,而神经网络模型中,最经典非RNN模型所属,尽管它不完美,但它具有学习历史信息的能力。后面不管是encode-decode 框架,还是注意力模型,以及自注意力模型,以及更加强大的Bert模型家族,都是站在RNN的肩上,不断演化、变强的。
这篇文章,阐述了RNN的方方面面,包括模型结构,优缺点,RNN模型的几种应用,RNN常使用的激活函数,RNN的缺陷,以及GRU,LSTM是如何试图解决这些问题,RNN变体等。这篇文章最大特点是图解版本,其次语言简练,总结全面。概述
传统RNN的体系结构。Recurrent neural networks,也称为RNNs,是一类允许先前的输出用作输入,同时具有隐藏状态的神经网络。它们通常如下所示:对于每一时间步t,激活函数输出被表达为:
这里是时间维度网络的共享权重系数,是激活函数。RNN模型主要应用于自然语言处理和语音识别领域。下表总结了不同的应用:对于RNN网络,所有时间步的损失函数L是根据每个时间步的损失定义的,如下所示:
在每个时间点进行反向传播。在时间T,损失L相对于权重矩阵W的偏导数表示如下:
处理长短依赖
在RNN中经常遇到梯度消失和爆炸现象。之所以会发生这种情况,是因为很难捕捉到长期的依赖关系,因为乘法梯度可以随着层的数量呈指数递减/递增。梯度修剪是一种技术,用于执行反向传播时,有时遇到的梯度爆炸问题。通过限制梯度的最大值,这种现象在实践中得以控制。为了解决消失梯度问题,在某些类型的RNN中使用特定的门,并且通常有明确的目的。它们通常标注为,等于:其中,W,U,b是特定于门的系数,是sigmoid函数。主要内容总结如下表:Gated Recurrent Unit(GRU)和长-短期记忆单元(LSTM)处理传统RNNs遇到的消失梯度问题,LSTM是GRU的推广。下表总结了每种结构的特征方程:
https://stanford.edu/~shervine/teaching/cs-230/cheatsheet-recurrent-neural-networks