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

机器学习--循环神经网络(RNN)1

一、简介

循环神经网络(Recurrent Neural Network)是深度学习领域中一种非常经典的网络结构,在现实生活中有着广泛的应用。以槽填充(slot filling)为例,如下图所示,假设订票系统听到用户说:“我想在 6 月 1 日抵达上海。”,系统有一些(slot):目的地和到达时间,系统要自动知道这边的每一个单词是属于哪一个槽,比如“上海”属于目的地槽,“6 月 1 号”属于到达时间槽。
在这里插入图片描述
这个问题可以用一个前馈神经网络(feedforward neural network)解决,如下图所示,输入是一个单词,把“上海”变成一个向量,“丢”到这个神经网络里面。要把一个单词丢到一个神经网络里面去,就必须把它变成一个向量。
在这里插入图片描述
把单词变成一个向量,我们又需要用到我们之前介绍过很多次的独热编码(向量的大小是词
典大小。每一个维度对应词典的一个单词。对应单词的维度为 1,其他为 0。)
在这里插入图片描述
这里会有一个问题:因为很多单词可能都没有见过,所以需要在独热编码里面多加维度,用一个维度代表 other,如下图所示。如果不是在词表中,有的单词就归类到 other 里面去。
在这里插入图片描述

我们可以用每一个单词的字母来表示它的向量,比如单词是 apple,apple 里面有出现 app、ple、ppl,在这个向量里面对应到 app、ple、ppl 的维度就是 1,其他都为 0。
在这里插入图片描述

假设把单词表示为向量,把这个向量丢到前馈神经网络里面去,在该任务里面,输出是一个概率分布,该概率分布代表着输入单词属于每一个槽的概率,比如“上海”属于目的地的概率和“上海”属于出发地的概率。
在这里插入图片描述

但是前馈网络会有问题,如下图所示,假设用户 1 说:“在 6 月 1 号抵达上海”。用户 2 说:“在 6 月 1 号离开上海”,这时候“上海”就变成了出发地。
在这里插入图片描述

但是对于神经网络,输入一样的东西,输出就应该是一样的东西。在例子中,输入“上海”,输出要么让目的地概率最高,要么让出发地概率最高。不能一会让出发地的概率最高,一会让目的地概率最高。

如果神经网络有记忆力的,它记得它看过“抵达”,在看到“上海”之前;或者它记得它已经看过“离开”,在看到“上海”之前。通过记忆力,它可以根据上下文产生不同的输出。如果让神经网络是有记忆力,其就可以解决输入不同的单词,输出不同的问题。

二、循环神经网络(RNN)

这种有记忆的神经网络称为循环神经网络。在 RNN 里面,每一次隐藏层的神经元产生输出的时候,该输出会被存到记忆元(memory cell)(可简称为单元),图中的蓝色方块表示记忆元。
在这里插入图片描述
下一次有输入时,这些神经元不仅会考虑输入 x1, x2,还会考虑存到记忆元里的值。x1, x2以及存在记忆元里的值 a1, a2 都会影响神经网络的输出。

举个例子,假设下图中的神经网络所有的权重都是 1(w=1),所有的神经元没有任何的偏置(bias)(b=0)。假设所有的激活函数都是线性的(y=x),输入是序列 [1, 1]T, [1, 1]T, [2, 2]T, · · · ,所有的权重都是 1。
把这个序列输入到神经网络里面去会发生什么事呢?要使用这个循环神经网络的时候,必须要给记忆元初始值,设初始值都为是 0。输入第一个 [1, 1]T,对左边的神经元(第一个隐藏层),其除了接到输入的 [1, 1]T,还接到了记忆元 (0 跟 0),输出就是 2。
简单解释一下计算过程:激活函数全是y=x,左边的神经元的输出等于两个输入经过激活函数得到的y,再加上两个记忆元中记录的值。
在这里插入图片描述
同理,右边神经元的输出为 2,第二层隐藏层输出(第一个隐藏层通过激活函数也是y=x,两个y相加)为 4。
接下来循环神经网络会将绿色神经元的输出存在记忆元里去,所以记忆元里面的值被更新为2。

如下图所示,接下来再输入 [1, 1]T,接下来绿色的神经元输入为 [1, 1]T、[2, 2]T,输出为 [6, 6]T,第二层的神经元输出为 [12, 12]T。所以因为循环神经网络有记忆元,就算输入相同,输出也可能不一样。
在这里插入图片描述

同样的过程,[6, 6]T 存到记忆元里去,接下来输入是 [2, 2]T,输出为 [16, 16]T;第二层隐藏层为 [32, 32]T。在做循环神经网络时,它会考虑序列的顺序,输入序列调换顺序之后输出不同。
在这里插入图片描述

三、RNN架构

还是用之前的例子,用户说:“我想在 6 月 1 日抵达上海”,“抵达”就变成了一个向量“丢”到神经网络里面去,神经网络的隐藏层的输出为向量 a1,a1产生“抵达”属于每一个槽填充的概率 y1。

接下来 a1 会被存到记忆元里面去,“上海”会变为输入,这个隐藏层会同时考虑“上海”这个输入和存在记忆元里面的 a1,得到 a2。根据 a2 得到y2,y2 是属于每一个槽填充的概率。(三次使用的相同的神经网络)
在这里插入图片描述

有了记忆元以后,输入同一个单词,希望输出不同的问题就有可能被解决。
如下图所示,同样是输入“上海”这个单词,但是因为红色“上海”前接了“离开”,绿色“上海”前接了“抵达”,“离开”和“抵达”的向量不一样,隐藏层的输出会不同,所以存在记忆元里面的值会不同。
虽然 x2的值是一样的,因为存在记忆元里面的值不同,所以隐藏层的输出会不同,所以最后的输出也就会不一样。
在这里插入图片描述

相关文章:

机器学习--循环神经网络(RNN)1

一、简介 循环神经网络(Recurrent Neural Network)是深度学习领域中一种非常经典的网络结构,在现实生活中有着广泛的应用。以槽填充(slot filling)为例,如下图所示,假设订票系统听到用户说&…...

基于java+springboot+vue实现的学生信息管理系统(文末源码+Lw+ppt)23-54

摘 要 人类现已进入21世纪,科技日新月异,经济、信息等方面都取得了长足的进步,特别是信息网络技术的飞速发展,对政治、经济、军事、文化等方面都产生了很大的影响。 利用计算机网络的便利,开发一套基于java的大学生…...

【漏洞复现】Linksys E2000 position.js 身份验证绕过漏洞(CVE-2024-27497)

0x01 产品简介 Linksys E2000是一款由思科(Cisco)品牌推出的无线路由器,它是一款支持2.4GHz和5GHz双频段的无线路由器,用户可以避开拥挤的2.4GHz频段,独自享受5GHz频段的高速无线生活。 0x02 漏洞概述 Linksys E200…...

小白跟做江科大51单片机之DS1302可调时钟

原理部分 1.DS1302可调时钟介绍 单片机定时器主要占用CPU时间,掉电不能继续运行 图1 2.原理 图2 内部有寄存器,寄存的时候以时分秒寄存,以通信协议实现数据交互,就可以实现对数据进行访问和读写 3.主要寄存器定义 CE芯片使能…...

2024蓝桥杯每日一题(归并排序)

一、第一题:火柴排队 解题思路:归并排序 重点在于想清楚是对哪个数组进行归并排序求逆序对 【Python程序代码】 from math import * n int(input()) a list(map(int,input().split())) b list(map(int,input().split())) na,nb [],[] for …...

生成对抗网络 (GAN)

生成对抗网络(Generative Adversarial Networks,GAN)是由Ian Goodfellow等人在2014年提出的一种深度学习模型。GAN由两部分组成:一个生成器(Generator)和一个判别器(Discriminator)&…...

QGridLayout网格布局和QVBoxLayout垂直布局有着非常大的差别

QGridLayout网格布局:1.把这块控件划分成一个个的 单元格 2.把你的控件填充进入 单元格 3.这些有关限制大小的函数接口统统失效 setMaximumWidth() setMinimumWidth() setPolicySize()图示:我是用的网格布局,左边放QT…...

HCIA-HarmonyOS设备开发认证V2.0-习题2

目录 习题一习题二坚持就有收获 习题一 # 判断题## 1.PWM占空比指的是低电平时间占周期时间的百分比。(错误)正确(True)错误(False)解题: - PWM占空比指的是高电平时间占周期时间的百分比## 2.UART是通用异步收发传输器,是通用串行数据总线,…...

【npm】前端工程项目配置文件package.json详解

简言 详细介绍了package.json中每个字段的作用。 package.json 本文档将为您介绍 package.json 文件的所有要求。它必须是实际的 JSON,而不仅仅是 JavaScript 对象文字。 如果你要发布你的项目,这是一个特别重要的文件,其中name和version是…...

Python快速入门系列-2(Python的安装与环境设置)

第二章:Python的安装与环境设置 2.1 Python的下载与安装2.1.1 访问Python官网2.1.2 安装Python对于Windows用户对于macOS用户对于Linux用户 2.2 集成开发环境(IDE)的选择与设置2.2.1 PyCharm2.2.2 Visual Studio Code2.2.3 Jupyter Notebook2…...

Linux的环境安装以及项目部署

LInux软件安装 是在发行版是CentOS下安装 通常使用yum安装,可以在rpm上增加了自动解决依赖的功能 传输安装包方式安装JDK与tomcat 安装JDK ●安装包:将.gz文件通过Xftp传输到/opt目录下准备安装 ●解压:进入/opt目录,使用命令tar -zxvf 压缩包名称 (名称…...

ASUS华硕天选2锐龙版笔记本电脑FA506ICB/FA706IC原装出厂Windows11系统,预装OEM系统恢复安装开箱状态

链接:https://pan.baidu.com/s/122iHHEOtNUu4azhVPnxNuA?pwdsqk7 提取码:sqk7 适用型号: FA506IM、FA506IE、FA506IC、FA506IHR FA506IR、FA506IHRB、FA506ICB、FA506IEB FA706IM、FA706IE、FA706IC、FA706IHR FA706IR、FA706IHRB、F…...

登录校验认证

会话技术 会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应。 会话跟踪: 一种维护浏览器状态的方法,服务器需要识别多次请…...

Kubernetes 几大概念的作用

更详细的组件通信流程 Kubernetes 主要由以下几个核心组件组成: 1. etcd 保存了整个集群的状态; 2. API Server 提供了资源操作的唯一入口,并提供认证,授权,访问控制,API 注册和发现等机制; …...

力扣199. 二叉树的右视图(DFS,BFS)

Problem: 199. 二叉树的右视图 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 无论是DFS还是BFS我们都要思考到达二叉树的每一层(或者每一层中的每一个节点)时,我们都该如何按题目要求做出对应得处理!!!在本体中我们主要是&#x…...

[数据集][目标检测]光伏板太阳能版缺陷检测数据集VOC+YOLO格式2400张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2400 标注数量(xml文件个数):2400 标注数量(txt文件个数):2400 标注…...

根据QQ号获取暗恋的人的全部歌单

文章目录 前言一、成果展示二、后端开发流程三、前后端障碍与难点解决四、待扩展内容五、总结 前言 本人喜欢使用QQ音乐听歌,并且喜欢点击好友栏目观看最近在听,了解暗恋的人最近在听什么歌曲,知己知彼,百战不殆。但是每次都需要…...

解决火狐浏览器访问地址受限制问题(This address is restricted)

问题如下图: This address is restrictedThis address uses a network port which is normally used for purposes other than Web browsing. Firefox has canceled the request for your protection. 此地址受到限制 此地址使用通常用于 Web 浏览以外的目的的网…...

基于MPPT的太阳能光伏电池simulink性能仿真,对比扰动观察法,增量电导法,恒定电压法

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 扰动观察法 (Perturb and Observe Method) 4.2 增量电导法 (Incremental Conductance Method) 4.3 恒定电压法 (Constant Voltage Method) 5.完整工程文件 1.课题概述 在simulink中,实…...

HUAWEI 华为交换机 配置 MAC 防漂移 防MAC伪造示例

组网需求 某企业网络中,用户需要访问企业的服务器。如果某些非法用户从其他接口假冒服务器的MAC 地址发送报文,则服务器的 MAC 地址将在其他接口学习到。这样用户发往服务器的报文就会发往非法用户,不仅会导致用户与服务器不能正常通信&…...

如何突破Windows窗口限制?WindowResizer终极调整指南

如何突破Windows窗口限制?WindowResizer终极调整指南 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 你是否曾被那些顽固的Windows窗口所困扰?有些应用程序…...

AGI伦理红线被重写?:2026奇点大会三大情感建模协议首次公开,仅限首批认证开发者接入

第一章:2026奇点智能技术大会:AGI与情感智能 2026奇点智能技术大会(https://ml-summit.org) AGI演进的关键拐点 2026年大会首次将通用人工智能(AGI)的评估标准从任务泛化能力延伸至跨模态因果推理与自主目标重构能力。主流框架如…...

暗黑3终极宏工具D3KeyHelper:如何轻松实现技能自动化连点

暗黑3终极宏工具D3KeyHelper:如何轻松实现技能自动化连点 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 暗黑破坏神3作为一款需要频繁操…...

掌控系统散热:FanControl智能风扇控制完全指南

掌控系统散热:FanControl智能风扇控制完全指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanCon…...

PUBG-Logitech自动压枪系统深度解析与技术优化指南

PUBG-Logitech自动压枪系统深度解析与技术优化指南 【免费下载链接】PUBG-Logitech PUBG罗技鼠标宏自动识别压枪 项目地址: https://gitcode.com/gh_mirrors/pu/PUBG-Logitech PUBG-Logitech是一款基于罗技鼠标宏API与计算机视觉技术的高级游戏辅助工具,通过…...

别再手动算排名了!用Python+TOPSIS算法5分钟搞定多指标决策(附完整代码)

用PythonTOPSIS算法5分钟搞定多指标决策分析 每次面对一堆Excel表格,需要从十几个维度评估供应商、产品方案或投资项目时,你是否也经历过这样的痛苦?手动计算权重、标准化数据、反复核对公式...往往花了大半天时间,最后还发现某个…...

在Linux上用BlueZ连接蓝牙手柄,内核驱动不识别VID/PID怎么办?

Linux蓝牙手柄驱动深度调试:当BlueZ连接成功但内核不识别VID/PID时 蓝牙手柄在Linux系统上的支持一直是个令人头疼的问题。特别是当你用BlueZ工具成功建立连接后,却发现系统根本没有创建对应的输入设备节点——这种"连接成功但无法使用"的状态…...

MelonLoader终极指南:Unity游戏模组加载器快速上手教程

MelonLoader终极指南:Unity游戏模组加载器快速上手教程 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 核心关键词&…...

【LeetCode HOT100】54. 螺旋矩阵——模拟遍历与边界收缩双解法

题目描述 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: text 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: text 输入&…...

QQ音乐加密音频解密完全指南:qmcdump让你的音乐重获自由播放权

QQ音乐加密音频解密完全指南:qmcdump让你的音乐重获自由播放权 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump …...