循环神经网络RNN笔记

server/2024/12/16 11:47:37/

《动手学深度学习》-RNN

0 引言

默认数据都来自于某种分布, 并且所有样本都是独立同分布的 (independently and identically distributed,i.i.d.)。 然而,大多数的数据并非如此。 例如,文章中的单词是按顺序写的,如果顺序被随机地重排,就很难理解文章原始的意思。 同样,视频中的图像帧、对话中的音频信号以及网站上的浏览行为都是有顺序的。 因此,针对此类数据而设计特定模型,可能效果会更好。

另一个问题来自这样一个事实: 我们不仅仅可以接收一个序列作为输入,而是还可能期望继续猜测这个序列的后续。 例如,一个任务可以是继续预测
。 这在时间序列分析中是相当常见的,可以用来预测股市的波动、 患者的体温曲线或者赛车所需的加速度。 同理,我们需要能够处理这些数据的特定模型。
如果说卷积神经网络可以有效地处理空间信息, 那么本章的循环神经网络(recurrent neural network,RNN)则可以更好地处理序列信息。 循环神经网络通过引入状态变量存储过去的信息和当前的输入,从而可以确定当前的输出。

卷积神经网络可以有效地处理空间信息,
循环神经网络则可以更好地处理序列信息。
(recurrent neural network,RNN)
循环神经网络通过引入状态变量存储过去的信息和当前的输入,从而可以确定当前的输出。

1 序列模型

预测明天的股价要比过去的股价更困难, 在统计学中,前者(对超出已知观测范围进行预测)称为外推法(extrapolation), 而后者(在现有观测值之间进行估计)称为内插法(interpolation)。

公式: x t ∼ P ( x t ∣ x t − 1 , … , x 1 ) x_t \sim P(x_t \mid x_{t-1}, \ldots, x_1) xtP(xtxt1,,x1)
如何有效估计 P ( x t ∣ x t − 1 , … , x 1 ) P(x_t \mid x_{t-1}, \ldots, x_1) P(xtxt1,,x1),归结为 自回归模型(autoregressive models)和 隐变量自回归模型(latent autoregressive models)两种策略。

数据存在一个自然的方向,即在时间上是前进的。 很明显,未来的事件不能影响过去。

P ( x t + 1 ∣ x t , x t − 1 ) = P ( x t + 1 ∣ x t ) P(x_{t+1} \mid x_t, x_{t-1}) = P(x_{t+1} \mid x_t) P(xt+1xt,xt1)=P(xt+1xt)
隐马尔可夫模型中的动态规划超出了本节的范围 (我们将在双向循环神经网络再次遇到), 而动态规划这些计算工具已经在控制算法和强化学习算法广泛使用。
越多步的预测,会造成误差的快速累积和预测质量的极速下降。
“通过时间反向传播”仅仅适用于反向传播在具有隐状态的序列模型。

2 GRU

门控循环神经网络可以更好地捕获时间步距离很长的序列上的依赖关系。
重置门有助于捕获序列中的短期依赖关系。
更新门有助于捕获序列中的长期依赖关系。
重置门打开时,门控循环单元包含基本循环神经网络;更新门打开时,门控循环单元可以跳过子序列。

3 LSTM

长短期记忆网络有三种类型的门:输入门、遗忘门和输出门。
长短期记忆网络的隐藏层输出包括“隐状态”和“记忆元”。只有隐状态会传递到输出层,而记忆元完全属于内部信息。
长短期记忆网络可以缓解梯度消失和梯度爆炸。

4 深度RNN

可以将多层循环神经网络堆叠在一起, 通过对几个简单层的组合,产生了一个灵活的机制。 特别是,数据可能与不同层的堆叠有关。 例如,我们可能希望保持有关金融市场状况 (熊市或牛市)的宏观数据可用, 而微观数据只记录较短期的时间动态。
在深度循环神经网络中,隐状态的信息被传递到当前层的下一时间步和下一层的当前时间步。
深度循环神经网络需要大量的调参(如学习率和修剪) 来确保合适的收敛,模型的初始化也需要谨慎。

5 编码器-解码器架构

6 序列到序列学习(seq2seq)

7 序列搜索

序列搜索策略包括贪心搜索、穷举搜索和束搜索。
贪心搜索所选取序列的计算量最小,但精度相对较低。
穷举搜索所选取序列的精度最高,但计算量最大。
束搜索通过灵活选择束宽,在正确率和计算代价之间进行权衡。


http://www.ppmy.cn/server/150620.html

相关文章

任务5 Web服务配置与管理

Web服务概述 Web服务简介 当今人们获取和传播信息的主要方式之一。 Web服务提供的资源多种多样,可能是简单的文本,也可能是图片、音频和视频等多媒体数据。 常用的浏览器有Chrome、Internet Explorer,以及Firefox等。 手机等移动设备成为…

Oracle 临时表空间管理与最佳实践

Oracle 临时表空间管理与最佳实践 内容摘要 本文深入探讨了Oracle数据库中临时表空间的管理和最佳实践。主要内容包括: 临时表空间的概述及其在Oracle 19c多租户架构中的特点临时表空间组的优势及其创建方法非临时表空间组的临时表空间日常维护操作命令临时表空间…

【数据分析】数据分析的职业准则

文章目录 数据分析的基本概念什么是数据分析数据分析分类数字化工作现代数据分析 职业道德行为准则职业道德与行为准则 大数据立法安全隐私原则隐私与安全GDPR准则我国相关法律 数据分析的基本概念 什么是数据分析 广州和深圳那个发展潜力更大? 有的读者觉得广州更…

java缓存技术介绍

1. 缓存(Cache):一种存储数据的组件,通常位于速度较快的存储介质中(如内存),用于临时存储从速度较慢的存储介质(如磁盘)中读取的数据,以减少访问时间并提高系…

Redis学习笔记之——学习计划

Redis——Remote Dictionary Server,开源、基于内存、速度快、key-value... Redis做为一个高性能的键值存储系统,广泛应用于缓存、会话存储、分布式锁以及其他需要快速访问的数据场景中。熟悉掌握redis,似乎已成为广大码农们必备的一项技能。…

【前端】博客系统(页面设计)

目录 1. 预期效果 2. 实现博客列表页 2.1 实现导航栏 2.2 实现版心 2.3 实现个人信息 2.4 实现博客列表 3. 实现博客正文页 3.1 引入导航栏 3.2 引入版心 3.3 引入个人信息 3.4 实现博客正文 4. 实现博客登录页 4.1 引入导航栏 4.2 实现版心 4.3 实现登录框 5.…

python 获取串口,监听串口数据,通过websocket发送数据进行相关操作。

以下是使用 Python 实现同时获取并操作 4 个串口,与 WebSocket 进行数据交互的示例代码框架。这个示例使用了 pyserial 库来操作串口(需要提前安装 pyserial:pip install pyserial),以及 websocket-client 库来处理 We…

canvas给图片与文本加水印

先弄出一个canvas <!DOCTYPE html> <html> <head> <title>Canvas API 示例</title> </head> <body> <canvas id"myCanvas" width"200" height"200" style"border:1px solid #000000;"&…