循环神经网络(RNN)与长短期记忆网络(LSTM)
前言: 通过前面的学习,我们以BP神经网络为基础,认识到了损失函数,激活函数,以及梯度下降法的原理;而后学习了卷积神经网络,知道图像识别是如何实现的。今天这篇文章,讲述的就是计算机如何通过RNN与LSTM来做到自然语言的理解。
引入:
自然语言中,存在着强烈的语序和语境,词与词之前,是存在着时序顺序的,既然是存在着时序顺序,那就意味着词与词,之间是存在着逻辑关系,并不是单独的,那么当我们把一句话中的每个字,用独热编码表示后,一个字一个字的输入到神经网络中,就需要一种手段,来记录下字与字之间的关系,更通俗一点,就是我们下一个字的训练,是需要和上一个字的训练产生一些联系的,那么我们就需要再BP神经网络的基础上,想一个办法来实现这个机制。
循环神经网络:
要想实现上面的机制,聪明的科学家已经帮我们想到了如何让每次训练之间产生联系,当我们把隐含层中的输出,作为下一个训练时刻隐含层的输入,就可以让每一次训练产生联系,如下图:

红色的线条,就是隐含层传递参数给下一个时刻隐含层的参数。我们用下面这张图,再来详细解释一下具体的执行:

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

因为是使用链式求导,所以就会存在一个致命的问题,会导致梯度消失,当一句话长度过于的长,就会导致后面。因为随着求导的次数增多,值就会越来越小,所以导致了梯度消失,所以我们就需要学习下面的LSTM长短期记忆神经网络。
长短期记忆神经网络:
LSTM宏观结构上和RNN并无差异,但是在隐含层的微观结构却完全不一样。
长短期记忆神经网络的隐含层结构包含:遗忘门,输入门,输出门。
遗忘门: 遗忘门通过接收上一个时刻隐含层输出,以及该时刻的输入,经过sigmoid函数的变换,以上一时刻的输出a做乘法,做归一化处理。

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

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

参考:深度学习及其应用(赵卫东)
相关文章:
循环神经网络(RNN)与长短期记忆网络(LSTM)
前言: 通过前面的学习,我们以BP神经网络为基础,认识到了损失函数,激活函数,以及梯度下降法的原理;而后学习了卷积神经网络,知道图像识别是如何实现的。今天这篇文章,讲述的就是计算机…...
ArxDbgDocLockWrite 类简介
ArxDbgDocLockWrite 类是一个用于在 AutoCAD 中锁定文档的自定义类。它提供了一些方法来获取和释放对文档的写入锁定,并且还可以设置当前文档。 该类的原理如下: 构造函数 ArxDbgDocLockWrite() 和 ArxDbgDocLockWrite(AcDbDatabase* db) 用于创建 Arx…...
【教3妹学编辑-算法题】环和杆
3妹:2哥,今年春节的放假安排出来了,今年春节放8天假,我们公司除夕提前放一天,总共9天假。 耶~~~ 2哥 :你们公司这么好啊, 我们公司的放假安排还没出来,不知道今年除夕能不能回家了… 3妹&#x…...
解决 eslint 的 Parsing error: Unexpected token 错误
解决 eslint 的 Parsing error: Unexpected token 错误 问题描述:import动态导入,将js文件单独打包时,webpack打包错误 ERROR in ./src/js/main.js Module Error (from ./node_modules/_eslint-loader4.0.2eslint-loader/dist/cjs.js ): F…...
VR全景技术在文化展示与传播中有哪些应用?
引言: 随着科技的不断进步,虚拟现实(VR)全景技术已经成为文化展示与传播领域的一项重要工具。那么VR全景技术是如何改变文化展示与传播方式,VR全景技术又如何推动文化的传承和普及呢? 一.VR技术…...
Linux shell编程学习笔记19:until循环语句
Linux shell编程中的until语句,在功能上与其它编程语言一致,但在结构与其它编程语言又不太一样。在大多数编程语言中,until语句的循环条件表达式一般位于循环体语句的后面,但是在Linux shell编程中,until语句的循环条件…...
(CV)论文列表
CNN卷积神经网络之SKNet及代码 https://blog.csdn.net/qq_41917697/article/details/122791002 【CVPR2022 oral】MixFormer: Mixing Features across Windows and Dimensions 【精选】【CVPR2022 oral】MixFormer: Mixing Features across Windows and Dimensions-CSDN博客...
恶意软件防范和拦截: 提供防范恶意软件攻击的策略
恶意软件,或者俗称的“病毒”,一直是IT领域的一个严重威胁。这些恶意软件可以窃取敏感信息、损害系统稳定性,甚至对企业和个人造成重大经济损失。在这篇博客文章中,我们将讨论如何防范和拦截恶意软件攻击,包括使用反病…...
单例模式浅析
程序中仅存在一个对象实例,避免重复构建浪费资源。 1.饿汉式 主要分为3步:1.构造方法私有化 2.内部创建静态实例化对象 3.提供公有静态方法,返回对象实例 public class SingleTon { // 构造方法私有化private SingleTon(){} // 内部…...
Springboot引入mybatis-plus及操作mysql的json字段
springboot引入mybatis-plus,创建springboot项目省略 pom文件 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.4</version></dependency> <!…...
springboot读取application.properties中文乱码问题
目录 1 前言: 2 本地环境中的解决方案(以idea为例) 3 全部解决方案 1 前言: 初用properties,读取java properties文件的时候如果value是中文,会出现乱码的问题。我们首先需要明了乱码问题的根源。在 Java 中&#x…...
SAML- 安全断言标记语言
一、概念 安全断言标记语言(SAML)是一种开放标准,用于在各方之间(特别是身份提供商和服务提供商之间)交换身份验证和授权数据。SAML 是一种基于XML的安全断言标记语言(服务提供商用来做出访问控制决策的语句…...
【佳学基因检测】Node.js中http模块的使用
【佳学基因检测】Node.js中http模块的使用 先看代码: http.createServer(function (req, res) {res.writeHead(200, {Content-Type: text/html});res.end(测基因,阻遗传,就在佳学基因干(http://www.jiaxujiyin.com)!); }).liste…...
前端基础之JavaScript
JavaScript是一种能够在网页上添加交互效果的脚本语言,也被称为客户端语言。它可以在网页中操作HTML元素、改变CSS样式,以及处理用户的交互事件等。 以下是JavaScript的常见基础知识点: 变量和数据类型:JavaScript中的变量可以存…...
[GDOUCTF 2023]<ez_ze> SSTI 过滤数字 大括号{等
SSTI模板注入-中括号、args、下划线、单双引号、os、request、花括号、数字被过滤绕过(ctfshow web入门370)-CSDN博客 ssti板块注入 正好不会 {%%}的内容 学习一下 经过测试 发现过滤了 {{}} 那么我们就开始吧 我们可以通过这个语句来查询是否存在ss…...
C/C++奇数求和 2021年3月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
目录 C/C奇数求和 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C奇数求和 2021年3月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 计算非负整数 m 到 n(包括m 和 n ÿ…...
Android APT的使用
Apt 介绍 APT(Annotation Processing Tool)是一种处理注释的工具,它对源代码文件进行检测找出其中的 Annotation,根据注解自动生成代码。 Annotation 处理器在处理 Annotation 时可以根据源文件中的 Annotation 生成额外的源文件和其它的文件(文件具体内容由 Annot…...
【刷题宝典NO.0】
目录 素数的判定 打印素数 打印水仙花数 百钱买百坤 输出闰年 逆序打印一个整数的每一位 输出乘法口诀表 数字9出现的次数 二进制1的个数 输出一个整数的偶数位和奇数位的二进制序列 求两个整数的最大公约数 求两个整数的最小公倍数 小乐乐与欧几里得 小…...
MySQL数据库——存储过程-介绍以及基本语法(特点、创建、调用、查看、删除、示例)
目录 介绍 特点 基本语法 创建 调用 查看 删除 示例 介绍 存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理…...
基础课15——语音标注
语音数据标注是对语音数据进行处理和分析的过程,目的是让人工智能系统能够理解和识别语音中的信息。这个过程包括了对语音信号的预处理、特征提取、标注等步骤。 在语音数据标注中,标注员需要对语音数据进行分类、切分、转写等操作,让人工智…...
深度解析开源翻译方案:如何构建高效免费的DeepL替代品
深度解析开源翻译方案:如何构建高效免费的DeepL替代品 【免费下载链接】DeepLX Powerful Free DeepL API, No Token Required 项目地址: https://gitcode.com/gh_mirrors/de/DeepLX DeepL翻译API的免费限制和复杂配置常常让开发者望而却步。DeepLX作为开源免…...
3分钟掌握Windows窗口调整技巧:告别固定尺寸的烦恼
3分钟掌握Windows窗口调整技巧:告别固定尺寸的烦恼 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为Windows应用程序窗口无法自由调整大小而烦恼吗?Wi…...
iOS设备激活解锁终极指南:Applera1n工具完整使用教程
iOS设备激活解锁终极指南:Applera1n工具完整使用教程 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 还在为二手iOS设备的激活锁问题而烦恼吗?Applera1n是一款专为iOS 15-16系统…...
零基础入门ModTheSpire:5分钟学会《杀戮尖塔》模组加载神器
零基础入门ModTheSpire:5分钟学会《杀戮尖塔》模组加载神器 【免费下载链接】ModTheSpire External mod loader for Slay The Spire 项目地址: https://gitcode.com/gh_mirrors/mo/ModTheSpire 想要为《杀戮尖塔》注入全新活力,但担心破坏原版游戏…...
机器学习项目开发模式解析:从提交历史看规模、协作与演化规律
1. 项目概述:从代码提交中解码机器学习项目的真实工作流在机器学习项目的日常开发中,我们每天都在与Git打交道,提交代码、更新模型、调整参数。但你是否想过,这些看似随意的提交背后,是否隐藏着某种规律?一…...
终极指南:如何让老款Mac免费升级到最新macOS系统
终极指南:如何让老款Mac免费升级到最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为你的老款Mac无法升级最新系统而烦恼吗&…...
Taotoken按Token计费模式如何适应项目不同开发阶段
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken按Token计费模式如何适应项目不同开发阶段 在项目开发的生命周期中,从最初的创意验证到最终的大规模部署&…...
DouYinBot 抖音无水印视频解析工具:3分钟快速搭建个人解析服务
DouYinBot 抖音无水印视频解析工具:3分钟快速搭建个人解析服务 【免费下载链接】DouYinBot 该项目仅自用,不提供抖音视频下载 项目地址: https://gitcode.com/gh_mirrors/do/DouYinBot 在抖音内容创作日益普及的今天,如何快速获取无水…...
Scroll Reverser终极指南:彻底告别macOS滚动方向混乱的智能解决方案
Scroll Reverser终极指南:彻底告别macOS滚动方向混乱的智能解决方案 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser Scroll Reverser是一款专为macOS设计的智能滚动方…...
BabelDOC:解决学术文档翻译三大痛点的智能PDF翻译工具
BabelDOC:解决学术文档翻译三大痛点的智能PDF翻译工具 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC 你是否曾经面对一份重要的英文科研论文,需要快速理解却苦于语言障…...
