导航:首页 > 源码编译 > 记忆网络算法

记忆网络算法

发布时间:2024-09-06 13:38:57

㈠ 循环神经网络(RNN)简介

循环神经网络英文名称为 ( Recurrent Neural Network, RNN ),其通过使用带自反馈的神经元,能够处理任意长度的 时序 数据。

给定输入时序序列

式中, 表示一段时序数据, 为时间长度

以一段英文段落为例,其时序数据可以表示为:

若是一段视频,将其每一帧通过CNN网络处理得到相应的编码向量

循环神经网络通过以下公式更新隐藏层的活性值

循环神经网络图示

RNN的基本模型如下图所示,为便于理解,图中将RNN的模型展开,按照时序方向对其前向传播流程进行介绍

RNN的基本模型

利用数学表达式整个过程可以变得更加清晰,RNN的前向传播公式如下:

将上述过程整合到一个RNN cell中,可以表示为如下图所示的过程:

RNN的前向传播示意图

缺陷:

没有利用到模型后续的信息,可以通过双向RNN网络进行优化

RNN主要有两种计算梯度的方式:随时间反向传播(BPTT)和实时循环学习法(RTRL)算法

本文中主要介绍随时间反向传播的方法 ( BackPropagation Through Time

RNN的损失函数与任务有关,对于同步的序列对序列任务,其loss可以用交叉熵公式表示

然后通过BPTT算法便可以进行梯度的反向传播计算

梯度爆炸的解决方法:梯度修剪

梯度消失的解决方法:增加长程依赖 LSTM,GRU

GRU的基本思路:增加相关门(Relate Gate)和更新门(Update Gate),进而使得RNN单元具有记忆能力

首先从数学角度对GRU的前向传播过程进行介绍,具体公式如下:

公式中各变量的含义:

将上述数学公式转化为图像,可得

GRU Cell的前向传播流程

LSTM意为长短时记忆网络 (Long Short-Term Memory Network,LSTM) ,可以有效地解决简单神经网络的梯度消失和爆炸问题

在LSTM中,与GRU主要有两点不同

同样,先从数学公式入手,对LSTM的前向传播过程进行了解

基于数学公式的过程,可将LSTM CELL的前向传播过程总结为(图片借用于nndl):

LSTM Cell的前向传播示意图

从上图中可以看出,LSTM在前向传播的过程中传输了两个状态:内部状态 以及外部状态 ,在整个传播过程中 外部状态(隐状态) 每个时刻都会被重写,因此可以看作一种 短时记忆 ,而 内部状态 可以在某个时刻捕捉一些关键信息,并将此信息保存一段时间间隔,可以看作一种 长时记忆 (长的短时记忆)

此外,在LSTM网络初始化训练的时候,需要手动将遗忘门的数值设置的大一些,否则在参数初始化的时候,遗忘门的数据会被初始化为一个很小的值,前一时刻的内部状态 大部分都会丢失,这样网络很难获取到长距离的依赖信息,并且相邻时间间隔的梯度会非常小,导致 梯度弥散 问题,因此遗忘门的 偏置变量 的初始值 一般很大,取 1或2

将 设置为1即可,但是长度非常的大的时候会造成记忆单元的饱和,降低性能

三个门不仅依赖于 和 ,也依赖于

将两者合并为一个门,即:

首先,我们要理解什么是深层的RNN,对于单个的RNN cell,若将其在时间维度上展开,其深度与时间维度的长度成正比,但若将一个RNN cell看作为单个从 的映射函数,则单个cell实际上是很浅显的一层,因此深层循环神经网络要做的就是把多个RNN cell组合起来,换句话说,就是增加从输入 到输出 的路径,使得网络的深度更深。

如何增加从输入 到输出 的路径呢?两种途径:

堆叠循环神经网络示意图

将网络带入到实际应用场景中:假如我们要翻译一段句子

在这里,is和are实际上是由后面的Lucy和they所决定的,而这种单向的按照时序进行传播的方式没有利用到后面的信息。因此诞生了双向循环网络

双向循环神经网络示意图

双向循环神经网络实际上就是简单的双层循环神经网络,只不过第二层网络的传播方式为按时序的逆向传播,其传播公式为:

阅读全文

与记忆网络算法相关的资料

热点内容
安卓路由表怎么看 浏览:74
10个小孩分糖果python 浏览:823
安卓app小红点怎么取消 浏览:286
马哥linux面授 浏览:768
2345程序员 浏览:371
怎么开启网速显示安卓 浏览:204
索尼950app怎么样 浏览:391
计算机毕设论文源码 浏览:148
小米手机怎么下载易媒体App 浏览:191
还原系统设计可以怎样清理文件夹 浏览:670
北京时间校准服务器云服务器 浏览:844
pythonexcel数据计算 浏览:49
内医附院党建APP怎么下载 浏览:356
荣耀v20刷加密门禁卡 浏览:329
app缓冲视频怎么保存在手机 浏览:433
广度优先算法c语言 浏览:680
提高程序员竞争力 浏览:108
nfc可以开加密门卡吗 浏览:675
如何知道网页使用的服务器是什么 浏览:224
单片机接反电源会烧吗 浏览:287