NLP总结

最近大创和项目需要把之前学过的知识点总结一下

RNN

循环神经网络和LSTM参考July哥的这篇博客,写的非常通俗易懂
RNN和LSTM

首先看单层神经网络
在这里插入图片描述
f为激活函数

但是我们做文本一般用到的是序列数据

在这里插入图片描述
x1可以看做是第一个单词,x2可以看做是第二个单词,依次类推。

我们将RNN展开后的结构
在这里插入图片描述
在这里插入图片描述
得到输出值的方法就是直接通过h进行计算:
在这里插入图片描述在这里插入图片描述
这就是最经典的RNN结构,是x1, x2, …xn,输出为y1, y2, …yn,也就是说,输入和输出序列必须要是等长的。

循环神经网络其实可以看成是链式的(注:输出之前由y表示,从此处起,改为隐层输出h表示):
在这里插入图片描述
RNN的局限(引入LSTM的优势):

长期依赖(Long-TermDependencies)问题:在这个间隔不断增大时,RNN会丧失学习到连接如此远的信息的能力,从两个方面考虑:

  • 梯度消失
    获得小梯度更新的层会停止学习—— 那些通常是较早的层。 由于这些层不学习,RNN 可以忘记它在较长序列中看到的内容,因此具有短时记忆。
  • 梯度爆炸
    计算的难度越来越复杂导致。

LSTM

LSTM通过刻意的设计来避免长期依赖问题。记住长期的信息在实践中是LSTM的默认行为,而非需要付出很大代价才能获得的能力!

所有RNN都具有一种重复神经网络模块的链式的形式。在标准的RNN中,这个重复的模块只有一个非常简单的结构,例如一个tanh层(激活函数 Tanh 作用在于帮助调节流经网络的值,使得数值始终限制在 -1 和 1 之间)。
在这里插入图片描述
LSTM同样是这样的结构,但是重复的模块拥有一个不同的结构。具体来说,RNN是重复单一的神经网络层,LSTM中的重复模块则包含四个交互的层,三个Sigmoid 和一个tanh层,并以一种非常特殊的方式进行交互。

且RNN权值共享而LSTM权值不共享
在这里插入图片描述
上图中,σ表示的Sigmoid 激活函数与 tanh 函数类似,不同之处在于 sigmoid 是把值压缩到0~1 之间而不是 -1~1 之间。这样的设置有助于更新或忘记信息:

  • 因为任何数乘以 0 都得 0,这部分信息就会剔除掉;
  • 同样的,任何数乘以 1 都得到它本身,这部分信息就会完美地保存下来。

LSTM由这次的输入、上一次的输出、当前状态决定下一次的状态和输出
在这里插入图片描述
状态C经过两次变化,第一次为遗忘第二次为更新

LSTM的三个门

  1. 遗忘门
    在这里插入图片描述
    这部分通过上一次的输出和输入决定哪些维度需要被遗忘(sigmoid输出为0的维度被遗忘,为1被保留),然后与上一次的状态相乘就完成了遗忘的操作

  2. 输入门

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值