当前位置: 首页 > news >正文

循环神经网络(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时刻隐含层的输入。
在这里插入图片描述

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

相关文章:

循环神经网络(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&#xff0c;创建springboot项目省略 pom文件 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.4</version></dependency> <!…...

springboot读取application.properties中文乱码问题

目录 1 前言&#xff1a; 2 本地环境中的解决方案&#xff08;以idea为例&#xff09; 3 全部解决方案 1 前言&#xff1a; 初用properties,读取java properties文件的时候如果value是中文&#xff0c;会出现乱码的问题。我们首先需要明了乱码问题的根源。在 Java 中&#x…...

SAML- 安全断言标记语言

一、概念 安全断言标记语言&#xff08;SAML&#xff09;是一种开放标准&#xff0c;用于在各方之间&#xff08;特别是身份提供商和服务提供商之间&#xff09;交换身份验证和授权数据。SAML 是一种基于XML的安全断言标记语言&#xff08;服务提供商用来做出访问控制决策的语句…...

【佳学基因检测】Node.js中http模块的使用

【佳学基因检测】Node.js中http模块的使用 先看代码&#xff1a; http.createServer(function (req, res) {res.writeHead(200, {Content-Type: text/html});res.end(测基因&#xff0c;阻遗传&#xff0c;就在佳学基因干&#xff08;http://www.jiaxujiyin.com)!); }).liste…...

前端基础之JavaScript

JavaScript是一种能够在网页上添加交互效果的脚本语言&#xff0c;也被称为客户端语言。它可以在网页中操作HTML元素、改变CSS样式&#xff0c;以及处理用户的交互事件等。 以下是JavaScript的常见基础知识点&#xff1a; 变量和数据类型&#xff1a;JavaScript中的变量可以存…...

[GDOUCTF 2023]<ez_ze> SSTI 过滤数字 大括号{等

SSTI模板注入-中括号、args、下划线、单双引号、os、request、花括号、数字被过滤绕过&#xff08;ctfshow web入门370&#xff09;-CSDN博客 ssti板块注入 正好不会 {%%}的内容 学习一下 经过测试 发现过滤了 {{}} 那么我们就开始吧 我们可以通过这个语句来查询是否存在ss…...

C/C++奇数求和 2021年3月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C奇数求和 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C奇数求和 2021年3月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 计算非负整数 m 到 n&#xff08;包括m 和 n &#xff…...

Android APT的使用

Apt 介绍 APT(Annotation Processing Tool)是一种处理注释的工具,它对源代码文件进行检测找出其中的 Annotation&#xff0c;根据注解自动生成代码。 Annotation 处理器在处理 Annotation 时可以根据源文件中的 Annotation 生成额外的源文件和其它的文件(文件具体内容由 Annot…...

【刷题宝典NO.0】

目录 素数的判定 打印素数 打印水仙花数 百钱买百坤 输出闰年 逆序打印一个整数的每一位 输出乘法口诀表 数字9出现的次数 二进制1的个数 输出一个整数的偶数位和奇数位的二进制序列 求两个整数的最大公约数 求两个整数的最小公倍数 小乐乐与欧几里得 小…...

MySQL数据库——存储过程-介绍以及基本语法(特点、创建、调用、查看、删除、示例)

目录 介绍 特点 基本语法 创建 调用 查看 删除 示例 介绍 存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合&#xff0c;调用存储过程可以简化应用开发人员的很多工作&#xff0c;减少数据在数据库和应用服务器之间的传输&#xff0c;对于提高数据处理…...

基础课15——语音标注

语音数据标注是对语音数据进行处理和分析的过程&#xff0c;目的是让人工智能系统能够理解和识别语音中的信息。这个过程包括了对语音信号的预处理、特征提取、标注等步骤。 在语音数据标注中&#xff0c;标注员需要对语音数据进行分类、切分、转写等操作&#xff0c;让人工智…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋&#xff0c;无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话&#xff0c;配置.bahs_profile后也能解决上下翻页这些&#xff0c;但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...

全面解析数据库:从基础概念到前沿应用​

在数字化时代&#xff0c;数据已成为企业和社会发展的核心资产&#xff0c;而数据库作为存储、管理和处理数据的关键工具&#xff0c;在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理&#xff0c;到社交网络的用户数据存储&#xff0c;再到金融行业的交易记录处理&a…...