umich cv-6-1 循环神经网络基本知识

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

这节课中介绍了循环神经网络的第一部分,主要介绍了循环神经网络的基本概念,vanilla循环网络架构,RNN的一些应用,vanilla架构的问题,更先进的rnn架构比如GRU和LSTM

  • 循环神经网络基本知识
    • vanilla循环网络架构
    • 应用与理解
    • vanilla架构的问题
    • LSTM

vanilla循环网络架构

在之前的讨论中,我们往往以图像分类问题为基础然后展开,训练网络,输入图像,然后我们可以得到相应的图像标签,但在实际中,我们可能还会需要处理一些序列问题,比如说输入一个图像,我们希望能得到一组单词,表示图像的内容,或者说输入一个视频也就是输入一系列的图像,得到一个标签,或者说输入一组单词,我们能够将其翻译为另一种语言的单词:
umich cv-6-1  循环神经网络基本知识

umich cv-6-1  循环神经网络基本知识
循环网络的核心概念大致如上图,简单来说,我们依次使用不同的输入向量和上一个状态,经过一个权重矩阵,实现更新得到新的状态,然会不断重复上述过程直至输入向量全部输入,注意这里我们采用的权重矩阵每一步循环都是相同的,我们以many to many计算图为例:
umich cv-6-1  循环神经网络基本知识
我们可以看到首先初始化w与h0,然后x1,h0一起与fw作用得到h1之后,重复上述操作,一直得到h2,h3等等,同时每个隐藏层都会输出一个y,用于表示对下一个x的预测结果,然后我们可以利用这个预测结果与实际的下一个输入向量之间的差距,作为损失,反向传播对权重矩阵进行更新。

最常用最简单的循环神经网络就是vanilla RNN:
umich cv-6-1  循环神经网络基本知识
可以看到它给出了h与y的计算方式,其余结构就和我们之前提到的一样,下面是一个具体的例子,可以看到我们使用了“hello”这个单词来训练我们的循环神经网络。
umich cv-6-1  循环神经网络基本知识

应用与理解

我们实际上可以使用上述循环网络实现很多有意思的事情,比如说我们可以将莎士比亚的作品作为训练集,然后让ai来以莎士比亚的风格来自己创作:
umich cv-6-1  循环神经网络基本知识

umich cv-6-1  循环神经网络基本知识
我们可以看到经过不断不断的训练,ai逐渐能输出更加像样的结果了,尽管从具体内容上来说还是狗屁不通

同样,我们也可以让神经网络去模仿写数学证明或者一些代码,它也能模仿的有模有样:
umich cv-6-1  循环神经网络基本知识
umich cv-6-1  循环神经网络基本知识

如果我们将隐藏层可视化,并且选取其中可理解的一些结果观察,我们可以发现一些有意思的一些事情:
umich cv-6-1  循环神经网络基本知识
umich cv-6-1  循环神经网络基本知识
umich cv-6-1  循环神经网络基本知识
实际上隐藏层特定地学习了我们输入的文字序列中的某些信息,比如句子的长度信息,if语句信息以及注释信息等等

我们可以将RNN与CNN结合起来,使用CNN来提取特征向量,然后我们使用RNN来将特征向量作为新的信息加入,这样能够更好地训练我们的网络,为特征向量创建新的权重矩阵:
umich cv-6-1  循环神经网络基本知识
然后我们可以得到一些非常好的结果:
umich cv-6-1  循环神经网络基本知识

vanilla架构的问题

vanilla架构最大的问题就是反向传播过程中,有的路径太长,需要经过许多权重矩阵以及tanh(而我们知道tanh存在着杀死梯度的问题),如果矩阵的奇异值大于1,会导致在这个过程中梯度不断增大,直到爆炸,如果奇异值小于1,则会出现梯度消失的现象,这两种情况都会导致vanilla架构只有短期记忆,不能很好地学习,对于第一种,我们可以将梯度缩小,虽然这样已经不是原本的梯度,但还是可以得到不错的效果,对于第二种情况,我们则需要改变RNN网络的架构,这就有了LSTM架构:
umich cv-6-1  循环神经网络基本知识

LSTM

LSTM采取如下的架构:
umich cv-6-1  循环神经网络基本知识
把h层放大为4h,然后分成4个小h,每个h分别经过sigmoid,sigmoid,sigmoid以及tanh,分别得到输入门,遗忘门,输出门以及门门,其中输入门表示我们是否向神经元中输入信息,是一个介于0-1之间的值,遗忘门表示是否要遗忘上一次输入的信息,也是一个0-1之间的值,门门表示我们要向神经元中输入多少信息,输出门表述我们最终要输出多少信息
\(c_{t}\)的推导式中我们也可以看出,首先f遗忘门与前一个c值哈达马积(两个矩阵对应位置元素相乘),表述我们要忘记多少上一层的信息,然后再加上i与g的哈达马积,表示我们要输入多少信息。

umich cv-6-1  循环神经网络基本知识
umich cv-6-1  循环神经网络基本知识
通过这样的方法,我们实际上设计了一条新的反向传播路径,只需要先经过一个+号(我们知道反向传播梯度与上游梯度相同),然后再经过一个对应元素相乘的反向传播而不是和矩阵W相乘
实际上这种设计与残差网络的设计有着相同的直觉,它们都提供了一条求解梯度的高速公路,来防止太长的反向传播路径
至于LSTM这种具体结构式怎么想出来的,“it is called reasearch trial and error”hhh

最后介绍几种不同的RNN结构的变体:
多层RNN架构(层数一般不会太深):
umich cv-6-1  循环神经网络基本知识

GRU(与LSTM思想大致相同,只是构建了不同的高速公路)
以及使用进化搜索研究了10000种不同的RNN架构:
umich cv-6-1  循环神经网络基本知识
实践证明我们使用LSTM架构一般就能得到较好的效果文章来源地址https://www.toymoban.com/news/detail-714967.html

到了这里,关于umich cv-6-1 循环神经网络基本知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 第二章:AI大模型的基本原理2.2 深度学习基础2.2.3 循环神经网络

    循环神经网络(Recurrent Neural Networks,RNN)是一种特殊的神经网络结构,它可以处理序列数据,如自然语言、时间序列预测等。RNN的核心特点是包含反馈连接,使得网络具有内存功能,可以在处理序列数据时保留以前的信息。这一特性使得RNN成为处理自然语言和时间序列数据的

    2024年01月16日
    浏览(40)
  • 深度学习笔记之循环神经网络(十)基于循环神经网络模型的简单示例

    本节我们将前面介绍的几种 循环神经网络 —— RNN,LSTM,GRU text{RNN,LSTM,GRU} RNN,LSTM,GRU 关于实例中的一个演示,但重点并不仅在于这些模型,这里以 示例 的形式对 One-hot text{One-hot} One-hot 向量 重新进行认知 。 自然语言 ( Natural Language ) (text{Natural Language}) ( Natural Language ) 是人类

    2024年02月07日
    浏览(48)
  • 神经网络NLP基础 循环神经网络 LSTM

    用的时候,只关心token的输入,以及hidden state就好了 sequence的length是多少,lstm的cell的数量就是多少 LSTM BI-LSTM stacked lstm GRU 实现

    2024年02月10日
    浏览(37)
  • 【神经网络】循环神经网络RNN和长短期记忆神经网络LSTM

    欢迎访问Blog总目录! 一文看尽RNN(循环神经网络) - 知乎 (zhihu.com) 一文搞懂RNN(循环神经网络)基础篇 - 知乎 (zhihu.com) 循环神经网络(Recurrent Neural Network, RNN)是一类以 序列 (sequence)数据为输入,在序列的演进方向进行 递归 (recursion)且所有节点(循环单元)按链式连

    2024年04月10日
    浏览(46)
  • 基于Transformer(卷积神经网络、循环神经网络)的情感分类研究

    Requirements: * Python: 3.8.5 * PyTorch: 1.8.0 * Transformers: 4.9.0 * NLTK: 3.5 * LTP: 4.0  Model: Attention:   论文解读参考:   https://blog.csdn.net/Magical_Bubble/article/details/89083225 实验步骤: 1)下载VSstudio2019 注意:安装时勾选“Python开发”和“C++桌面开发” 2) 下载和安装nvidia显卡驱动 下载之后

    2024年02月07日
    浏览(44)
  • 循环神经网络

    对于事件有关的序列数据,通过使用历史观测来预测下一个未来观测。 第一种策略:可能不需要相当长的序列,只需要满足某个长度为的时间跨度。模型即 自回归模型 (autoregressive models)。 第二种策略: 保留一些对过去观测的总结,同时更新预测和总结。模型基于,以及

    2024年01月17日
    浏览(25)
  • 9.现代循环神经网络

    #pic_center R 1 R_1 R 1 ​ R 2 R^2 R 2 1、门控循环单元GRU 首先,让我们看一下叫做门控循环单元的GRU。GRU(Gated Recurrent Unit)是近年来提出的一种神经网络结构。它在我们接下来要讨论的LSTM(Long Short-Term Memory)之后提出。选择先介绍GRU的原因是因为相对来说,它更为简单。相比之下

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

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

    2024年02月13日
    浏览(39)
  • 人工智能:CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的知识梳理

    卷积神经网络(CNN),也被称为ConvNets或Convolutional Neural Networks,是一种深度学习神经网络架构,主要用于处理和分析具有网格状结构的数据,特别是图像和视频数据。CNN 在计算机视觉任务中表现出色,因为它们能够有效地捕获和识别图像中的特征,具有平移不变性(transla

    2024年02月05日
    浏览(61)
  • 【AI】深度学习——循环神经网络

    神经元不仅接收其他神经元的信息,也能接收自身的信息。 循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络,可以更方便地建模长时间间隔的相关性 常用的参数学习可以为BPTT。当输入序列比较长时,其计算时间和空间要求随时间线性增长,可以

    2024年02月07日
    浏览(138)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包