循环神经网络(RNN) LSTM与GRU

本文深入探讨了循环神经网络(RNN)及其在时间序列分析中的应用,特别是在自然语言处理领域的表现。同时,详细解释了长短期记忆网络(LSTM)如何解决RNN中的梯度消失问题,以及GRU作为简化版LSTM的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RNN简介

RNN是两种神经网络模型的缩写,一种是递归神经网络(Recursive Neural Network),一种是循环神经网络(Recurrent Neural Network)。虽然这两种神经网络有着千丝万缕的联系,但是本文主要讨论的是第二种神经网络模型——循环神经网络(Recurrent Neural Network)。
循环神经网络是指一个随着时间的推移,重复发生的结构。在自然语言处理(NLP),语音图像等多个领域均有非常广泛的应用。RNN网络和其他网络最大的不同就在于RNN能够实现某种“记忆功能”,是进行时间序列分析时最好的选择。如同人类能够凭借自己过往的记忆更好地认识这个世界一样。RNN也实现了类似于人脑的这一机制,对所处理过的信息留存有一定的记忆,而不像其他类型的神经网络并不能对处理过的信息留存记忆。

RNN结构图

rnn结构图
每个cell变为时序的
在这里插入图片描述
“门结构(gate)”,分为遗忘门,输入门和输出门。

遗忘门

在这里插入图片描述
可以看到公式里面的[h, x],这里表示将这一时刻的输入x[t],和上一时刻t-1的输出h[t-1]做一个concat,然后经过sigmoid函数。
因为sigmoid输出是0和1(大部分),这里面0和1与后面做乘法的时候,等于相应的让一些信息变成了0,就等于是忘记了一些信息。这里其实一个开关,控制信息的通过。

输入门

公式中[h,x]还是做的concat操作。
在这里插入图片描述
之前两步的操作就是为了更新细胞的状态,更新知识体系。包括让细胞忘记一些东西,然后给细胞补充新知识。
这里另外说一点,为什么lstm可以解决RNN中梯度弥散/消失的问题。
因为C[t]是又两个结果相加得到,求导时会保留更新梯度。
在这里插入图片描述

输出门


最后一个输出,也有一个信息筛选的操作,其实可以这么说,在lstm中sigmoid函数的作用基本就是筛选信息。比如我们可能需要单复数信息来确定输出“他”还是“他们”。
在这里插入图片描述

GRU

:
在这里插入图片描述
这里和lstm不同的是:
将遗忘门和输入门合成了一个单一的重置门(reset gate),也就是说多大程度上擦除以前的状态state,另外细胞更新操作变为更新门(update gete),它的作用是多大程度上要用candidate 来更新当前的hidden layer
同样还混合了细胞状态和隐藏状态
比标准LSTM简单
如果r[t] = 1,z[t] = 1,那么gru和普通rnn的cell就是一样的。
对比lstm和gru
因为gru参数更少,所以gru训练起来比lstm更简单。
但是,这两种cell最后的结果差不了太多!用的时候不必纠结选择哪种结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值