【自然语言处理】(3) --RNN循环神经网络

news2024/11/22 16:54:42

文章目录

  • RNN循环神经网络
    • 一、传统神经网络的问题
    • 二、RNN的基本结构
    • 三、计算过程
    • 4. RNN的局限
  • 总结

RNN循环神经网络

循环神经网络(RNN,Recurrent Neural Network)是一种用于处理序列数据的神经网络模型。其关键特性在于网络节点(神经元)之间形成了循环连接,这使得RNN能够捕捉数据中的时间依赖性序列特性

一、传统神经网络的问题

序列数据:如文本、语音、股票、时间序列等数据,当前数据内容与前面的数据有关。

问题:无法训练出具有顺序的数据。模型搭建时没有考虑数据上下之间的关系。

比如:将“我要去打篮球”,分词后“我”,“要”,“去”,“打”,“篮球”,放进神经网络中训练得到一个结果之后。此时更改为“我要打篮球去”,模型可能就识别不出来了,没有办法将词语的上下词关系联系到一起。因为传统神经网络的每个输入层之间是没有建立关系的

在这里插入图片描述

于是,我们提出了一种新的神经网络模型RNN。

二、RNN的基本结构

RNN的基本单元是一个带有循环连接的神经元(也称为RNN单元或节点)。在处理序列输入时具有记忆性,可以保留之前输入的信息并继续作为后续输入的一部分进行计算

  • 输入

每个RNN单元接收两个输入:当前时间步的输入词向量x和上一个时间步的隐藏状态h(之前保留的信息)。RNN单元的输出是当前时间步的隐藏状态h,这个输出可以被传递到下一个时间步的RNN单元,也可以用于生成当前时间步的输出y(如果有需要的话)。

在这里插入图片描述

  • 输出

RNN结构中输入是x1, x2, …xn,输出为y1, y2, …yn,也就是说,输入和输出序列必须要是等长的

但是,对于每个层都会计算的y结果,我们一般情况只需要最后一层的输出结果,因为只有它是吸收所有信息后的结果,前面层的结果几乎不要。

当模型的输出层是softmax或sigmoid函数时,输出将是概率值交叉熵损失函数特别适用于这种情况,因为它直接操作概率值,而不是原始分数或类别标签。

在这里插入图片描述

三、计算过程

RNN的展开形式(Unfolding)有助于理解其工作原理。

注意:展开后,RNN看起来像是一个多层的前馈神经网络,但每一层的权重是共享的,每层的U、W、b是一样的,这是RNN的重要特点。这种权重共享机制使得RNN能够处理任意长度的序列,而不需要为每个时间步训练不同的权重。

在这里插入图片描述

如此计算就可以保留序列数据的关系,比如,”今天我要去打球“,分词后”今天“,”我要“,”去“,”打球“,传入循环神经网络:

在这里插入图片描述

每一层训练都保留了上一层训练的特征信息,从而使得最后的输出结果保留了所有单词的特征信息,这样模型预测时,输入”我要打球去今天“,只要特征信息对应上就可以理解为相同意思。

4. RNN的局限

  • 局限

当出现“我的职业是程序员,…,我最擅长的是电脑”。当需要预测最后的词“电脑”。当前的信息建议下一个词可能是一种技能,但是如果我们需要弄清楚是什么技能,需要先前提到的离当前位置很远的“职业是程序员”的上下文。

这说明相关信息和当前预测位置之间的间隔就变得相当的大。在理论上,RNN绝对可以处理这样的长期依赖问题。人们可以仔细挑选参数来解决这类问题中的最初级形式,但在实践中,RNN则没法太好的学习到这些知识

  • 原因

梯度会随着时间的推移不断下降减少,而当梯度值变得非常小时,就不会继续学习。

形象类似于,一个学生学知识,一次性学了五六个小时的知识,脑袋已经记不进去东西了,学不进去了。但是人类还可以记得大部分的知识,因为人类有一个特点,那就是可以抓获关键词,但是RNN神经网络不行,传进去一个词就记一个,到后来,学不进去了。

  • 解决问题

创建LSTM网络模型,一种RNN网络的特殊类型,可以长期依赖信息。我们下篇介绍。

总结

本篇介绍了:

  1. 传统神经网络的每个输入层之间是没有建立关系的,无法训练出具有顺序的数据。
  2. RNN的基本结构,保留之前输入的信息并继续作为后续输入的一部分进行计算。
  3. 重要特点:RNN看起来像是一个多层的前馈神经网络,但每一层的权重是共享的,每层的U、W、b是一样的。
  4. 局限:梯度会随着时间的推移不断下降减少,而当梯度值变得非常小时,就不会继续学习。

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

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

相关文章

现代数字信号处理I-P2概率论学习笔记

目录 学习视频链接: 1. 三要素及关系 2. 期望和方差的定义及基本性质 2.1 期望(均值)定义: 在实际工作中很难获得随机变量的分布或者概率密度,用矩描述随机变量 2.2 期望基本性质: 2.3 方差定义 2.…

Android Studio Koala Feature Drop 稳定版现已推出

作者 / Android Studio 产品经理 Sandhya Mohan Android Studio Koala Feature Drop (2024.1.2) 现已推出!🐨 🔗 Android Studio https://developer.android.google.cn/studio 今年早些时候,我们宣布每个 Android Studio 动物版本…

10月9日笔记(域内用户登录凭据窃取)

缺:BloodHound自动化分析域环境未实现(环境问题) 获取常见应用软件凭据 为了扩大可访问的范围,测试人员通常会搜索各种常见的密码存储位置,以获取用户凭据。一些特定的应用程序可以存储密码,以方便用户管…

python的特殊方法——魔术方法

前言 __init__(self[]) ​编辑 __call__(self [, ...]) __getitem__(self, key) __len__(self) __repr__(self) / __str__(self) __add__(self, other) __radd__(self, other) 参考文献 前言 官方定义好的,以两个下划线开头且以两个下划线结尾来命名的方法…

PostgreSQL学习笔记四:GUI管理工具

PostgreSQL 是一款广泛使用的开源关系数据库管理系统,拥有许多图形用户界面(GUI)工具来帮助用户更高效地管理数据库。以下是一些流行的 PostgreSQL 管理工具: pgAdmin: 一个流行的开源 PostgreSQL GUI 工具&#xff0c…

处理“navicat premium 2003 - 无法在 192.168.10.140 上连接到 MySQL 服务器(10060“未知错误“)”的问题:

以下是一些可能的解决方法来处理“navicat premium 2003 - 无法在 192.168.10.140 上连接到 MySQL 服务器(10060"未知错误")”的问题: **一、检查 MySQL 服务状态** 1. 确认 MySQL 服务是否正在运行。你可以在服务器上通过任务管…

Django makemigrations时出现TypeError: ‘module‘ object is not iterable

使用Python 3.11、Django 5.1.2 写完model进行makemigrations时出现报错 报错的最下面提到了我自己创建的一个应用里的urls.py,尝试着给里面加上一个列表 然后问题解决了。。。 不知道为什么 makemigrations的时候会去检查urls。。。

mybatisPlus对于pgSQL中UUID和UUID[]类型的交互

在PGSQL中&#xff0c;有的类型是UUID和UUID[]这种类型&#xff0c;在mybatis和这些类型交互的时候需要手动设置类型处理器才可以&#xff0c;这里记录一下类型处理器的设置 /*** UUID类型处理器*/ public class UUIDTypeHandler extends BaseTypeHandler<UUID> {/*** 获…

Kubernetes中的pod管理及优化

华子目录 什么是pod1.创建自主式pod&#xff08;生产不推荐&#xff09;优点缺点示例1示例2示例3示例4 2.利用控制器管理pod&#xff08;推荐&#xff09;应用版本的更新 3.利用yaml文件部署应用优点3.1yaml配置文件参数3.2如何获取资源帮助 yaml文件编写示例1.运行简单的单个容…

实现std::sort,replace,fill,accumulate,equal等函数

std::sort /// <summary>/// std::sort 是从小到大排列的/// </summary>/// <typeparam name"IteratorClass"></typeparam>/// <typeparam name"ComparingFunctions"></typeparam>/// <param name"itBegin&qu…

PAT甲级-1150 Travelling Salesman Problem

题目 题目大意 旅行商问题是NP-hard问题&#xff0c;即没有多项式时间内的解法&#xff0c;但是可以验证答案是否正确。给定一个无向图&#xff0c;判断简单环&#xff0c;复杂环和非环。对应“TS simple cycle”、“TS cycle”、“Not a TS cycle”。还要求出环的最小路径权值…

力扣11-盛最多水的容器

题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器。…

DAY28||39.组合总数 |40.组合总和Ⅱ |131.分割回文串

39.组合总数 题目&#xff1a;39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以…

Java基本数据类型转换

一、自动类型转换 1.基本介绍 当Java程序在进行赋值或者运算时&#xff0c;精度小的类型自动转换为精度大的数据类型&#xff0c;这个就是自动类型转换数据类型按精度&#xff08;容量&#xff09;大小进行排序为&#xff1a; ![在这里插入图片描述](https://i-blog.csdnimg.…

数据中心物理安全的历史和演变

在当今的数字时代&#xff0c;数据中心托管已成为我们互联世界的支柱。这些设施在存储、管理和处理我们日常生活所需的大量信息方面发挥着至关重要的作用。从社交媒体平台和电子商务网站到流媒体服务和云计算&#xff0c;数据中心为我们依赖的数字服务提供支持。 随着企业越来…

K8s-资源管理

一、资源管理介绍 在kubernetes中&#xff0c;所有的内容都抽象为资源&#xff0c;用户需要通过操作资源来管理kubernetes。 kubernetes的本质上就是一个集群系统&#xff0c;用户可以在集群中部署各种服务&#xff0c;所谓的部署服务&#xff0c;其实就是在kubernetes集群中…

【图文并茂】【软件无线电】如何用收音机接收图片,如何将图片编码到不同频点上,捕获在频谱上跳动的MIKU

如何将图片编码到不同频点上&#xff0c;捕获在频谱上跳动的MIKU 这篇文章和数字信号处理有关,或者说跟SDR软件无线电有关,只是考虑这样一个问题,如何将一张图片,编码放到不同的频点上,使得接收方能够通过SDR模块,捕获这样的信号,然后通过绘制频谱,来得到我们编码的那张图片。 …

LVS-DR+Keepalived 高可用群集部署

LVS-DRKeepalived 高可用群集部署 Keepalived 的工作原理LVSKeepalived 高可用群集部署配置负载调度器&#xff08;主、备相同&#xff09;关闭防火墙和核心防护及准备IPVS模块配置keeplived&#xff08;主、备DR 服务器上都要设置&#xff09;启动 ipvsadm 服务调整 proc 响应…

快速区分 GPT-3.5 与 GPT-4

问&#xff1a;鲁迅为什么暴打周树人&#xff1f; GPT3.5回答 各种稀奇古怪的理由 GPT4回答 正确区分鲁迅和周树人是同一个人 国内GPT入口 https://ai-to.cn/url/?ulihaimao

电商商品数据采集||高并发||多语言请求实例演示|京东|淘宝商品详情数据SKU价格

以京东商品数据采集为例 京东商品详情接口数据采集是指通过调用京东提供的商品详情API接口&#xff0c;获取商品的详细信息。以下是一个简单的步骤来实现这个功能&#xff1a; 1. 注册京东开发者账号 首先&#xff0c;你需要注册一个京东开发者账号&#xff0c;并创建一个应…