1 循环神经网络结构概述

循环神经网络(Recurrent Neural Network,RNN)是一个具有记忆功能的网络模型。它可以发现样本彼此之间的相互关系。它多用于处理带有序列特征的样本数据。

1.1 生物大脑中的循环神经网络

当获得“我找你来玩游”信息后,大脑的语言模型会自动预测后一个字为“戏”,而不是“乐”“泳”等其他字。

每个预测的结果都会放到下个输入里面进行运算,与下一次的食人鱼一起来生成下一次的结果。

链式地、有顺序地存储信息”很节省空间,对于中间状态的序列,大脑没有选择直接记住,而是存储计算方达。当我们需要取值时,直接将具体的数据输入,通过计算得出相应的给果。

1.2 循环神经网络的应用领域

对于序列化的特征任务,适合用循环神经网路来解决。这类任务包括情感分析、关键字提取、语音识别、机器翻译和股票分析等。

1.3 循环神经网络的正向传播过程

假设有3个时序t1,t2,t3,如图7-26所示,循环神经网络的处理过程可以分解成以下3个步骤:
(1)开始时t1通过自己的输入权重和0作为输入,生成了out1;
(2)out1通过自己的权重生成了h1,然后和t2与经过输入权重转化后一起作为输入,生成了out2;
(3)out2通过同样的隐藏层权重生成了h2,然后和t3经过输入权重转化后一起作为输入,生成了out3。
使得模型的结果既有该样本之前序列的信息,又含有该样本身的数据信息,从而使网络具有记忆功能。

2 BP算法与BPTT算法的原理剖析

2.1 BP算法==》卷积神经网络

假设有一个包含一个隐藏层的神经网络,隐藏层只有一个节点。该神经网络在BP算法中具体的实现过程如下。
(1)有一个批次的数据,含有3个数据A、B、C,批次中每个样本有两个数(x1、x2)通过权重(w1、w2)来到隐藏层H并生成批次h,如图7-27中w1和w2所在的两条直线方向。
(2)该批次的h通过隐藏层权重p1生成最终的输出结果y。
(3)y与最终的标签p比较,生成输出层误差loss(y,p)。
(4)loss(y,p)与生成y的导数相乘,得到DeL_y。DeL_y为输出层所需要的修改值。
(5)将h的转置与DeL_y相乘得到DeL_p1,这是源于h与p1相乘得到的y(见第2步.
(6)最终将该批次的DeL_p1,求和并更新到p1。
(7)同理,再将误差反向传递到上一层:计算Del_h。得到Del_h后再计算权重(w1,w2)的Del值并更新。

2.2 BPTT算法(BP算法+序列序列)==》循环神经网络

在图7-28中,同样是一个批次的数据ABC,按顺序进入循环神经网络。正向传播的实例是,B正在进入神经网络的过程,可以看到A的h参与了进来,一起经过p1生成了B的y。因为C还没有进入,为了清晰,所以这里用灰色(虚线方框)来表示。

当所有块都进入之后,会将p标签与输出进行Del_y的运算。由于C块中的y值是最后生成的,因此我们先从C块开始对h的输出传递误差Del_h。

图7-28中的反向传播是表示C块已经反向传播完成,开始B块反向传播的状态,可以看到B块Del_h是由B块的Del_y和C块的Del_h(图7-28中的fur _Del_h)通过计算得来的。

2.3 对比

这就是与BP算法不同的地方(在BP算法中Del_h直接与自己的Del_y相关,不会与其他的值有联系)。作为一个批次的数据,正向传播时是沿着4BC的顺序升当反向传播时,就按照正向传播的相反顺序接照每个节点的CBA顺序,挨个计算并传递梯度。

2.4 代码代补充  P149

【Pytorch神经网络理论篇】 17 循环神经网络结构:概述+BP算法+BPTT算法相关推荐

  1. 【Pytorch神经网络理论篇】 09 神经网络模块中的损失函数

    1 训练模型的步骤与方法 将样本书记输入到模型中计算出正向的结果 计算模型结果与样本目标数值之间的差值(也称为损失值loss) 根据损失值,使用链式反向求导的方法,依次计算出模型中每个参数/权重的梯度 ...

  2. 【Pytorch神经网络理论篇】 19 循环神经网络训练语言模型:语言模型概述+NLP多项式概述

    1 语言模型 循环神经网络模型可以对序列片段进行学习,找到样本间的顺序特征.这个特性非常适合运用在语言处理方向. 1.1 语言模型简介 语言模型包括文法语言模型和统计语言模型,一般指统计语言模型. 1 ...

  3. 【Pytorch神经网络理论篇】 18 循环神经网络结构:LSTM结构+双向RNN结构

    1 深层循环神经网络的构建 在深层网络结构中,会将简单的RNN模型从两个角度进行改造,具体如下. 使用更复杂的结构作为RNN模型的基本单元,使其在单层网络上提取更好的记忆特征. 将多个基本单元结合起来 ...

  4. 【Pytorch神经网络理论篇】 20 神经网络中的注意力机制

    注意力机制可以使神经网络忽略不重要的特征向量,而重点计算有用的特征向量.在抛去无用特征对拟合结果于扰的同时,又提升了运算速度. 1 注意力机制 所谓Attention机制,便是聚焦于局部信息的机制,比 ...

  5. 【Pytorch神经网络理论篇】 27 图神经网络DGL库:简介+安装+卸载+数据集+PYG库+NetWorkx库

    DGL库是由纽约大学和亚马逊联手推出的图神经网络框架,支持对异构图的处理,开源相关异构图神经网络的代码,在GCMC.RGCN等业内知名的模型实现上也取得了很好的效果. 1 DGL库 1.1 DGL库的 ...

  6. 【Pytorch神经网络理论篇】 06 神经元+神经网络模型+全连接网络模型

    1 神经元 1.1 概述 1.1.1 神经网络 神经网络:一种人工模仿动物中枢系统的数学模型,用于对函数进行近似估计 1.1.2 神经元 神经网络的基本单位是神经元. 神经元是一种处理单元,是对人脑组 ...

  7. 【Pytorch神经网络理论篇】 31 图片分类模型:ResNet模型+DenseNet模型+EffcientNet模型

    1 ResNet模型 在深度学习领域中,模型越深意味着拟合能力越强,出现过拟合问题是正常的,训练误差越来越大却是不正常的. 1.1 训练误差越来越大的原因 在反向传播中,每一层的梯度都是在上一层的基础 ...

  8. 【Pytorch神经网络理论篇】 23 对抗神经网络:概述流程 + WGAN模型 + WGAN-gp模型 + 条件GAN + WGAN-div + W散度

    1 对抗神经简介 1.1 对抗神经网络的基本组成 1.1.1 基本构成 对抗神经网络(即生成式对抗网络,GAN)一般由两个模型组成: 生成器模型(generator):用于合成与真实样本相差无几的模拟 ...

  9. 【Pytorch神经网络理论篇】 22 自编码神经网络:概述+变分+条件变分自编码神经网络

    1 无监督学习模型的概述 在监督训练中,模型能根据预测结果与标签差值来计算损失,并向损失最小的方向进行收敛. 在无监督训练中,无法通过样本标签为模型权重指定收敛方向,这就要求模型必须有自我监督的功能. ...

最新文章

  1. Event Loop
  2. 白盒测试之语句分支条件覆盖
  3. ecplise 下的.class .project .setting 文件介绍
  4. 1-5-20:球弹跳高度的计算
  5. Android画图之Matrix(一)
  6. JS 全局对象 全局变量 作用域 (改自TOM大叔博文)
  7. 【机器学习】平衡你的数据集的几项技巧
  8. jsencrypt vue使用_在Vue项目中使用jsencrypt.js对数据进行加密传输
  9. torch.cat;Pytorch nn.MaxPool1d
  10. crc java_求这个CRC16算法的java版实现!!!
  11. 解决使用百度地图默认定位是北京的问题
  12. Android动态生成答题卡,手机扫描答题卡改卷的最佳选择——ZipGrade
  13. Win10升级后出现的OEM分区处理
  14. PostgreSQL pg_stats used to estimate top N freps values and explain rows
  15. 泡芙噶的计算机网络(3)-扑朔迷离的Cisco Packet Tracer实验
  16. 网站流量有什么作用?可以刷流量吗?
  17. SpringCloud微服务架构标准版本拓扑图
  18. IPv4 地址与 int 值转换【Python】
  19. kafka代码初步涉猎,用代码发送消息到客户端
  20. Jenkins:(看起来挺好看的)邮件模板样式

热门文章

  1. 为C++程序添加文件保存加载功能
  2. Django博客--3.创作后台开启
  3. android textview表情,Android开发(16)-TextView显示表情图像和文字
  4. iOS10 xcode8 分页请求MJRefresh崩溃问题
  5. java二级考试备考_2017计算机二级考试《JAVA》备考测试题「带答案」
  6. Linux进程全解4——fork创建子进程
  7. C++远征之封装篇——常对象成员、常成员函数
  8. win10商店下载位置_Win10删应用商店下载记录|Win10删Microsoft Store下载记录
  9. 20180209-shutil模块
  10. WCF X.509验证