当前位置:   article > 正文

【NLP面试】简述RNN、LSTM、NLP_mlp,rnn,cnn,lstm介绍

mlp,rnn,cnn,lstm介绍

1.RNN:处理序列数据

循环神经网络是一类以序列数据为输入,在序列的演进方向进行递归,且所有节点(循环单元)按链式连接形成闭合回路递归神经网络

RNN的独特价值: 它能有效的处理序列数据。因为序列中,前面的输入也会影响到后面的输出。RNN相当于有了记忆功能

缺点: 严重的短期记忆问题,长期的数据影响很小(哪怕是重要的信息)。越晚的输入影响越大,越早的输入影响越小。

变种算法LSTM和GRU等的特点:

  • 长期信息可以有效的保留
  • 挑选重要信息保留,不重要的信息会选择“遗忘”

1.1.为什么需要RNN?

 CNN和普通的算法大都是输入和输出的一一对应,也就是一个输入得到一个输出不同的输入之间是没有联系的

序列数据:一串相互依赖的数据流。(考虑词序)

 对于序列数据,因为要考虑词之间的依赖性、顺序,则一个输入就不够了。因此,需要RNN。

1.2.基本原理

RNN跟传统神经网络最大的区别:将前一次的输出结果,带到下一次的隐藏层中,一起训练
在这里插入图片描述
 下图中,输入 “time” 的时候,前面 “what” 的输出也产生了影响(隐藏层中有一半是黑色的)。以此类推,前面所有的输入都对未来的输出产生了影响,大家可以看到圆形隐藏层中包含了前面所有的颜色。当我们判断意图的时候,只需要最后一层的输出。

1.3.缺点

1.3.1.短期记忆、训练成本大

 根据上图的最后一个hidden layer(下图):短期的记忆影响较大(如橙色区域),但是长期的记忆影响就很小(如黑色和绿色区域),这就是RNN存在的短期记忆问题。
 RNN有短期记忆问题,无法处理很长的输入序列。而且训练RNN需要投入极大的成本。
越晚的输入影响越大,越早的输入影响越小。
在这里插入图片描述

1.3.2.梯度消失/爆炸

BPTT:Back propogation through time

求导过程的链太长
 太长的求导链在以tanh为激活函数(其导数值在0~1之间)的BPTT中,连乘就会使得最终的求导为0,导致梯度消失。因此,t时刻已经学习不到t-N时刻的参数了
解决方法: LSTM、设计更好的初始参数、更换激活函数ReLU等。

1.4.LSTM:RNN的优化算法

长短期记忆(LSTM) 单位是递归神经网络的单位。由LSTM单元组成的RNN常简称为LSTM。
 公共LSTM单元由单元、输入门、输出门和忘记门组成。该单元记住任意时间间隔内的值,并且三个门控制进出单元的信息流

1.4.1.与RNN相比

  • 保留较长序列数据中的重要信息,忽略不重要的信息,解决了RNN短期记忆的问题
  • 处理了在训练传统RNN时,可能遇到的梯度爆炸和消失的问题。
    在这里插入图片描述
  • 所有递归神经网络都具有神经网络的链式重复模块
    在标准的RNN中,这个重复模块具有非常简单的结构,例如只有单个tanh层。
    LSTM的链式结构重复模块:不是一个单独的神经网络层,而是4个非常特殊的方式进行交互的层。而且多了一个控制长时记忆的Cell state(细胞状态)
    在这里插入图片描述
    在这里插入图片描述

1.4.2.核心步骤(前向计算过程)

该小节的图中:

  • 最上面 C t C_t Ct线的状态代表了长时记忆
  • 最下面的
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/116467
推荐阅读
相关标签
  

闽ICP备14008679号