首页 > 其他分享 >机器学习——长短期记忆网络(LSTM)

机器学习——长短期记忆网络(LSTM)

时间:2023-11-14 15:22:51浏览次数:38  
标签:长短期 网络 num 记忆 LSTM 门控 单元

长期以来,隐变量模型存在着长期信息保存和短期输入缺失的问题。 解决这一问题的最早方法之一是长短期存储器(long short-term memory,LSTM)(Hochreiter and Schmidhuber, 1997)。 它有许多与门控循环单元( 9.1节)一样的属性。 有趣的是,长短期记忆网络的设计比门控循环单元稍微复杂一些, 却比门控循环单元早诞生了近20年。

门控记忆元

可以说,长短期记忆网络的设计灵感来自于计算机的逻辑门。 长短期记忆网络引入了记忆元(memory cell),或简称为单元(cell)。 有些文献认为记忆元是隐状态的一种特殊类型, 它们与隐状态具有相同的形状,其设计目的是用于记录附加的信息。 为了控制记忆元,我们需要许多门。 其中一个门用来从单元中输出条目,我们将其称为输出门(output gate)。 另外一个门用来决定何时将数据读入单元,我们将其称为输入门(input gate)。 我们还需要一种机制来重置单元的内容,由遗忘门(forget gate)来管理, 这种设计的动机与门控循环单元相同, 能够通过专用机制决定什么时候记忆或忽略隐状态中的输入。 让我们看看这在实践中是如何运作的。

 

输入门、忘记门和输出门

 

候选记忆元

 

 

 

记忆元

 

 

隐状态

 

简洁实现

 

使用高级API,我们可以直接实例化LSTM模型。 高级API封装了前文介绍的所有配置细节。 这段代码的运行速度要快得多, 因为它使用的是编译好的运算符而不是Python来处理之前阐述的许多细节。

import torch
from torch import nn
from d2l import torch as d2l

batch_size, num_steps = 32, 35
train_iter, vocab = d2l.load_data_time_machine(batch_size, num_steps)
num_inputs = vocab_size
lstm_layer = nn.LSTM(num_inputs, num_hiddens)
model = d2l.RNNModel(lstm_layer, len(vocab))
model = model.to(device)
d2l.train_ch8(model, train_iter, vocab, lr, num_epochs, device)

长短期记忆网络是典型的具有重要状态控制的隐变量自回归模型。 多年来已经提出了其许多变体,例如,多层、残差连接、不同类型的正则化。 然而,由于序列的长距离依赖性,训练长短期记忆网络 和其他序列模型(例如门控循环单元)的成本是相当高的。 在后面的内容中,我们将讲述更高级的替代模型,如Transformer。

 

 

总结

 

  • 长短期记忆网络有三种类型的门:输入门、遗忘门和输出门。

  • 长短期记忆网络的隐藏层输出包括“隐状态”和“记忆元”。只有隐状态会传递到输出层,而记忆元完全属于内部信息。

  • 长短期记忆网络可以缓解梯度消失和梯度爆炸。

 

标签:长短期,网络,num,记忆,LSTM,门控,单元
From: https://www.cnblogs.com/yccy/p/17831690.html

相关文章

  • 数据结构与算法 | 记忆化搜索(Memorize Search)
    在本系列的文章中已经写了二叉树(BinaryTree)、深搜(DFS)与广搜(BFS)、哈希表(HashTable)等等,计划接下来要写的是动态规划(DynamicProgramming,DP),它算得上是最灵活的一种算法。回忆笔者学习动态规划的时候,最开始接触的是经典的“01背包”问题;不过现在想起来,以“01背包问题”作为初次......
  • 第 117 场双周赛(容斥原理,记忆化搜索,排序)
     本题我们采用隔板法+容斥原理来解决合格总方案数=总方案书-不合理的方案数=不考虑limit的方案数-不合法方案数(至少有一个小朋友>limit)任意方案数n个小球放到3个盒子中->n+2个位置,选两个位置放隔板剩下位置放球c(n+2,2)三个小朋友为:甲乙丙小朋友甲(乙丙)>l......
  • 背包问题的记忆化搜索写法
     #include<iostream>#include<cstdio>#include<cstring>#include<algorithm>usingnamespacestd;constintN=1010;intn,m;intv[N],w[N];intf[1010][1010];intdfs(intcuru,intcurv){if(f[curu][curv]>0)retur......
  • 将记忆镌刻进唱片
    月光让遗忘的都记起黑暗里只剩自己的呼吸散落的尘埃又随风而起飘过来又荡过去——《愿长夜里有人陪你说话》前天下午在网易云上搜了突然想起来的《愿长夜里有人陪你说话》,发现鹿先森乐队的歌在网易云上都被下架了,于是很失落。这首歌对于我的意义究竟是什么?或许是每当脑海......
  • 【2023-10-24】无穷记忆
    20:00荷尽已无擎雨盖,菊残犹有傲霜枝。一年好景君须记,最是橙黄橘绿时。                                                 ——宋·苏轼《赠刘景文》新办公室园区紧贴着......
  • 循环神经网络 —— LSTM 有状态模型(stateful LSTM)和无状态模型(stateless LSTM)
    相关参考:训练后的LSTM模型在进行预测时的初始h_n和c_n是什么或应该怎么设置?   Keras中对RNN网络的statefull和stateless设置:链接:https://keras.io/zh/getting-started/faq/#how-can-i-use-stateful-rnns   =============================================== ......
  • [RC-03] 记忆
    prologue今天模拟赛T3,一道很好的题目。analysis对于这个题目我们可以通过对操作的手玩,得出一个结论。记\(ans\)为当前所有的合法子串数量,记\(tmp\)为当前以最后以一个括号结尾的子串个数。可以推出来前两个操作分别的转移式子:\[ans\getsans+tmp+1,p\getsp+1......
  • 设计模式(Design Pattern)记忆
    创建型记忆口诀:创公园,但见愁创工原,单建抽创建型工厂方法FactoryMethod原型Prototype单例Singleton建造者Builder抽象工厂AbstractFactory结构型记忆口口诀:姐想外祖,世代装桥结享外组,适代装桥结构型:享元Flyweight外观Facade组合Composite适配器Adapter装饰Decorat......
  • GJO-LSTM-Adaboost基于金豺算法优化长短期记忆神经网络LSTM的Adaboost分类预测
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • GJO-BILSTM-Adaboost基于金豺算法优化双向长短期记忆神经网络BILSTM的Adaboost分类预
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......