【NLP面试】简述RNN、LSTM、NLP

本文深入探讨RNN、LSTM在处理序列数据中的应用,包括RNN的基本原理、缺点,以及LSTM如何解决RNN的短期记忆问题。此外,还介绍了LSTM的前向计算、反向传播过程及变体。最后,简要概述了NLP的核心任务和应用。
摘要由CSDN通过智能技术生成

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线的状态代表了长时记忆
  • 最下面的 h t h_t ht线代表了工作记忆或短时记忆

门结构:用来控制增加或删除信息的程度,一般由 sigmoid函数(值域 (0,1))和向量点乘来实现。
LSTM共包含3个门结构(遗忘门、输入门、隐藏门),来控制细胞状态和隐藏状态。
在这里插入图片描述

  1. 遗忘门:确定什么样的信息要被丢弃。
    决定上一时刻细胞状态 C t − 1 C_{t−1} C
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值