首页 > 其他分享 >LSTM计算分析

LSTM计算分析

时间:2024-07-10 14:43:27浏览次数:15  
标签:分析 300 Xt 计算 LSTM 100 输入 遗忘

 

 

普通的RNN,中间循环的就是一个tanh激活函数

 

LSTM也具有这种链式结构,但重复模块具有不同的结构。有四个神经网络层,它们以一种非常特殊的方式相互作用,而不是只有一个单独的神经网络层。

LSTM (Long Short-Term Memory)也称长短时记忆结构,它是传统RNN的变体,与经典RNN相比能够有效捕捉长序列之间的语义关联缓解梯度消失或爆炸现象.

核心结构可以分为四个部分:

  • 遗忘门 (forget gate),它决定了上一时刻的单元状态ct-1有多少保留到当前时刻;
  • 输入门 (input gate),它决定了当前时刻网络的输入c’t有多少保存到新的单元状态ct中。
  • 细胞状态  
  • 输出门 (output gate),它利用当前时刻单元状态cn对hn的输出进行控制。

 

 

 

遗忘门就是控制LSTM的长时记忆部分,把以前的记忆和现在发生的事情做一次融合,记住重要的信息,忘记不重要的信息。

 

上面也提到了短时记忆就是把上一步的输出h(t-1)和当前输入Xt做一次拼接 [Xt,h(t-1)],有了拼接的输入信息后,我们就做一次全连接层FC,然后对结果做sigmod激活处理,最后与长时记忆C(t-1) 做一次乘积

从上面的描述不难看出,参数就在全连接产生的参数 Wf 和 bf,这样说吧,整个LSTM的参数是由4个全连接层产生的

输入也就是词向量为200维,每个token用一个200的向量表示 即 X

输出ht为100维的向量, 则 [Xt,h(t-1)]=300维向量,即1×300

则 Wf 为 300 × 100的矩阵 Wf ·  [Xt,h(t-1)] = 1 ×300 · 300 ×100 = 1 × 100  然后进行向量的sigmoid。也就是上次来的细胞状态遗忘分数

 

输入门:当前的信息是不是重要的,如果重要的,就多记住一些,如果是不重要的就少记住一些

输入们和我们的理解东西也类似,这里引入了一个细胞状态的概念C'(t),就是有多少信息保存到细胞状态中,输入的和遗忘门的信息和输出们都一样,都是把上一步的输出h(t-1)和当前输入Xt做一次拼接 [Xt,h(t-1)],然后做一次全连接,所不同的是细胞状态的激活函数是tanh。其他的都是sigmod.

输入门还有另外一块输入信息i(t),这一部分就是拼接后的输入信息做一次全连接,然后经过sigmod激活函数  本次细胞状态记忆的分数

根据上面遗忘门的计算

 i(t)   C'(t)   的结构也是 1 × 100

 

长时记忆 C(t)

  • 经过了遗忘门和输入门后,长时记忆C(t)就可以计算出来了,计算比较简单,就是把遗忘门和输入门的结果做一次加法
我们用公式说明就是:  注意不是矩阵乘,是对应位置乘

C(t) = ft*Ct-1 + it * C`t

对位置乘,不是矩阵乘 

Ct = 1 × 100 * 1 × 100 +  1 × 100 * 1 × 100 =  1 × 100 + 1 × 100 = 1 × 100

 

输出门

ot 也是 1 × 100

Ct经过tanh后也是  1 × 100

ht 为两者的对应位置乘

即 ht = 1 × 100 * 1 × 100 = 1 × 100

计算完成后进行下一个字的计算

 

参考资料: 

Understanding LSTM Networks -- colah's blog

理解 LSTM 网络 - Alan Lee

LSTM单元结构及参数计算 - 知乎 (zhihu.com)

 

标签:分析,300,Xt,计算,LSTM,100,输入,遗忘
From: https://www.cnblogs.com/q-zl/p/18293939

相关文章

  • CB利用链分析
    分析版本CommonsBeanutils1.9.4JDK8u65参考Shiro反序列化漏洞(三)-shiro无依赖利用链分析过程CommonsBeanutils是一个用于操作JAVABEAN的工具包。先看下基础使用publicclassPerson{//JAVABEANprivateStringname;privateintage;public......
  • CC4利用链分析
    我的Github主页Java反序列化学习同步更新,有简单的利用链图分析版本CommonsCollections4.0JDK8u65环境配置参考JAVA安全初探(三):CC1链全分析分析过程在CommonsCollections4.0中,TransformingComparator类变为可序列化类,增加了一条攻击链。CC4在CC3的基础上,改变了......
  • 太原理工大学数值计算方法实验报告(计科)【计算机数值方法】(wz)
    实验目的和要求(必填)1.掌握方程求根数值方法的基本方法,算法设计,实验验证和结果分析。2.选择使用二分法、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解;3.进行结果判断和误差分析。二、实验内容和原理(必填)熟悉使用二分法、迭代法、牛顿法、割线法等方法对给定的方程......
  • Linux使用tcpdump命令抓包并使用wireshark分析常见的场景和解读
    使用tcpdump抓包并使用Wireshark分析网络流量是一项重要的网络管理和故障排除技能。以下是一个简单的步骤指南,涵盖了从抓包到分析的常见场景。抓包安装tcpdump在大多数Linux发行版上,您可以使用包管理器安装tcpdump。例如,在基于Debian的系统上:sudoapt-getin......
  • Java计算机毕业设计的电影院管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着文化娱乐产业的蓬勃发展,电影院作为人们休闲娱乐的重要场所,其管理效率和用户体验成为影响行业竞争力的关键因素。传统的电影院管理方式往往依赖于......
  • 【02】计算两数相乘
    A*B问题题目描述输入两个正整数AAA和BBB,求......
  • 计算机会有春天吗
    选专业要了解自己的兴趣所在。即想要学习什么样的专业,如果有明确的专业意向,就可以有针对性地选择那些专业实力较强的院校。2.如果没有明确的专业意向,可以优先考虑一下院校。确定一下自己想要选择综合性院校还是理工类院校或是像财经或者语言之类的特色院校。3.综合考虑地区......
  • 计算机未来大方向
    选专业要了解自己的兴趣所在。即想要学习什么样的专业,如果有明确的专业意向,就可以有针对性地选择那些专业实力较强的院校。2.如果没有明确的专业意向,可以优先考虑一下院校。确定一下自己想要选择综合性院校还是理工类院校或是像财经或者语言之类的特色院校。3.综合考虑地区......
  • TypeScript的类型谓词与控制流分析
    目录ts封装类型判断的问题类型谓词TypeScript的“控制流分析”ts封装类型判断的问题在union.d.ts中全局声明一个DataTypedeclaretypeDataType=|"RegExp"|"Object"|"Array"|"Function"|"String"|"Boolean"|"......
  • 用kali学Python第7章用户输入和while循环的代码截图和分析
    第7章   用户输入和while循环用户输入演示代码7-1name=input("Pleaseenteryourname:")print(f"\nHello,(name)!”)运行结果Pleaseenteryourname:iTuringHello,iTuring!字符串转换其他类型•int(string):将字符串转换为整数值。•float(string):将字符串......