长短时期记忆(LSTM)及门控循环单元(GRU)网络结构

2023-10-12 08:59

本文主要是介绍长短时期记忆(LSTM)及门控循环单元(GRU)网络结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、背景

1、RNN自身可以通过不停的将信息循环操作,保证信息持续存在,从而可以利用前面得事件信息来对后面得事件进行分类操作。
2、RNN处理这类任务时不一定就可以完全得理解之前的记忆,因为在语句过长得情况下,之前的文本内容在传到后期时已经不再具有那么的信息。
(1)在‘the clouds are in the sky’中,如果最后进行预测,则我们可以大概率的将sky进行预测出来。
(2)若在一个复杂的任务中‘I grew up in France… I speak fluent French.’如果在这句话中我们要进行最后一个单词French的预测就比较麻烦,因为我们最后一个单词离France比较远。
3、在RNN中若要解决2的(2)这类问题则需要通过调参的操作来进行解决。

二、LSTM网络

1、标准的RNN与LSTM网络的对比
(1)在RNN中每个重复的模块仅具有比较简单的一个网络结构
在这里插入图片描述

(2)在LSTM中,它与RNN具有类似的这种链式结构,区别于RNN的地方在于,它的内部具有四个复杂的网络层。
在这里插入图片描述

以下为LSTM中各类符号的定义图
在这里插入图片描述
图中黄色类似于CNN里的激活函数操作,粉色圆圈表示点操作,单箭头表示数据流向,箭头合并表示向量的合并(concat)操作,箭头分叉表示向量的拷贝操作。

2、简述LSTM的核心内容
我们可以把LSTM的核心理解为一个细胞状态,用贯穿细胞的水平线进行表示。这个细胞状态和一个传送带类似,它虽然贯穿整个细胞,却仅有很少的分支出现,只有这样才能保证信息可以不变的流过整个循环神经网络(RNN)。

在这里插入图片描述

然而,在LSTM的网络中,我们可以通过一种被称为门的结构,对细胞状态中的信息进行删除或者添加信息。
这些门可以选择性的决定让细胞状态中的哪些信息通过;门的结构也很简单,在LSTM的内部,门的结构为一个sigmoid层和一个点乘操作的组合。
在这里插入图片描述

由于sigmoid层的输出值是在0到1之间,这代表着有多少的信息可以流过sigmoid层。通常0表示都不能通过,而1表示都能通过。
通常在一个LSTM中包含三个门来控制细胞状态

3、一个一个门的打开LSTM(遗忘门、输入门、输出门)
(1)遗忘门
LSTM的第一件事情是需要决定我们的细胞状态需要丢弃哪些信息。所以我们通过遗忘门来进行这项操作,这个遗忘门是通过sigmoid的单元来进行处理操作的。它通过查看 h t − 1 h_{t-1} ht1 x t x_t xt中的信息来输出一个0-1之间的向量,该向量里面的0-1值可以表示细胞状态 C t − 1 C_{t-1} Ct1中的哪些信息保留或丢弃多少。0表示不保留,1表示保留。遗忘门的结构如下图。

在这里插入图片描述 f t = σ ( W f ∗ [ h t − 1 , x t ] + b f ) f_t = \sigma(W_f*[h_{t-1},x_t]+b_f) ft=σ(Wf[ht1,xt]+bf)

(2)输入门
通过输入门,我们可以决定为当前的细胞状态添加哪些新的信息。这一步分为两个子步骤,第一步,我们得利用 h t − 1 h_{t-1} ht1 x t x_t xt通过一个称为输入门的操作来决定更新哪些信息。第二步,利用 h t − 1 h_{t-1} ht1 x t x_t xt通过一个tanh层得到新的候选细胞信息 C T ′ C'_T CT

这篇关于长短时期记忆(LSTM)及门控循环单元(GRU)网络结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/194770

相关文章

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu 4517 floyd+记忆化搜索

题意: 有n(100)个景点,m(1000)条路,时间限制为t(300),起点s,终点e。 访问每个景点需要时间cost_i,每个景点的访问价值为value_i。 点与点之间行走需要花费的时间为g[ i ] [ j ] 。注意点间可能有多条边。 走到一个点时可以选择访问或者不访问,并且当前点的访问价值应该严格大于前一个访问的点。 现在求,从起点出发,到达终点,在时间限制内,能得到的最大

poj3750约瑟夫环,循环队列

Description 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。 Input 第一行输入小孩的人数N(N<=64) 接下来每行输入一个小孩的名字(人名不超过15个字符) 最后一行输入W,S (W < N),用

从希腊神话到好莱坞大片,人工智能的七大历史时期值得铭记

本文选自historyextra,机器之心编译出品,参与成员:Angulia、小樱、柒柒、孟婷 你可能听过「技术奇点」,即本世纪某个阶段将出现超级智能,那时,技术将会以人类难以想象的速度飞速发展。同样,黑洞也是一个奇点,在其上任何物理定律都不适用;因此,技术奇点也是超越未来理解范围的一点。 然而,在我们到达那个奇点之前(假设我们能到达),还存在另一个极大的不连续问题,我将它称之

校验码:奇偶校验,CRC循环冗余校验,海明校验码

文章目录 奇偶校验码CRC循环冗余校验码海明校验码 奇偶校验码 码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据检验码的码距。 奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。 奇校验:整个校验码中1的个数为奇数 偶校验:整个校验码中1的个数为偶数 奇偶校验,可检测1位(奇数位)的错误,不可纠错。

react笔记 8-17 属性绑定 class绑定 引入图片 循环遍历

1、绑定属性 constructor(){super()this.state={name:"张三",title:'我是一个title'}}render() {return (<div><div>aaaaaaa{this.state.name}<div title={this.state.title}>我是一个title</div></div></div>)} 绑定属性直接使用花括号{}   注

Spring是如何解决循环依赖?

现象解释: 在Spring框架中,循环依赖(Circular Dependency)是指两个或多个Bean之间相互依赖,形成了一个循环。例如,Bean A依赖于Bean B,而Bean B又依赖于Bean A。Spring通过多种机制解决循环依赖问题,具体来说,主要有以下几种方式: 1.三级缓存机制 Spring容器在实例化Bean时使用了三级缓存来解决循环依赖,主要涉及三个缓存结构: 一级

JS中【记忆函数】内容详解与应用

在 JavaScript 中,记忆函数(Memoization)是一种优化技术,旨在通过存储函数的调用结果,避免重复计算以提高性能。它非常适用于纯函数(同样的输入总是产生同样的输出),特别是在需要大量重复计算的场景中。为了彻底理解 JavaScript 中的记忆函数,本文将从其原理、实现方式、应用场景及优化方法等多个方面详细讨论。 一、记忆函数的基本原理 记忆化是一种缓存策略,主要用于函数式编

FPGA开发:条件语句 × 循环语句

条件语句 if_else语句 if_else语句,用来判断是否满足所给定的条件,根据判断的结果(真或假)决定执行给出的两种操作之一。 if(表达式)语句; 例如: if(a>b) out1=int1; if(表达式)         语句1; else         语句2; 例如: if(a>b)out1=int1;elseout1=int2; if(表达式1) 语句1; els

记忆化搜索【下】

375. 猜数字大小II 题目分析 题目链接:375. 猜数字大小 II - 力扣(LeetCode) 题目比较长,大致意思就是给一个数,比如说10,定的数字是7,让我们在[1, 10]这个区间猜。 如果猜大或猜小都会说明是大了还是小了,此外,我们还需要支付猜错数字对应的现金。 现在就是让我们定制一个猜测策略,确保准备最少的钱能猜对 如果采用二分查找,只能确保最小次数,题目要求的