深度学习:手撕 RNN(1)-RNN 的直观认识

news2024/11/19 9:25:23

 本文首次发表于知乎,欢迎关注作者。

1. RNN是什么

RNN(Recurrent Neural Network)存在很多变体,为了方便叙述和理解,本文选取一个基本的 RNN 结构进行说明,该结构与 pytorch 中的 RNN 函数([1])相同。

对于 MLP 或者 CNN 架构的模型,每一个输入x_i, 仅有一个 label y_i 与之对应,不同样本之间的输入和输出没有依赖关系。如图 1-1, 给 CNN 模型展示“北极熊”的图片,模型输出“北极熊”,给模型展示“小猫”的图片,模型输出“小猫”,“北极熊”和“小猫”之间没有任何联系,像这种模型属于“one-shot” 模型。但我们的人脑不是“one-shot”模型,我们的人脑不断的接收信息,然后再结合以前的经验和记忆,处理当前的信息,最后得到输出,然后再将相关信息传递给下一个时刻。比如看到“北极熊”时,我们的大脑当前时刻输出为“北极熊”,下一个时刻输出“逃跑”;看到“小猫”时,当前时刻大脑识别出“小猫”,下一时刻大脑输出“抚摸小猫”。

图 1-1: CNN 输入输出模式

对于非“one-shot”的模型,在处理每个时刻的输入数据时,模型还结合了过去时刻的“经验”或者“记忆”,这样不同时刻的输入/输出便存在了依赖关系。对于某些任务,不同样本 x_i 的 label y_i 存在一些依赖关系,我们需要设计一个模型刻画不同 label y_i 的依赖关系。如 NLP 领域的序列标注问题,或者股票的价格预测问题,在这些任务中,每一个时刻的输出不仅仅取决于当前时刻的输入,而且还依赖前一个时刻的相关信息 (经验/记忆)。基于这些需求,人们设计出 RNN(Recurrent Neural Network)。如图 1-2, 将一个 RNN 模块按照不同时刻进行展开。

图 1-2: RNN 不同时刻展开

我们可以看到,每个时刻的 Cell,将过去时刻的隐状态 (经验/记忆)h_{t-1} 与当前时刻的输入 x_t 结合生成新的隐状态 (经验/记忆), 为了方便理解我们将隐状态也叫做 memory:

然后再将 memory h_t 通过 MLP 的变换后得到输出 y_t :

本文描述了一个基本的 RNN 的运行机制,以及它的内部结构。RNN 的特点是在每个时刻不仅有当前时刻的输入 x_t ,而且还有上一个时刻的 memory h_t ,这样使不同时刻的数据关联起来。下一篇文章我们以这个基本的 RNN 为单元,搭建常见的 RNN 架构。

2. 参考

 pytorch 的 RNN 文档 RNN — PyTorch 2.3 documentation

3. 团队介绍

「三翼鸟数字化技术平台-智慧设计团队」依托实体建模技术与人工智能技术打造面向家电的智能设计平台,为海尔特色的成套家电和智慧场景提供可视可触的虚拟现实体验。智慧设计团队提供全链路设计,涵盖概念化设计、深化设计、智能仿真、快速报价、模拟施工、快速出图、交易交付、设备检修等关键环节,为全屋家电设计提供一站式解决方案。

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

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

相关文章

c语言:strcmp

strcmp函数是用于比较两个字符串的库函数,其功能是根据ASCII值逐一对两个字符串进行比较。 语法:strcmp(str1, str2) 返回值: 如果str1等于str2,则返回0。 如果str1小于str2,则返回负数(具体值取决于C…

Go微服务: 日志系统ELK核心架构设计

微服务日志系统建设 1 )为什么需要日志系统 业务发展越来越庞大,服务器越来越多各种访问日志,应用日志,错误日志量越来越多,无法管理开发人员排查问题,需要到服务器上查日志 2 )Elastic Stack…

Vue从入门到实战 Day08~Day10

智慧商城项目 1. 项目演示 目标:查看项目效果,明确功能模块 -> 完整的电商购物流程 2. 项目收获 目标:明确做完本项目,能够收获哪些内容 3. 创建项目 目标:基于VueCli自定义创建项目架子 4. 调整初始化目录 目…

刷题之和为k的数组(leetcode)

和为k的数组 这个思路一直想不到&#xff0c;参考了官方答案&#xff0c;哈希表记录[0,i]的和 class Solution { public:int subarraySum(vector<int>& nums, int k) {int result0;unordered_map<int, int>map;int pre0;//前缀和&#xff08;前面的和&…

必应崩了?

目录 今天使用必应发现出现了不能搜索&#xff0c;弹出乱码的情况。 搜了一下&#xff0c;发现其他人也出现了同样的问题。 使用Edge浏览器的话&#xff0c;可以试着改一下DNS&#xff0c;有可能会恢复正常&#xff08;等官方修复了记得改回来&#xff09; 使用谷歌浏览器打开…

哪些AI写作软件好用,这三款强大的AI写作软件必知

在当今信息爆炸的时代&#xff0c;AI写作软件逐渐成为许多人提高写作效率和质量的得力助手。面对众多的选择&#xff0c;哪些AI写作软件真正好用呢&#xff1f;以下为大家介绍三款强大的AI写作软件。 第一款&#xff1a;火呱AI写作 它凭借其强大的语言理解和生成能力脱颖而出。…

C++随机数生成神器:rand(),让你的代码更加引人入胜!

更多资源请关注纽扣编程微信公众号 使用 rand 函数可以获取 机数大小是在0到RAND_MAX&#xff0c;值为2147483647&#xff0c;它是在stdlib中定义的&#xff0c;如果我们希望在某个范围内&#xff0c;可以使用 % 结合 / 来实现 但是不难发现&#xff0c;这里获得的随机数是…

k8s 1.24.x之后如果rest 访问apiserver

1.由于 在 1.24 &#xff08;还是 1.20 不清楚了&#xff09;之后&#xff0c;下面这两个apiserver的配置已经被弃用 了&#xff0c;简单的说就是想不安全的访问k8s是不可能了&#xff0c;所以只能走安全的访问方式也就是 https://xx:6443了&#xff0c;所以需要证书。 - --ins…

MySQL 主备环境搭建 docker

MySQL 主备环境搭建 docker 拉取docker镜像 sudo docker pull mysql:8.0 启动容器 docker run -p 3339:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD123456 -d mysql:8.0docker run -p 3340:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD123456 -d mysql:8.0配置 M…

通过域名接口申请免费的ssl多域名证书

来此加密已顺利接入阿里云的域名接口&#xff0c;用户只需一键调用&#xff0c;便可轻松完成域名验证&#xff0c;从而更高效地申请证书。接下来&#xff0c;让我们详细解读一下整个操作过程。 来此加密官网 免费申请SSL证书 免费SSL多域名证书&#xff0c;泛域名证书。 首先&a…

linux 错误记录(三)

这里的内核源码路径&#xff1a; cd /usr/src/linux-headers-5.4.0-150-generic/ 内核版本&#xff1a; $ uname -r 5.4.0-150-generic 错误现象 ./include/uapi/asm-generic/int-ll64.h:12:10: fatal error: asm/bitsperlong.h: No such file or directory 搜索后是有的 …

STM32控制HC-SR04超声模块获取距离

欢迎入群共同学习交流 时间记录&#xff1a;2024/5/23 一、模块介绍 &#xff08;1&#xff09;引脚介绍 VCC&#xff1a;电源引脚&#xff0c;接单片机3.3/5V GND&#xff1a;电源地 Trig&#xff1a;超声信号触发引脚 Echo&#xff1a;超声信号接收引脚 &#xff08;2&…

热红外传感器

热红外传感器 一、热红外测温原理二、热红外传感器三、MLX90640-D55(MLX90640-BAB)测试 一、热红外测温原理 自然界中当物体的温度高于 绝对零度 时&#xff0c;由于它内部 热运动 的存在,就会不断地向四周辐射电磁波&#xff0c;其中就包含了波段位于0.75&#xff5e;100μm …

Unity Render入门

概述 在unity中渲染相关的组件是和Render关联的&#xff0c;比如我们常见的3D模型中的MeshRender&#xff0c;UI中的RenderCanvas等都是和Render相关联的&#xff0c;相信在unity的学习过程中&#xff0c;一定看到过非常多和Render相关的内容&#xff0c;那让我们学习一下这部…

Invoking “make cmake_check_build_system“ failed

前言&#xff1a; 在看过站内其他的方法且试过之后没奏效之后&#xff0c;偶然&#xff0c;无意间&#xff0c;随手整对了&#xff0c;然后后续在老赵的文档也找到了原因&#xff0c;对的上号&#xff0c;那在此我提出一种新的方法&#xff0c;且很简单的小tips。首先先来看看…

对列表进行统计和计算

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Python的列表提供了内置的一些函数来实现统计、计算的功能。下面介绍几种常用的功能。 &#xff08;1&#xff09;获取指定元素出现的次数 使用列表…

shell 脚本笔记2

3.env与set区别 env用于查看系统环境变量 set用于查看系统环境变量自定义变量函数 4.常用环境变量 变量名称含义PATH命令搜索的目录路径, 与windows的环境变量PATH功能一样LANG查询系统的字符集HISTFILE查询当前用户执行命令的历史列表 Shell变量&#xff1a;自定义变量 目标…

极光笔记|EngageLab AppPush引入全封装语音播报SDK

推送语音播报简介 语音播报是一种通知方式&#xff0c;在收到通知的时候&#xff0c;用户不用拿起手机查看&#xff0c;直接通过语音播报方式了解通知内容&#xff0c;节省时间提高工作效率。主要适用于商家交易收费通知&#xff0c;用户之间转账通知、公交车到站等场景。 语…

虚拟机安装Windows server 2022时蓝屏Boot Manager解决方案

文章目录 问题一、问题思路分析二、解决方案总结 问题 我在VMware虚拟机中安装Windows server 2022时无法正常安装&#xff0c;会进入Boot Manager界面 点击 Boot normally后过一会儿还会跳转到此页面 一、问题思路分析 简单的判断一下这是一个引导问题&#xff0c;那么可能是…

容器组件:栅格布局,侧边栏容器(HarmonyOS学习第四课【4.5】)

栅格布局 栅格布局可以为布局提供规律性的结构&#xff0c;解决多尺寸多设备的动态布局问题&#xff0c;保证不同设备上各个模块的布局一致性。 栅格容器组件&#xff0c;仅可以和栅格子组件(GridCol)在栅格布局场景中使用。 说明 该组件从API Version 9开始支持。后续版本…