循环神经网络(RNN)与长短期记忆网络(LSTM)

前言: 通过前面的学习,我们以BP神经网络为基础,认识到了损失函数,激活函数,以及梯度下降法的原理;而后学习了卷积神经网络,知道图像识别是如何实现的。今天这篇文章,讲述的就是计算机如何通过RNN与LSTM来做到自然语言的理解。

引入:

自然语言中,存在着强烈的语序和语境,词与词之前,是存在着时序顺序的,既然是存在着时序顺序,那就意味着词与词,之间是存在着逻辑关系,并不是单独的,那么当我们把一句话中的每个字,用独热编码表示后,一个字一个字的输入到神经网络中,就需要一种手段,来记录下字与字之间的关系,更通俗一点,就是我们下一个字的训练,是需要和上一个字的训练产生一些联系的,那么我们就需要再BP神经网络的基础上,想一个办法来实现这个机制。

循环神经网络:

要想实现上面的机制,聪明的科学家已经帮我们想到了如何让每次训练之间产生联系,当我们把隐含层中的输出,作为下一个训练时刻隐含层的输入,就可以让每一次训练产生联系,如下图:
在这里插入图片描述
红色的线条,就是隐含层传递参数给下一个时刻隐含层的参数。我们用下面这张图,再来详细解释一下具体的执行:
在这里插入图片描述

  1. 首先是两个时刻t0和t1,使用随机正态分布初始化网络中的节点,因为我们输入的是一维的向量,但是从b可以看出,隐含层中的神经元是两个,并且每个神经元中有一个三维向量,所以我们的a,就使用一个2维向量,这样就可以补齐成一个3维的了。
  2. 绿色框内,就是隐含层再t0时刻的计算,蓝色框内就是隐含层计算后,使用激活函数获取的值。
  3. 粉色框就是隐含层和输出层的计算矩阵,最后再通过一个激活函数输出。
  4. 可以看出在t1时刻,蓝色框作为上一个时刻隐含层的输出和t1时刻的输入,组合成了一个新的向量来进行运算,这就使得下个时刻的训练和上一个时刻产生了联系
    其中隐含层一般使用tanh作为激活函数,输出层使用softMax来作为激活函数。
    当我们进行了一句话的训练后,会产生很多个时刻,每个时刻都有一个误差值,我们使用bp神经网络的反向传播,梯度下降法 就可以去更新每个节点的权值,如下图,在E3时刻使用梯度下降法反向传播,更新了输出节点和隐含层节点的权值,图中可以明显看出,S3节点是需要前面时刻节点的链式法则来求导的
    在这里插入图片描述
    因为是使用链式求导,所以就会存在一个致命的问题,会导致梯度消失,当一句话长度过于的长,就会导致后面。因为随着求导的次数增多,值就会越来越小,所以导致了梯度消失,所以我们就需要学习下面的LSTM长短期记忆神经网络。

长短期记忆神经网络:

LSTM宏观结构上和RNN并无差异,但是在隐含层的微观结构却完全不一样。
长短期记忆神经网络的隐含层结构包含:遗忘门,输入门,输出门。
遗忘门: 遗忘门通过接收上一个时刻隐含层输出,以及该时刻的输入,经过sigmoid函数的变换,以上一时刻的输出a做乘法,做归一化处理。
在这里插入图片描述

输入门: 通过接收上一个时刻隐含层输出,以及该时刻的输入,一个经过sigmoid变化,一个经过tanh变换,然后使用乘法,把候选者加入细胞中,再和遗忘门计算出来的b,进行一个加法操作,就可以实现重要信息的保留,忘掉不重要的信息
在这里插入图片描述

输出门: 接收上一个时刻隐含层输出,以及该时刻的输入,经过一个sigmoid变换,与输入门和遗忘门的和C,进行一个乘法运算,就可以得到ht时刻的输出,以及下一个t+1时刻隐含层的输入。
在这里插入图片描述

参考:深度学习及其应用(赵卫东)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/113976.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OSPF复习(2)

目录 一、LSA的头部 二、6种类型的LSA(课堂演示) 1、type1-LSA:----重要且复杂 2、type2-LSA: 3、type3-LSA: 4、type4-LSA: 5、type5-LSA: 6、type7-LSA: 三、OSPF的网络类…

基于Docker-consul容器服务更新与发现

目录 一、什么是服务注册与发现: 二、Docker-consul介绍: 三、consul的关键特性: 四、consul部署: 1.部署规划: 2.consul服务器部署: 2.1 建立consul服务: 启动consul后默认会监听5个端口&a…

【案例】3D地球(vue+three.js)

需要下载插件 <template><div class"demo"><div id"container" ref"content"></div></div> </template> <script> import * as THREE from three; // import mapJSON from ../map.json; import { Or…

MetaAI提出全新验证链框架CoVE,大模型也可以通过“三省吾身”来缓解幻觉现象

​ 论文名称&#xff1a; Chain-of-Verification Reduces Hallucination in Large Language Models 论文链接&#xff1a; https://arxiv.org/abs/2309.11495 曾子曰&#xff1a;“吾日三省吾身” --出自《论语学而》 时至今日&#xff0c;生成幻觉&#xff08;hallucination&…

【Docker】十分钟完成redis安装,你也可以的!!!

十分钟完成redis安装&#xff0c;你也可以的 前言安装步骤1.创建安装目录2.创建docker-compose.yml3.创建redis.conf文件4.启动容器5.连接redis 总结 前言 本文基于Docker安装redis&#xff0c;首先确保系统安装了docker和docker-compose。 没有使用过docker朋友可以去看看博主…

呼吸灯【FPGA】

晶振50Mhz 1us 等于 计0~49 1ms等于 0~999us 1s等于 0~999ms //led_outalways(posedge FPGA_CLK_50M_b5 or negedge reset_e8) //【死循环】敏感【触发条件&#xff1a;上升沿 clk】【运行副本】if(reset_e81b0)begin //50Mhz晶振&#xff0c; 49_999_999 是 1秒…

LiveMeida视频接入网关

一、产品简介 视频接入网关主要部署在视频存储节点或视频汇聚节点&#xff0c;面向不同用户&#xff0c;主要用于对接不同厂家、不同型号的摄像机设备&#xff0c;获取摄像机视频后&#xff0c;以统一标准的视频格式和传输协议&#xff0c;将视频推送至上层联网/应用平台。可广…

洒洒水阿萨阿萨

1. 多表查询 多表查询(也叫关联查询, 联结查询): 可以用于检索涉及到多个表的数据. 使用关联查询, 可以将两张或多张表中的数据通过某种关系联系在一起, 从而生成需要的结果集.前提条件: 这些一起查询的表之间它们之间一定是有关联关系.# 先熟悉一下三张表: -- 1. 员工表(11个…

R语言使用surveyCV包对NHANES数据(复杂调查加权数据)进行10折交叉验证

美国国家健康与营养调查&#xff08; NHANES, National Health and Nutrition Examination Survey&#xff09;是一项基于人群的横断面调查&#xff0c;旨在收集有关美国家庭人口健康和营养的信息。 地址为&#xff1a;https://wwwn.cdc.gov/nchs/nhanes/Default.aspx 既往咱们…

上海物理、化学高考命题趋势及2024年上海物理、化学高考备考建议

在上海高考时&#xff0c;物理、化学虽然不像语文、英语和数学那样分数高&#xff0c;但是仍然很重要。那么&#xff0c;从这几年的上海物理、化学的高考题目来看&#xff0c;我们互发现什么命题趋势和考题特点呢&#xff1f;如何备考接下来的2024年高考物理和化学呢&#xff1…

vue3视频大小适配浏览器窗口大小

目标&#xff1a;按浏览器窗口的大小&#xff0c;平铺视频&#xff0c;来适配屏幕的大小。 考虑使用 DPlayer.js、video.js、vue-video-player等视频插件&#xff0c;但报了各种各样的错&#xff1b;试过使用 js 对视频进行同比例放大&#xff0c;再判断其与窗口的大小取最小值…

什么是IPA,和RPA有啥区别和联系?

∵ IPA中包含了RPA的“PA”&#xff0c;AI的“I” ∴IPARPAAI&#xff0c;等式成立&#xff01; AI&#xff1a;或人工智能&#xff0c;是一种复杂的计算机技术&#xff0c;旨在模仿人类智能行为和决策的能力。它涵盖了多种技术和方法&#xff0c;包括&#xff1a;机器学习&am…

【基带开发】AD9361 复乘 com_cmpy_a12_b12

IP核 tb_com module tb_com();reg ad9361_l_clk,rst; initial beginad9361_l_clk0;forever #4.545 ad9361_l_clk~ad9361_l_clk; end initial beginrst1;#9.09 rst0; end wire [63 : 0] m_fll_phase_shift_dout; // fll 输出 dout // FLL Phase Shift com_cmpy_a12_b12 FLL_P…

二叉树问题——前/中/后/层遍历问题(递归与栈)

摘要 博文主要介绍二叉树的前/中/后/层遍历(递归与栈)方法 一、前/中/后/层遍历问题 144. 二叉树的前序遍历 145. 二叉树的后序遍历 94. 二叉树的中序遍历 102. 二叉树的层序遍历 103. 二叉树的锯齿形层序遍历 二、二叉树遍历递归解析 // 前序遍历递归LC144_二叉树的前…

springboot+vue基于hive旅游数据的分析与应用【内含源码+文档+部署教程】

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ &#x1f345;由于篇幅限制&#xff0c;想要获取完整文章或者源码&#xff0c;或者代做&am…

LeetCode1518 换水问题

题目描述 超市正在促销&#xff0c;你可以用 numExchange 个空水瓶从超市兑换一瓶水。最开始&#xff0c;你一共购入了 numBottles 瓶水。 如果喝掉了水瓶中的水&#xff0c;那么水瓶就会变成空的。 给你两个整数 numBottles 和 numExchange &#xff0c;返回你 最多 可以喝…

【工具】【IDE】Qt Creator社区版

Qt Creator社区版下载地址&#xff1a;https://download.qt.io/archive/qt/ 参考&#xff1a;https://cloud.tencent.com/developer/article/2084698?areaSource102001.8&traceIduMchNghqp8gWPdFHvSOGg MAC安装并配置Qt&#xff08;超级简单版&#xff09; 1.安装brew&…

使用vue3+vite+elctron构建小项目介绍Electron进程间通信

进程间通信 (IPC) 是在 Electron 中构建功能丰富的桌面应用程序的关键部分之一。 由于主进程和渲染器进程在 Electron 的进程模型具有不同的职责&#xff0c;因此 IPC 是执行许多常见任务的唯一方法&#xff0c;例如从 UI 调用原生 API 或从原生菜单触发 Web 内容的更改。 在 …

分享66个工作总结PPT,总有一款适合您

分享66个工作总结PPT&#xff0c;总有一款适合您 66个工作总结PPT下载链接&#xff1a;https://pan.baidu.com/s/1g8AWl42-tLdFYXEHZUYyGQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 立冬PPTPPT模板 西藏信仰PPT模板 古镇丽…

从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型

从零开始的目标检测和关键点检测&#xff08;三&#xff09;&#xff1a;训练一个Glue的RTMPose模型 一、重写config文件二、开始训练三、ncnn部署 从零开始的目标检测和关键点检测&#xff08;一&#xff09;&#xff1a;用labelme标注数据集 从零开始的目标检测和关键点检测…