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

循环神经网络三

一.介绍

在普通的神经网络中,信息的传递是单向的,这种限制虽然使得网络变得更容易学习,单在一定程度上也减弱了神经网络模型的能力。特别是在现实生活中,网络的输出不仅和当前时刻的输入相关,也过去一段时间的输出相关。此外,普通网络难以处理时序任务,比如语言,视频,文本等等,时序数据的长度一般是不固定的,而前馈神经网络要求和输出的维数都是固定的,不能任意改变。所以处理这一类时序相关的问题时,需要一种能力更强的模型

循环神经网络(Recurrent Neural Network,RNN )是一类具有短期记忆的神经网络。在循环神经网络中,神经元不仅可以接收其他神经元的信息,还可以接收自身的信息,形成具有环路的网络结构。

 可以看到RNN比传统的审计网络多了一个循环,这个循环表示在下一个时间步上会返回作为输入的一部分,把RNN时间点展开就是:

就是在t_0时刻x_0输入后返回h_0的同时将h_0当成输入和下一个时间点的x_1一起输入,如此反复 

或者是:当x_t-1输入后返回的结果h_t-1和x_t一起当作输入后通过tanh计算后输出h_t同时向下一个时间点输入h_t

在不同的时间步中,RNN的输入都与之前的时间状态有关,t_n时刻网络的输出和之前的所有历史共同作用的结果。

 

 图1:固定长度的输入和输出,比如图像分类

图2:序列输入,输入一个数据,逐渐分析结果,比如图像转文字

图3:数列输入,输入一些数据,总结后得出结果,比如文本分类

图4:异步的序列输入和输出,比如文本翻译

图5:同步的序列输入和输出,比如根据视频的每一帧来对视频分类

二.LSTM

1.LSTM的基础介绍

假如现在有一个文本预测,比如天上的云朵漂浮在__,通过间隔不愿的位置可以预测到答案是天上。但是对于有些句子,答案可能在很远的位置,间隔非常大,随着间隔的增大对于RNN来说,效果就不怎么好了。而LSTM(Long Short-Term Memory)可以解决这个问题,LSTM是RNN的一种特殊类型,可以长期依赖信息,而RNN只能短期的依赖。

其中x表示相乘,+表示相加,\sigma表示使用某个函数

2.LSYM的核心

LSTM的核心在于单元中的状态,也就是图中最上边那根弦。

如果只要这跟线,那么就不能对信息增加或者删除,所以在LSTM是通过一个叫做门的结构实现的,门可以选择让信息通过或者不通过

这个门主要是通过sigmoid和点乘实现的

sigmoid函数的结果是在0-1之间的,如果结果为0那么就不让这个信息通过,如果是1就全部通过

3.遗忘门

遗忘门是通过sigmoid函数实现的,用来决定哪些信息保留,哪些信息遗忘。

下图就是h_t-1和x_t进行合并后乘上权重和偏置然后通过sigmoid函数,输入一个0-1之间的值,这个值会和前一个细胞输出的状态c_t-1进行点乘,从而决定是遗忘还是保留

4.输入门

i_i是sigmoid函数后,结果在0-1之间,决定哪些信息会被更新,tanh会创造一个新的候选量C_t如果i_i不是0的话可能会添加到细胞中,比如昨天我吃了苹果,今天我想吃梨,通过遗忘门可以遗忘掉苹果,通过输入门可以输入梨。

经过输入门后就可以更新细胞状态了,C_t-1更新为C_t。怎样更新呢

1.旧的细胞状态和遗忘门的结果相乘

2.然后加上输入门和tanh相乘的结果

5.输出门

最后,我们需要决定哪些信息会被输出,和输入门差不多,线通过sigmoid函数结果来决定哪些细胞状态会被输出

1.前一次的输出结果h_t-1和当前时间步输入的x_t组和通过sigmoid函数进行处理后结果

2.在输入门的时候更新过的细胞状态C_t会经过tanh层的处理将数据转换到(-1,1)之间

3.将1和2的结果点乘后得到结果,一个输入结果,一个输入到下一个时间步的结果

三.GPU

GRU(Gated Recurrent Unit),是一种LSTM的变形版本,它将遗忘门和输入门组合成一个“更新门”。它还合并了单元状态和隐藏状态,并进行了一些更改。

1.z_t就是上一次的结果和这一次的数据通过sigmoid函数后的结果

2.r_t和z_t一样

3.h_t一把是r_t和上一次的结果h_t-1点乘后于x_t组合后通过tanh后的结果

4.h_t是z_t通过1-后点乘上一次的结果后加上z_t点乘上h_t一把的结果

r_t到z_t是更新门,而后面的就是输入出门

四.双向LSTM

结合上面的例子,都是对前面的结果进行计算,而一个词语填空有些时候也要看后面的数据。那么就需要有一种计制,能够使模型不仅能够从前面获得记忆,还要从后获得记忆。此时就要用到双向LSTM了。

从图中可以看出,没给x的输入后不仅得到了结果,这个结果还传到了下一个时间步中计算,而且还生成了一个LSTM_b的结果,因为LSTM_0的箭头是从后往前的,所以使得当前这个时步同时拥有了前后的数据。

都看到这里了,一键三连呗!!!

相关文章:

循环神经网络三

一.介绍 在普通的神经网络中,信息的传递是单向的,这种限制虽然使得网络变得更容易学习,单在一定程度上也减弱了神经网络模型的能力。特别是在现实生活中,网络的输出不仅和当前时刻的输入相关,也过去一段时间的输出相关…...

优购电商小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,商品分类管理,商品信息管理,留言板管理,订单管理,系统管理 微信端账号功能包括:系统首页,商品信息&#xf…...

【ARM】v8架构programmer guide(4)_ARMv8的寄存器

目录 4.4Endianness(端序或字节序) 4.5 改变execution state 4.5.1 Registers at AArch32 4.5.2 PSTATE at AArch32 4.6 NEON 和浮点数寄存器 4.6.1 AArch64中浮点寄存器的组织结构 4.6.2 标量寄存器大小 4.6.3 向量寄存器大小 4.6.4 NEON在AArc…...

Java设计模式详细讲解

目录 设计模式概述 1.1 什么是设计模式1.2 设计模式的类型1.3 设计模式的历史与发展1.4 设计模式在软件开发中的重要性 创建型模式 2.1 单例模式2.2 工厂方法模式2.3 抽象工厂模式2.4 建造者模式2.5 原型模式 结构型模式 3.1 适配器模式3.2 装饰器模式3.3 代理模式3.4 外观模…...

图论------弗洛伊德(Floyd-Warshall)算法

题目描述: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的 T-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助…...

C#实现动画效果

在C#中,实现动画效果通常可以使用Windows Forms的Timer类或者使用System.Windows.Media.Animation命名空间下的类(如果是WPF应用)。以下是一个Windows Forms应用中使用Timer类来创建简单的动画效果的例子。 假设我们有一个窗体(F…...

Git 对比 SVN 的区别和优势

引言 版本控制系统(VCS)是软件开发过程中不可或缺的一部分,它们用于管理代码的变更、协调开发团队的工作。Git 和 SVN(Apache Subversion)是目前最流行的两个版本控制系统。本文将详细分析 Git 和 SVN 的区别及各自的…...

Qt实现无边框窗口的拖动和缩放

在使用QT创建窗体的时候,为了使窗口美化,通常不使用QT自带的边框。会调用下面函数去除窗体边框。 setWindowFlags(Qt::FramelessWindowHint) 但是有个问题,当去除了QT自带边框后,窗体就变得不能移动了,也不能改变窗口大…...

入门岛2-python实现wordcount并进行云端debug

书生大模型学习 任务: 1.实现一个wordcount函数,统计英文字符串中每个单词出现的次数。返回一个字典,key为单词,value为对应单词出现的次数。 2.Vscode连接InternStudio debug TIPS:记得先去掉标点符号,然后把每个单词…...

c语言-链表1

10 链表 一、链表是什么? -- 数据的一种存储方式 -- 链式存储 (1)线性存储 -- 地址连续 -- 自动开辟,自动释放 -- 默认是线性存储 (2)链式存储 -- 地址不连续…...

你好! Git——企业级开发模型

企业级开发模型(6) 一、删除远程分支,git branch -a (查看所有本地分支与远程分支)还能看到已经删除的分支,怎么解决?二、企业级开发流程2.1 企业级开发流程2.2 系统开发环境 三、Git分支设计模…...

力扣面试150 查找和最小的 K 对数字 最小堆 去重

Problem: 373. 查找和最小的 K 对数字 &#x1f468;‍&#x1f3eb; 参考题解 class Solution {public List<List<Integer>> kSmallestPairs(int[] nums1, int[] nums2, int k) {// 创建一个大小为 k 的结果列表&#xff0c;用于存储和最小的 k 个数对List<Li…...

Oceanbase 执行计划

test100 CREATE TABLE `test100` ( `GRNT_CTR_NO` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT 担保合同编号, `GRNT_CTR_TYP` varchar(3) COLLATE utf8mb4_bin NOT NULL COMMENT 担保合同类型, `COLC_GRNT_IND` varchar(1) COLLATE utf8mb4_bin DEFAULT NULL …...

精品丨模型关系介绍

PowerBI中的模型关系相信小伙伴们都不会感觉到陌生&#xff0c;因为一份优秀的报表无法离开数据模型的支撑。 对比其它BI类工具而言&#xff0c;白茶认为其建模功能才是最为突出的功能点。 模型关系类型 PowerBI中我们常用的模型关系一共包含5类&#xff1a; 一对一关系(1:1) …...

CentOS7 配置 nginx 和 php 方案

配置方案 一、安装软件二、编写配置文件&#xff0c;连接PHP三、引用文件四、测试 鉴于网上教程错综复杂&#xff0c;写下一这篇文章 本教程只需要三步即可 一、安装软件 yum install -y nginx php php-fpm二、编写配置文件&#xff0c;连接PHP 一般情况下在安装完 nginx 后…...

Promise.all全面解析:使用方法与实战技巧

Promise是JavaScript中处理异步操作的重要机制&#xff0c;它提供了一种优雅的方式来处理异步回调&#xff0c;避免了传统回调地狱的问题。而Promise.all作为Promise的一个静态方法&#xff0c;更是在处理多个异步操作时发挥着关键作用。本文将全面解析Promise.all的使用方法&a…...

NLP从零开始------9文本进阶处理之文本相似度计算

1.文本相似度计算简介 在自然语言处理中&#xff0c;经常会涉及度量两个文本相似度的问题。在诸如对话系统和信息减速等中&#xff0c;度量句子或短语之间的相似度尤为重要。在新闻学传媒中应用文本相似度可以帮助读者快速检索到想要了解的报道。 文本相似度的定义式如下所示&a…...

Electron 在 MAC 上的 build 签名应用配置

Electron 在 MAC 上的 build 签名应用配置涉及多个步骤,包括准备开发者账号、生成证书和配置文件、配置环境变量以及使用适当的工具进行签名和公证。以下是一个详细的配置流程: 一、准备开发者账号 首先,你需要在 Apple 开发者网站 注册并拥有一个开发者账号。这个账号将用…...

15 交换机命令行配置

交换机命令行配置 一、交换机命令行基本配置 &#xff08;一&#xff09;配置主机名 Switch>enable Switch#configure terminal Switch(config)#hostname S1&#xff08;二&#xff09;查看配置信息 Switch#show running-config Building configuration...Current confi…...

工作流之Flowable与SpringBoot结合

文章目录 1 Flowable1.1 flowable-ui部署运行1.2 绘制流程图1.2.1 绘制1.2.2 绘图细节1.2.3 bpmn文件导入 1.3 后台项目搭建1.3.1 pom.xml1.3.2 数据库表说明 1.4 流程引擎API与服务1.4.1 主要API1.4.2 示例 1 Flowable 1.1 flowable-ui部署运行 flowable-6.6.0 运行 官方dem…...

基于Arduino与应变片传感器的高精度厨房电子秤DIY全攻略

1. 项目概述&#xff1a;用Arduino打造一台高精度厨房电子秤作为一个喜欢在厨房里折腾的硬件爱好者&#xff0c;我经常遇到需要精确称量食材的场合。市面上的电子秤要么精度不够&#xff0c;要么价格不菲&#xff0c;要么功能单一。于是&#xff0c;我萌生了自己动手做一台的想…...

从社交关系到分子结构:图解GCN(图卷积网络)到底在‘看’什么?

从社交关系到分子结构&#xff1a;图解GCN&#xff08;图卷积网络&#xff09;到底在‘看’什么&#xff1f;想象一下&#xff0c;你刚搬到一个新社区&#xff0c;想快速了解周围的邻居。最直接的方式是什么&#xff1f;不是挨家挨户敲门&#xff0c;而是通过社区活动认识几位关…...

【DeepSeek测试用例生成实战指南】:20年QA专家亲授5大高覆盖率生成模式与3个避坑红线

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;DeepSeek测试用例生成的核心价值与适用边界 DeepSeek系列大模型在代码理解与生成任务中展现出显著的上下文建模能力&#xff0c;其测试用例生成功能并非通用“黑盒测试器”&#xff0c;而是聚焦于**单元级、函…...

告别FTP龟速:用NTFS-3G在CentOS7上直连移动硬盘拷贝200G大文件

告别FTP龟速&#xff1a;用NTFS-3G在CentOS7上直连移动硬盘拷贝200G大文件当面对数百GB的设计素材、日志文件或数据库备份需要迁移时&#xff0c;传统的FTP传输往往会成为效率瓶颈。我曾在一个视频处理项目中&#xff0c;需要将230GB的4K原始素材从移动硬盘导入服务器&#xff…...

腾讯 Marvis 初级使用教程——从安装到上手

腾讯最新系统级AI助手Marvis&#xff08;2026年5月20日发布&#xff09;&#xff0c;官网 https://marvis.qq.com&#xff0c;主打“一句话操作电脑”、跨端协同、GUI Agent执行。虽然是个【小龙虾】&#xff0c;但上手其实不难。这篇就简单写写 Marvis 的安装和基础使用&#…...

碧蓝航线自动化脚本终极指南:3小时学会全自动游戏管理

碧蓝航线自动化脚本终极指南&#xff1a;3小时学会全自动游戏管理 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研&#xff0c;全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 还在为碧蓝…...

为你的Hermes Agent自定义Provider,接入Taotoken多模型池

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为你的Hermes Agent自定义Provider&#xff0c;接入Taotoken多模型池 在构建复杂的AI应用时&#xff0c;开发者常常面临一个核心挑…...

如何快速解锁中兴光猫权限:zteOnu工具完整使用指南

如何快速解锁中兴光猫权限&#xff1a;zteOnu工具完整使用指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 中兴光猫作为家庭网络的核心设备&#xff0c;其强大的硬件性能常常被默认…...

统信UOS浏览器书签同步难题?一招搞定所有新用户默认书签配置

统信UOS浏览器书签批量配置&#xff1a;系统管理员的高效部署指南在企业或教育机构的IT运维工作中&#xff0c;统信UOS作为国产操作系统的代表&#xff0c;其浏览器书签的统一管理常常成为系统管理员面临的挑战。想象一下&#xff0c;每当有新员工入职或学生入学&#xff0c;都…...

Unity塔防底层架构:ScriptableObject驱动的数据契约设计

1. 这不是“又一个塔防模板”&#xff0c;而是塔防开发的底层操作系统我第一次在Asset Store点开Tower Defense Toolkit 4&#xff08;TDTK-4&#xff09;的预览图时&#xff0c;下意识划走了——界面太“干净”了&#xff0c;没有炫酷的粒子特效演示&#xff0c;没有满屏飞舞的…...