循环神经网络RNN笔记

embedded/2024/12/27 13:19:53/

《动手学深度学习》-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/embedded/145606.html

相关文章

2024互联网大厂Java面试高频面试真题汇总

2024快要过去,LZ看到很多小伙伴在面试的时候都拿到了自己心仪的Offer,同时也在各大论坛博客平台看到了大家分享出来的面经,面试题。趁着年末时间多,公司上我手头的活基本完事了,就在业余时间把阿里,字节等大…

数据工程师的数据治理指南

1.什么是数据治理 “对数据资产管理行使权力、控制和共同决策(规划、监控和执行)。”是 DMBOK 对数据治理的官方定义。然而,在调查这一主题时,我们发现数据治理有多种定义,这些定义大多重叠,但有时又不重叠…

蜂鸟视图微程序:低代码赋能室内导航应用开发

随着数字化转型的深入,室内导航应用的需求日益增加。然而,传统的开发模式往往成本高、周期长、门槛高,给企业带来诸多挑战。 蜂鸟视图微程序应运而生,通过低代码技术赋能开发者,快速构建高性能室内地图导航应用&#…

海康萤石摄像机接入EasyNVR流程:开启RTSP-》萤石视频添加到EasyNVR-》未来支持海康SDK协议添加到EasyNVR

EasyNVR目前支持GB28181、RTSP、ONVIF、RTMP(推流)这几种协议接入,目前正在增加海康HIKSDK、大华DHSDK等几种SDK的接入,我们今天就介绍一下萤石摄像机怎么通过RTSP接入到EasyNVR。 第一步:萤石摄像机开启 萤石设备默…

antdv-<a-button>中属性的使用

UI组件库(User Interface Component Library)是一种预先构建好的、可重用的用户界面元素集合,旨在帮助开发者更快速、更简便地构建用户界面。这些组件通常包括按钮、表单、导航栏、模态框等,能够提供一致的外观和交互风格&#xf…

利用GeoWave导入矢量数据到HBase/Accumulo数据库

前言 最近在做有关地理时空大数据的实验,本文将介绍如何利用geowave框架,将矢量数据导入到HBase或Accumulo等NoSQL数据库中。 软件版本: Hadoop: 2.10.2 Zookeeper: 3.6.4 geowave: 1.2.0 Accumulo:1.9.3 HBase: 1.4.0 Ja…

高级java每日一道面试题-2024年12月12日-数据库篇-mysql 深度分页如何优化?

如果有遗漏,评论区告诉我进行补充 面试官: mysql 深度分页如何优化? 我回答: 在Java高级面试中,关于MySQL深度分页优化的提问,是一个考察数据库性能优化能力和对MySQL索引、查询机制理解深度的问题。以下是对MySQL深度分页优化的详细解答&#xff1a…

可信AI与零知识证明的概念

可信AI 可信AI是指人工智能的设计、开发和部署遵循一系列原则和方法,以确保其行为和决策是可靠、可解释、公平、安全且符合人类价值观和社会利益的.以下是关于可信AI的举例说明、实现方式及主流方案: 举例说明 医疗诊断领域:一个可信AI的医疗诊断系统,不仅能够准确地识别…