首页 > 其他分享 >RNN循环神经网络&LSTM长短期记忆网络&GRU

RNN循环神经网络&LSTM长短期记忆网络&GRU

时间:2024-02-27 21:38:07浏览次数:16  
标签:GRU RNN 神经网络 LSTM 时刻 sigma

个人学习使用,内容来源于网络,侵权删

1. 基本原理

传统网络的结构:

RNN的结构:

使用场景:

  • 语音识别,要按顺序处理每一帧的声音信息,有些结果需要根据上下文进行识别;

  • 自然语言处理,要依次读取各个单词,识别某段文字的语义

这些场景都有一个特点,就是都与时间序列有关,且输入的序列数据长度是不固定的。
这就需要有一种能力更强的模型:该模型具有一定的记忆能力,能够按时序依次处理任意长度的信息。这个模型就是循环神经网络(RNN)。

2. RNN模型展开

\(W\)不变,是每个时间点之间的权重矩阵,RNN之所以可以解决序列问题,是因为它可以记住每一时刻的信息,每一时刻的隐藏层不仅由该时刻的输入层决定,还由上一时刻的隐藏层决定,公式如下,其中\(O_t\)代表t时刻的输出, \(S_t\)代表t时刻的隐藏层的值:

\[O_t=g(V\cdot S_t) \]

\[S_t=f(U\cdot X_t+W\cdot S_{t-1}) \]

以上式子忽略了偏置项,\(f,g\)为激活函数。\(S_t\)的值不仅仅取决于\(X_t\)还取决于\(S_{t-1}\),在整个训练过程中,每一时刻所用的都是同样的\(W\)。

3. LSTM模型
LSTM是RNN的变种,RNN每一个处理单元如下,

而LSTM则是如下,

LSTM计算过程如下,

其中,

\[Z=tanh(W[x_t,h_{t-1}]) \]

\[Z^i=\sigma(W_i[x_t,h_{t-1}]) \]

\[Z^f=\sigma(W_f[x_t,h_{t-1}]) \]

\[Z^o=\sigma(W_o[x_t,h_{t-1}]) \]

以上同样忽略了偏置项。

总体过程如上,\(i_t,f_t,o_t\)分别对应\(Z^i,Z^f,Z^o\),如上图所示,LSTM提供门控机制,这三个参数为三个门通过\(\sigma\)激活函数映射到\(0\sim1\)之间,然后决定之前内容\(C_{t-1}\)与如今内容\(\widetilde C_t\)之间的比例,以此达到长期记忆的目的。

4. GRU模型

GRU输入输出的结构与普通的RNN相似,其中的内部思想与LSTM相似。

与LSTM相比,GRU内部少了一个”门控“,参数比LSTM少,但是却也能够达到与LSTM相当的功能。考虑到硬件的计算能力和时间成本,因而很多时候我们也就会选择更加”实用“的GRU。

参考来源:
大话循环神经网络
史上最详细循环神经网络讲解
Understanding LSTM Networks
深度学习知识点全面总结
人人都能看懂的GRU

标签:GRU,RNN,神经网络,LSTM,时刻,sigma
From: https://www.cnblogs.com/cqut-zhoutao/p/18034449

相关文章

  • 双向RNN计算实现
    个人学习使用,内容来源于网络,侵权删双向RNN如下,做两遍计算:第一遍先正向计算隐状态h,保存成一个序列,顺序是t时刻从1到T。第二遍,将输入反转,计算隐状态h,保存为一个序列,这样顺序就是t时刻从T到1.最后在计算output,这样在计算output时,所有时刻的隐状态都是已经计算出来了。参考来源......
  • Mamba详细介绍和RNN、Transformer的架构可视化对比
    Transformer体系结构已经成为大型语言模型(llm)成功的主要组成部分。为了进一步改进llm,人们正在研发可能优于Transformer体系结构的新体系结构。其中一种方法是Mamba(一种状态空间模型)。Mamba:Linear-TimeSequenceModelingwithSelectiveStateSpaces一文中提出了Mamba,我们......
  • LSTM使用MNIST手写数字识别实战的代码和心得
    RNN的架构除了RNN类中的模型不同,其他的构架与CNN类似,如果还没有阅读过CNN文章的可以点击下方链接进入:CNN使用MNIST手写数字识别实战的代码和心得LSTM(LongShort-TermMemory长短时记忆网络)虽然在MNIST手写数字识别方面不擅长,但是也可以进行使用,效果比CNN略显逊色对LSTM使用......
  • LSTM 策略应用在量化交易领域的一点猜想
      LSTM(LongShortTermMemory),对于NLP(自然语言处理)和连续拍照的处理时,有额外的优势.在交易领域,最多的是应用于预判未来走势.  在自然语言处理时,将语句分为一个个单词,并预判下一个词汇.   同理:在K线图中,最简单的模式是以OHLCV,即一个Bar被当作一......
  • 每日笔记-LSTM
    今天,搞了一段代码,但没有达到应有的效果importtorchimporttorch.nnasnnimportnumpyasnp#设置随机种子以便结果可重复torch.manual_seed(42)#定义一个更复杂的LSTM模型classComplexLSTMModel(nn.Module):def__init__(self,input_size,hidden_size,ou......
  • 【Python】基于动态残差学习的堆叠式LSTM模型和传统BP在股票预测中的应用
    1.前言本论文探讨了长短时记忆网络(LSTM)和反向传播神经网络(BP)在股票价格预测中的应用。首先,我们介绍了LSTM和BP在时间序列预测中的基本原理和应用背景。通过对比分析两者的优缺点,我们选择了LSTM作为基础模型,因其能够有效处理时间序列数据中的长期依赖关系,在基础LSTM模型的基础上,......
  • 【AutoML】AutoKeras 进行 RNN 循环神经网络训练
    由于最近这些天都在人工审查之前的哪些问答数据,所以迟迟都没有更新AutoKeras的训练结果。现在那部分数据都已经整理好了,20w+的数据最后能够使用的高质量数据只剩下2k+。这2k+的数据已经经过数据校验并且对部分问题的提问方式和答案内容进行了不改变原意的重构,相信用这部分数......
  • 如何基于 spdlog 在编译期提供类 logrus 的日志接口
    如何基于spdlog在编译期提供类logrus的日志接口实现见Github,代码简单,只有一个头文件。前提几年前看到戈君在知乎上的一篇文章,关于打印日志的一些经验总结;实践下来很受用,在golang里结构化日志和logrus非常契合,最常见的使用方式如下。logrus.WithField("addr","127.0......
  • 基于BiLSTM-CRF模型的分词、词性标注、信息抽取任务的详解,侧重模型推导细化以及LAC分
    基于BiLSTM-CRF模型的分词、词性标注、信息抽取任务的详解,侧重模型推导细化以及LAC分词实践1.GRU简介GRU(GateRecurrentUnit)门控循环单元,是[循环神经网络](RNN)的变种种,与LSTM类似通过门控单元解决RNN中不能长期记忆和反向传播中的梯度等问题。与LSTM相比,GRU内部的网络架......
  • 更改linux默认启动内核版本,修改 GRUB 设置
    简介:在本文中,我们将讨论如何在GRUB引导加载器中更改默认启动的Linux内核版本。这对于在多个内核版本间切换非常有用。已在Ubuntu上验证可用。告别直接修改/boot/grub/grub.cfg的土办法。查看目前linux上面的内核版本#方法一ls/boot/vmlinuz-*#方法二:cat/boot/grub/......