首页 > 其他分享 >LSTM和GRU

LSTM和GRU

时间:2024-03-27 23:33:23浏览次数:13  
标签:GRU text 记忆 LSTM 时刻 输入

概述

长短期记忆 LSTM(Long Short Term Memory),该类型的神经网络可以利用上输入数据的时序信息。对于需要处理与顺序或时间强相关数据的领域(自然语言处理、天气预测等)相当合适。

GRU(Gate Recurrent Unit)可以视为 LSTM 的简化版本。运算量更小,却能达到 LSTM 相当的性能。

介绍 LSTM 之前,要先了解什么是 RNN。

RNN

递归神经网络 RNN(Recurssion Neural Network),通过让网络能接收上一时刻的网络输出达成处理时序数据的目标。

通常来说,网络通过输入 \(x\) 可以得到输出 \(y\)。而 RNN 的思路是将 \(i-1\) 时刻的输出 \(y\) 视为 “状态” \(h^{i-1}\),用为 \(i\) 时刻的网络输入。

如此,网络的输入有两个:\(x^i\),和上一个时刻的输出 \(h^{i-1}\)。网络的输出仍为一个,并且可以作为下一个时刻的网络输入 \(h^i\)。

LSTM

RNN 有很多缺点(遗忘、梯度爆炸与梯度消失),现在更多使用 LSTM。

LSTM 引入了单元状态(cell state)的概念。网络的输入现在有 \(x\)、隐藏态(hidden state)\(h^{i-1}\)、单元状态 \(c^{i-1}\)。。

单元状态 \(c^{i}\) 变化很慢,通常是 \(c^{t-1}\) 的基础上加一些数值。而 \(h^i\) 对于不同节点有很大区别。

LSTM 具体细节

在 \(i\) 时刻,网络先将本次输入 \(x^t\) 和上一隐藏态 \(h^{i-1}\) 拼接,经由四个不同的矩阵(矩阵参数可学习)做乘法,获得用途各异的四个状态 \(z^f\)、\(z^i\)、\(z^o\) 和 \(z\)。

\[\begin{aligned} &z^f=\text{sigmoid}(W^f\cdot \text{concatenate}(x^t,h^{t-1}))\\ &z^i=\text{sigmoid}(W^i\cdot \text{concatenate}(x^t,h^{t-1}))\\ &z^o=\text{sigmoid}(W^o\cdot \text{concatenate}(x^t,h^{t-1}))\\ &z=\text{tanh}(W\cdot \text{concatenate}(x^t,h^{t-1})) \end{aligned} \]

一次运算的步骤如下:

  • 从 \(i-1\) 时刻传来的单元状态 \(c^{i-1}\) 首先与 \(z^f\) 相乘,用于代表记忆的遗忘(forget)

  • \(z^i\) 与 \(z\) 相乘,代表对记忆进行选择,哪些记忆需要记录(information)。上一步经过遗忘处理的 \(c^{i-1}\) 与需要记录的记忆进行加运算,完成记录。

此步完成后,\(c^{i-1}\) 化身为 \(c^{i}\) 作为下一步的单元状态输入

  • 最后用 \(z^o\) 控制输出(output)。\(z^o\) 与上一步的 \(c^{i-1}\) 的 \(\text{tanh}\) 结果相乘,获得本时刻的输出 \(y^i\),并作为下一步的隐藏态输入 \(h^t\)

GRU

GRU 可以实现与 LSTM 相当的性能,且运算量更低。

GRU 具体细节

GRU 没有单元状态 \(c^{i}\)。网络接收两个输入:当前输入 \(x^i\)、上一隐藏状态 \(h^{i-1}\)。两个输入经过两个不同的矩阵(矩阵参数可学习)做乘法,获得两个门控(gate):

\[\begin{aligned} &r=\text{sigmoid}(W^r\cdot \text{concatenate}(x^t,h^{t-1}))\\ &z=\text{sigmoid}(W^z\cdot \text{concatenate}(x^t,h^{t-1})) \end{aligned} \]

\(r\) 为重置门控(reset gate),\(z\) 为更新门控(update gate)。

一次运算的步骤如下:

  • 从 \(i-1\) 时刻传来隐藏状态 \(h^{i-1}\) 与 \(r\) 相乘,获得 \({h^{i-1}}'\)。这一步代表有选择性地保留记忆(遗忘)
  • \({h^{t-1}}'\) 与输入 \(x^i\) 拼接,再乘一个参数可学习的矩阵,取 \(\text{tanh}\) 获得 \(h'\)。这一步让 \(h'\) 记忆了当前时刻的状态(记录)
  • 用 \((1-z)\) 乘上 \(h^{i-1}\),用 \(z\) 乘上 \(h'\),将两者的和视为当前的隐藏状态 \(h^i\)。可见 \(h^i\) 结合了以前的记忆与现在的状态,代表记忆的更新

现在,将 \(h^i\) 视为下一时刻的输入,即完成了一次运算。

参考来源

标签:GRU,text,记忆,LSTM,时刻,输入
From: https://www.cnblogs.com/chirp/p/18100567

相关文章

  • 基于GA优化的CNN-GRU-Attention的时间序列回归预测matlab仿真
    1.算法运行效果图预览优化前:   优化后:   2.算法运行软件版本matlab2022a 3.算法理论概述      时间序列预测是许多领域中的核心问题,如金融市场分析、气候预测、交通流量预测等。近年来,深度学习在时间序列分析上取得了显著的成果,尤其是卷积神经网络......
  • 基于word2vec+LSTM模型实现百度贴吧恶意评论预测
        大家好,我是带我去滑雪!    Word2Vec模型能够将词语映射到高维空间中的向量表示,同时保留了词语之间的语义信息和上下文关系。这使得模型能够更好地理解评论中的语境和含义。LSTM模型是一种适用于处理序列数据的深度学习模型,能够有效处理文本数据中的变长序列......
  • EI级!高创新原创未发表!VMD-TCN-BiGRU-MATT变分模态分解卷积神经网络双向门控循环单元融
    EI级!高创新原创未发表!VMD-TCN-BiGRU-MATT变分模态分解卷积神经网络双向门控循环单元融合多头注意力机制多变量时间序列预测(Matlab)目录EI级!高创新原创未发表!VMD-TCN-BiGRU-MATT变分模态分解卷积神经网络双向门控循环单元融合多头注意力机制多变量时间序列预测(Matlab)预测......
  • 【故障诊断】基于卷积神经网络结合长短时记忆CNN-LSTM实现数据分类含Matlab源码
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • Look_back参数在LSTM中的作用
    在使用python划分数据集时,一个参数look_back引起了我的注意,现在终于明白了他的作用。他就是进行预测时认为这个输入数据与前面多少个输入有关,这个前面的数据个数就是look_back参数值的大小,例如有一段序列数据“dcefabcdabceaa”,当look_back=4时,表示结合输入与之前的四个输......
  • 深度学习面经-part3(RNN、LSTM)
    3.RNN核心思想:像人一样拥有记忆能力。用以往的记忆和当前的输入,生成输出。RNN和传统神经网络最大的区别:在于每次都会将前一次的输出结果,带到下一次的隐藏层中,一起训练。RNN应用场景:1.文本生成2.语音识别3.机器翻译4.生成图像描述5.视频标记缺点:       ......
  • WOA-GRU多输入回归预测 | 鲸鱼优化算法-门控循环单元神经网络 | Matlab
    目录一、程序及算法内容介绍:基本内容:亮点与优势: 二、实际运行效果: 三、部分程序:四、完整程序下载:一、程序及算法内容介绍:基本内容:本代码基于Matlab平台编译,将WOA(鲸鱼群算法)与GRU(门控循环单元神经网络)结合,进行多输入数据回归预测输入训练的数据包含7个特征,1个......
  • Python实现BOA蝴蝶优化算法优化循环神经网络分类模型(LSTM分类算法)项目实战
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。1.项目背景蝴蝶优化算法(butterflyoptimizationalgorithm,BOA)是Arora等人于2019年提出的一种元启发式智能算法。该算法受到了蝴蝶觅食和交配行为的启发,......
  • Python实现BOA蝴蝶优化算法优化循环神经网络回归模型(LSTM回归算法)项目实战
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。1.项目背景蝴蝶优化算法(butterflyoptimizationalgorithm,BOA)是Arora等人于2019年提出的一种元启发式智能算法。该算法受到了蝴蝶觅食和交配行为的启发,......
  • Self-Attention相比较RNN和LSTM的优缺点
    2024.3.13Self-AttentionSelf-Attention相比较RNN和LSTM的优缺点RNN基本单元结构无法做长序列,当一段话达到50个字,效果就很差了复杂度为n的平方$X_0$往后面越传播,信息越少(如你爷爷的爷爷的爷爷的名字)LSTM基本结构LSTM通过各种门,遗忘门,选择性的可以记忆之前的信息(200词)Se......