深度学习(2)---循环神经网络(RNN)

这篇具有很好参考价值的文章主要介绍了深度学习(2)---循环神经网络(RNN)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、序列数据和语言模型

1.1 序列数据

 1. 在深度学习中,序列数据(Sequence data)是指具有前后顺序关联的数据。常见的时间序列数据、文本数据(单词序列或字符序列)、语音数据等。这种数据不仅十分常见,而且往往具有很高的应用价值,比如我们可以通过过去的天气数据来预测未来的天气状况,通过以往的股票波动数据来推测股票的涨跌等。

比如:Cats average 15 hours of sleep a day.
其中第一个元素 “Cats” 和第三个元素 “15” 就具有关联性。

 2. 序列数据的特点主要有以下两点:

  • 时序关系:序列数据中的元素之间存在着时间上的依赖关系,每个元素都与其前面或后面的元素有关联。
  • 变长性:序列数据的长度是可变的,不同序列可能包含不同数量的元素。

1.2 语言模型

 1. 在自然语言处理中,语言模型是一种重要的技术,它的主要任务是估测一些词的序列的概率,即预测给定一个词的序列后,接下来可能出现的词的概率。

 2. 自然语言处理中最常见的数据是文本数据。我们可以把一段自然语言文本看做一段离散的时间序列。假设一段长度为T的文本中的词依次为w1, w2, …, wT,那么在离散的时间序列中,wt(1 ≤ t ≤ T)可看做在时间步t的输出或者标签。

 3. 给定一个长度为T的词的序列w1, w2, …, wT,语言模型将计算该序列的概率,即P(w1, w2, …, wT)。这个概率可以用来评估该词序列出现的可能性,从而在语言识别和机器翻译等任务中起到重要作用。

比如说一句话:“ chu fang li de shi you yong wan le ”。
那这句话是 “ 厨房里的石油用完了 ”还是 “ 厨房里的食油用完了 ”?
那语言模型要做的事是计算这两句序列的概率大小,比较并输出。即:P ( 厨 , 房 , 里 , 的 , 石 , 油 , 用 , 完 , 了 ) < P ( 厨 , 房 , 里 , 的 , 食 , 油 , 用 , 完 , 了)。

 4. 语言模型计算序列概率的公式:

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
 例如,一段含有4个词的文本序列的概率:

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN

例如:P (我 , 在 , 听 , 课) = P (我) * P (在 | 我) * P (听 | 我 , 在) * P (课 | 我 , 在 , 听)

 5. 语言模型缺点:时间步 t 的词需要考虑 t - 1步的词,其计算量随 t 呈指数增长。那我们可以利用循环神经网络来解决这一缺点。

二、循环神经网络(RNN)

2.1 概述

 1. 循环神经网络(Recurrent neural networks,简称RNN)是针对序列数据而生的神经网络结构,核心在于循环使用网络层参数,避免时间步增大带来的参数激增,并引入隐藏状态(Hidden State)用于记录历史信息,有效的处理数据的前后关联性。

考虑这样一个问题,如果要预测句子的下一个单词是什么,一般需要用到当前单词以及前面的单词,因为句子中前后单词并不是独立的。比如,当前单词是“很”,前一个单词是“天空”,那么下一个单词很大概率是“蓝”。
循环神经网络的来源就是为了刻画一个序列当前的输出与之前信息的关系。从网络结构上,循环神经网络会记忆之前的信息,并利用之前的信息影响后面结点的输出。也就是说,循环神经网络的隐藏层之间的结点是有连接的,隐藏层的输入不仅包括输入层的输出,还包括上时刻隐藏层的输出。

 2. 一个简单的循环神经网络如下所示,它由输入层、一个隐藏层和一个输出层组成:

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
 3. 如果我们把上面的图展开,循环神经网络也可以画成下面这个样子:

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
 现在看上去就比较清楚了,这个网络在t时刻接收到输入Xt之后,隐藏层的值是St,输出值是Ot。关键一点是,St的值不仅仅取决于Xt,还取决于St-1。

 4. 我们可以用下面的公式来表示循环神经网络的计算方法:

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
 这里的激活函数通常选择Tanh函数,Tanh函数公式和图像如下所示,它解决了Sigmoid函数的不以0为中心输出问题。

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN

 5. 用一个具体案例来看看RNN如何工作:
 (1)用户说了一句“what time is it?”,我们的神经网络会先将这句话分为五个基本单元(四个单词+一个问号),如下所示:

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
 (2)然后,按照顺序将五个基本单元输入RNN网络,先将 “what”作为RNN的输入,得到输出01:

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
 (3)随后,按照顺序将“time”输入到RNN网络,得到输出02:

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
 (4)以此类推,我们可以看到,前面所有的输入产生的结果都对后续的输出产生了影响(可以看到圆形中包含了前面所有的颜色):

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
 (5)当神经网络判断意图的时候,只需要最后一层的输出05,如下图所示:

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN

2.2 门控循环单元(GRU)

 1. 门控循环单元(Gate Recurrent Unit)是引入门的循环网络,用来缓解RNN梯度消失带来的问题。引入门的概念,来控制信息流动,使模型更好的记住长远时期的信息,并缓解梯度消失。

  • 重置门:哪些信息需要遗忘,用于遗忘上一时间步隐藏状态。
  • 更新门:哪些信息需要注意,用于更新当前时间步隐藏状态。
  • 激活函数为:Sigmoid,值域为( 0 , 1 ),0表示遗忘,1表示保留。

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
 2. 候选隐藏状态:输入与上一时间步隐藏状态共同计算得到候选隐藏状态,用于隐藏状态计算。通过重置门,对上一时间步隐藏状态进行选择性遗忘,可以对历史信息更好地选择。

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN

圆圈里加一点符号这里表示逐个元素相乘。

 3. 隐藏状态由候选隐藏状态及上一时间步隐藏状态组合得来。

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
 4. GRU特点:(1)门机制采用Sigmoid激活函数,使门值为(0,1),0表示遗忘,1表示保留。(2)若更新门自第一个时间步到t-1时间过程中,一直保持为1,则信息可有效传递到当前时间步。

2.3 长短期记忆网络(LSTM)

 1. 长短期记忆网络(Longshort-termmemory,简称LSTM)引入3个门和记忆细胞,控制信息传递。

  • 遗忘门:哪些信息需要遗忘。
  • 输入门:哪些信息需要流入当前记忆细胞。
  • 输出门:哪些记忆信息流入隐藏状态。
  • 记忆细胞:特殊的隐藏状态,记忆历史信息。

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
 2. 候选记忆细胞:可理解为特殊隐藏状态,存储历史时刻信息。

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
 3. 记忆细胞由候选记忆细胞及上一时间步记忆细胞组合得来。输出门控制记忆细胞信息流入隐藏状态。

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN
 4. 总结:LSTM引入3个门和记忆细胞,控制信息传递。

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN

深度学习(2)---循环神经网络(RNN),深度学习从0到1,深度学习,人工智能,RNN文章来源地址https://www.toymoban.com/news/detail-730114.html

到了这里,关于深度学习(2)---循环神经网络(RNN)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度学习4. 循环神经网络 – Recurrent Neural Network | RNN

    目录 循环神经网络 – Recurrent Neural Network | RNN 为什么需要 RNN ?独特价值是什么? RNN 的基本原理 RNN 的优化算法 RNN 到 LSTM – 长短期记忆网络 从 LSTM 到 GRU RNN 的应用和使用场景 总结 百度百科+维基百科 卷积神经网络和普通的算法大部分都是输入和输出的一一对应,也就是一

    2024年02月11日
    浏览(32)
  • 【深度学习】——循环神经网络RNN及实例气温预测、单层lstm股票预测

           密集连接网络和卷积神经网络都有主要的特点,那就是它们没有记忆。它们单独处理每个输入,在输入和输入之间没有保存任何状态。举个例子:当你在阅读一个句子的时候,你需要记住之前的内容,我们才能动态的了解这个句子想表达的含义。生物智能已渐进的方

    2023年04月24日
    浏览(32)
  • 深度学习-循环神经网络-RNN实现股价预测-LSTM自动生成文本

    基于文本内容及其前后信息进行预测 基于目标不同时刻状态进行预测 基于数据历史信息进行预测 序列模型:输入或者输出中包含有序列数据的模型 突出数据的前后序列关系 两大特点: 输入(输出)元素之间是具有顺序关系。不同的顺序,得到的结果应该是不同的,比如“

    2024年01月24日
    浏览(33)
  • 【算法小记】深度学习——循环神经网络相关原理与RNN、LSTM算法的使用

    文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解,如有遗漏或错误,欢迎评论或私信指正。 卷积神经网络在图像领域取得了良好的效果,卷积核凭借优秀的特征提取能力通过深层的卷积操作可是实现对矩形张量的复杂计算处理。但是生活中除了图像这样天然以矩阵形

    2024年01月25日
    浏览(38)
  • Python深度学习026:基于Pytorch的典型循环神经网络模型RNN、LSTM、GRU的公式及简洁案例实现(官方)

    循环神经网络(也有翻译为递归神经网络)最典型的三种网络结构是: RNN(Recurrent Neural Network,循环神经网络) LSTM(Long Short-Term Memory,长短期记忆网络) GRU(Gate Recurrent Unit,门控循环单元) 理解参数的含义非常重要,否则,你不知道准备什么维度的输入数据送入模型 先

    2023年04月22日
    浏览(27)
  • 李宏毅机器学习笔记:RNN循环神经网络

    例如情景补充的情况,根据词汇预测该词汇所属的类别。这个时候的 Taipi 则属于目的地。但是,在订票系统中, Taipi 也可能会属于出发地。到底属于目的地,还是出发地,如果不结合上下文,则很难做出判断。因此,使用传统的深度神经网络解决不了问题,必须引入RNN。 如

    2024年02月10日
    浏览(38)
  • 【python,机器学习,nlp】RNN循环神经网络

    RNN(Recurrent Neural Network),中文称作循环神经网络,它一般以序列数据为输入,通过网络内部的结构设计有效捕捉序列之间的关系特征,一般也是以序列形式进行输出。 因为RNN结构能够很好利用序列之间的关系,因此针对自然界具有连续性的输入序列,如人类的语言,语音等

    2024年01月18日
    浏览(26)
  • Pytorch 对比TensorFlow 学习:Day 17-18: 循环神经网络(RNN)和LSTM

    Day 17-18: 循环神经网络(RNN)和LSTM 在这两天的学习中,我专注于理解循环神经网络(RNN)和长短期记忆网络(LSTM)的基本概念,并学习了它们在处理序列数据时的应用。 1.RNN和LSTM基础: RNN:了解了RNN是如何处理序列数据的,特别是它的循环结构可以用于处理时间序列或连续

    2024年01月20日
    浏览(49)
  • 人工智能|机器学习——循环神经网络的简洁实现

    循环神经网络的简洁实现 如何使用深度学习框架的高级API提供的函数更有效地实现相同的语言模型。 我们仍然从读取时光机器数据集开始。 定义模型 高级API提供了循环神经网络的实现。 我们构造一个具有256个隐藏单元的单隐藏层的循环神经网络层 rnn_layer 。 事实上,我们

    2024年02月04日
    浏览(44)
  • 深度学习循环神经网络

    循环神经网络(Recurrent Neural Network,RNN)是一种广泛应用于序列数据、自然语言处理等领域的神经网络。与传统的前馈神经网络不同,循环神经网络的输入不仅取决于当前输入,还取决于之前的状态。这使得循环神经网络可以对序列数据进行建模,具有记忆和递归的能力。

    2024年02月13日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包