深度神经网络——深度学习中的 RNN 和 LSTM 是什么?

news2024/12/23 1:55:24

引言

自然语言处理和人工智能聊天机器人领域许多最令人印象深刻的进步都是由 递归神经网络(RNN) 和长短期记忆(LSTM)网络。 RNN 和 LSTM 是特殊的神经网络架构,能够处理顺序数据,即按时间顺序排列的数据。 LSTM 是 RNN 的本质改进版本,能够解释更长的数据序列。 让我们看一下 RNN 和 LSTMS 的结构以及它们如何支持创建复杂的自然语言处理系统。

什么是前馈神经网络?

因此,在讨论长短期记忆 (LSTM) 和卷积神经网络 (CNN) 的工作原理之前,我们应该先讨论一下神经网络的一般格式。

神经网络旨在检查数据并学习相关模式,以便这些模式可以应用于其他数据并对新数据进行分类。 神经网络分为三部分:输入层、隐藏层(或多个隐藏层)和输出层。

输入层将数据输入神经网络,而隐藏层则学习数据中的模式。 数据集中的隐藏层通过“权重”和“偏差”连接到输入和输出层,这只是数据点如何相互关联的假设。 这些权重在训练期间进行调整。 当网络训练时,模型对训练数据(输出值)的猜测将与实际训练标签进行比较。 在训练过程中,网络应该(希望)能够更准确地预测数据点之间的关系,以便能够准确地对新数据点进行分类。 深度神经网络是中间有更多层/更多隐藏层的网络。 模型具有的隐藏层和神经元/节点越多,模型识别数据中的模式的能力就越好。

常规的前馈神经网络,就像我上面描述的那样,通常被称为“密集神经网络”。 这些密集的神经网络与专门解释不同类型数据的不同网络架构相结合。

什么是 RNN(循环神经网络)?

循环神经网络采用前馈神经网络的一般原理,并使它们能够通过以下方式处理顺序数据: 为模型提供内部存储器。 RNN 名称中的“循环”部分来自于输入和输出循环这一事实。一旦产生网络的输出,输出就会被复制并作为输入返回到网络。在做出决策时,不仅要分析当前的输入和输出,还要考虑之前的输入。换句话说,如果网络的初始输入是 X,输出是 H,则 H 和 X1(数据序列中的下一个输入)都会被输入到网络中进行下一轮学习。通过这种方式,数据的上下文(之前的输入)在网络训练时得以保留。

这种架构的结果是 RNN 能够处理顺序数据。 然而,RNN 存在一些问题。 RNN 面临以下问题 梯度消失和梯度爆炸问题。

RNN 可以解释的序列长度相当有限,尤其是与 LSTM 相比。

什么是 LSTM(长短期记忆网络)?

长短期记忆网络可以被视为 RNN 的扩展,再次应用保留输入上下文的概念。 然而,LSTM 在几个重要方面进行了修改,使它们能够用更先进的方法解释过去的数据。 对 LSTM 所做的修改解决了梯度消失问题,并使 LSTM 能够考虑更长的输入序列。

LSTM 模型由 三个不同的组件或门. 有一个 输入门、输出门和遗忘门。 与 RNN 非常相似,LSTM 在修改模型的内存和输入权重时会考虑前一个时间步的输入。 输入门决定哪些值是重要的并且应该让其通过模型。 输入门中使用了 sigmoid 函数,它决定哪些值要通过循环网络传递。 零会删除该值,而 1 会保留该值。 这里还使用了 TanH 函数,它决定输入值对模型的重要性,范围从 -1 到 1。

在考虑当前输入和内存状态后,输出门决定将哪些值推入下一个时间步。 在输出门中,对值进行分析并分配从 -1 到 1 的重要性。这会在数据进行下一个时间步计算之前对其进行调节。 最后,遗忘门的工作是删除模型认为对于做出有关输入值的性质的决策不必要的信息。 忘记门对值使用 sigmoid 函数,输出 0(忘记这个)和 1(保留这个)之间的数字。

LSTM 神经网络由可以解释顺序单词数据的特殊 LSTM 层和如上所述的密集连接层组成。 一旦数据穿过 LSTM 层,它就会进入密集连接层。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

插入排序-C语言版本

前言 插入排序是很重要的排序,著名的希尔排序就是从插入排序演变过来的,所以我们需要并且很多时候有些面试也是会面试插入排序的,所以需要好好捋清楚插入排序的逻辑是什么 插入排序gif 插入排序单趟实现 1,插入排序我们需要假设最…

【高端精品】最新手机版微信小程序(拼多多+京东)全自动操作项目

现代互联网经济的发展带来了新型的盈利方式,通过微信小程序的拼多多和京东进行商品自动巡视,为商家带来增的流量,同时为使用者带来利润。这种盈利方式无需复杂操作,用户仅需启动相应程序,商品信息便会被系统自动收集。…

《现代通信原理与技术》码间串扰和​​​​​​​无码间串扰的眼图对比实验报告

实 验:码间串扰和无码间串扰的眼图对比实验报告 摘 要: 在数字通信系统中,码间串扰(Inter-Symbol Interference, ISI)是影响信号质量和系统性能的重要因素之一。本实验通过MATLAB软件生成并对比了受码间串扰影响和未…

记录一个flink跑kafka connector遇到的问题

【报错】 D:\Java\jdk1.8.0_231\bin\java.exe "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2022.2.3\lib\idea_rt.jar56647:D:\Program Files\JetBrains\IntelliJ IDEA 2022.2.3\bin" -Dfile.encodingUTF-8 -classpath D:\Java\jdk1.8.0_231\jre\lib\cha…

ubuntu搭建java开发环境IDEA版

一.安装 OpenJDK 更新包列表: sudo apt update安装 OpenJDK: 你可以选择安装不同版本的 OpenJDK,例如 11 或 17,这个是安装 OpenJDK 11 的命令: sudo apt install openjdk-11-jdk验证安装: 安装完成后…

C++ 59 之 纯虚函数和抽象类

#include <iostream> #include <string> using namespace std;class Cal { // 类中有纯虚函数&#xff0c;这个类也叫做抽象类&#xff0c;无法实现实例化 public:int m_a;int m_b;// 虚函数// virtual int getRes(){// return 0;// }// 纯虚函数 作用和虚函数…

机器学习-课程整理及初步介绍

简介: 机器学习是人工智能的一个分支&#xff0c;它使计算机系统能够从经验中学习并改进其在特定任务上的表现&#xff0c;而无需进行明确的编程。机器学习涉及多种算法和统计模型&#xff0c;它们可以从数据中学习规律&#xff0c;并做出预测或决策。机器学习的应用非常广泛&…

【Unity】如何做一个很平滑的行人动画,且可以根据行人速度动态调整动画速度?

首先我们定一下不同速度对应的行人动作状态&#xff0c;设计为四种状态&#xff1a; 静止站立Stand&#xff1a;0~maxStandSpeed走路Walk&#xff1a;minWalkSpeed~maxWalkSpeed慢跑Jog&#xff1a;minJogSpeed~maxJogSpeed快跑Run&#xff1a;大于MinRunSpeed 我们可以使用A…

自学SAP是学习ECC版本还是S4版本?

很多人想学SAP&#xff0c;问我应该学ECC版本还是S4版本&#xff0c;我的建议如果你是自学的话&#xff0c;我个人建议使用ECC版本就行&#xff0c;因为这两个版本前台业务和后台配置的操作差异并不大&#xff0c;主要差异在于数据库的差异&#xff0c;前台业务操作和后台系统配…

用户态协议栈02-arp reply实现

在上一节DODK的UDP收发中发送udp包的时候&#xff0c;需要向物理机的arp表中添加一个静态的arp记录。这在生产环境中显然是不可以的。在内核的协议栈中&#xff0c;会将自己的ip和mac在局域网中进行广播&#xff0c;并且记录其他电脑的ip和mac。在需要发送数据包的时候&#xf…

6月15号作业

使用手动连接&#xff0c;将登录框中的取消按钮使用第二中连接方式&#xff0c;右击转到槽&#xff0c;在该槽函数中&#xff0c;调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0…

18. 《C语言》——【Nice2016年校招笔试题引发的思考】

亲爱的读者&#xff0c;大家好&#xff01;我是一名正在学习编程的高校生。在这个博客里&#xff0c;我将和大家一起探讨编程技巧、分享实用工具&#xff0c;并交流学习心得。希望通过我的博客&#xff0c;你能学到有用的知识&#xff0c;提高自己的技能&#xff0c;成为一名优…

证明 泊松分布 的期望和方差

泊松分布 泊松分布&#xff08;Poisson Distribution&#xff09;是描述在固定时间间隔内某事件发生次数的概率分布&#xff0c;特别适用于稀有事件的统计。假设随机变量 ( X ) 表示在时间间隔 ( t ) 内某事件发生的次数&#xff0c;并且该事件在单位时间内发生的平均次数为 (…

牛客练习题打卡(06-15)

run方法线程执行体 .start方法开启多线程 在java中 &#xff0c; 整数类型默认int,带小数默认double ; 如果要指定长整型加L&#xff1b;如果要指定为单精度加F ; 在java中&#xff0c;重载要求方法名相同&#xff0c; 参数列表必须不同&#xff08;个数不同、或类型不同、参数…

Oracle数据库Day03-单行函数

1. 单行函数 处理数据项接受函数并返回一个值对返回的每一行采取行动每行返回一个结果可能会修改数据类型可以嵌套接受可以是列或表达式的参数 function_name[(arg1, arg2,…)]

【面试干货】Class.forName()与ClassLoader.loadClass()在Java反射中的区别

【面试干货】Class.forName&#xff08;&#xff09;与ClassLoader.loadClass&#xff08;&#xff09; 在Java反射中的区别 1、Class.forName()1.1 示例代码1.2 关键点 2、ClassLoader.loadClass()2.1 示例代码2.2 关键点 3、两者之间的区别 &#x1f496;The Begin&#x1f…

主流框架选择:React、Angular、Vue的详细比较

目前前端小伙伴经常使用三种广泛使用的开发框架&#xff1a;React、Angular、Vue - 来设计网站 Reactjs&#xff1a;效率和多功能性而闻名 Angularjs&#xff1a;创建复杂的应用程序提供了完整的解决方案&#xff0c;紧凑且易于使用的框架 Vuejs&#xff1a;注重灵活性和可重用…

解决老毛子路由器自带微信提示功能无法触发问题

新买了一个二手的RM AC2100&#xff0c;刷了老毛子后&#xff0c;发现自带的上下线微信提示无法使用(方糖公众号无信息) 经我开启SSH&#xff0c;将上下线部分代码拿出来调试发现&#xff0c;发不出来的原因是原版信息发送长度过长&#xff0c;需要截取一部分才能发送成功。 …

查看npm版本异常,更新nvm版本解决问题

首先说说遇见的问题&#xff0c;基本上把nvm&#xff0c;npm的坑都排了一遍 nvm版本导致npm install报错 Unexpected token ‘.‘install和查看node版本都正确&#xff0c;结果查看npm版本时候报错 首先就是降低node版本… 可以说基本没用&#xff0c;如果要降低版本的话&…

比亚迪智驾技术震撼登场!L3级自动驾驶领跑全国,无图导航、夜间挑战轻松应对!

作为新能源汽车领域的翘楚&#xff0c;比亚迪在电池技术与智能驾驶方面都有着卓越的表现。近日&#xff0c;比亚迪凭借其领先的智驾技术&#xff0c;成功入选全国首批L3级自动驾驶上路及行驶试点名单&#xff0c;这无疑将推动智驾技术的普及速度。 你知道吗&#xff1f;比亚迪智…