循环神经网络简易理解

循环神经网络主要运用在序列数据之中,因此下文将以比较典型的文本数据进行分析。

一、 Vocabulary

对于神经网络,我们输入的X必须是数字,不然无法参与计算。因此这里就创建一个vocabulary,给每一个词编码。

比如a可能代表1,b可能代表452等;随后我们使用one_hot来代表这些单词。

一般来说,词典的大小,将会成为我们输入的X的维度,因此循环神经网络的计算量往往很大。

二、 模型(正向传播)

为了充分利用序列化数据的序列特征,循环神经网络将X的每一个单位数据称为一个时间步的数据。这里以《动手学深度学习》一书中的插图进行分析。

从图中可以看出,时间步,输入,隐藏层,输出,标签等;

这里的输入就是我们的词向量,通过隐藏层,来预测一个我们想要的结果。图中的预测结果即是下一个时间步的标签,但事实上,输出的结果完全可以由我们自己决定。当然这也取决于模型的使用目的。

一般来说,循环神经网络中的输入和输出是相同的,就像图中一样。但是也有不少循环神经网络输入输出的数量并不同。常见的如情感分析,只需要在循环神经网络最后一步输出一个结果。

现在进入数学部分。

$\boldsymbol{H}_{t}=\phi\left(\boldsymbol{X}_{t} \boldsymbol{W}_{x h}+\boldsymbol{H}_{t-1} \boldsymbol{W}_{h h}+\boldsymbol{b}_{h}\right)$

这一步是关于H的计算,H的计算主要考虑前一步的隐藏层输出以及这一步的输入,即Ht-1和Xt。

在隐藏层中,常用的激活函数是tanh。

$\boldsymbol{O}_{t}=\boldsymbol{H}_{t} \boldsymbol{W}_{h q}+\boldsymbol{b}_{q}$

这里是每一步的输出层输出的计算,它将隐藏层的输出作为输入进行线性计算。

三、 反向传播

反向传播的过程稍微复杂,这主要是由于循环神经网络在计算的过程中,涉及不同箭头的计算。

$a^{(t)}=\tanh \left(W_{a x} x^{(t)}+W_{a a} a^{(t-1)}+b\right)$
$\frac{\partial \tanh (x)}{\partial x}=1-\tanh (x)^{2}$
$\frac{\partial a^{(t)}}{\partial W_{a x}}=\left(1-\tanh \left(W_{a x} x^{(t)}+W_{a a} a^{(t-1)}+b\right)^{2}\right) x^{(t) T}$
$\frac{\partial a^{(t)}}{\partial W_{a a}}=\left(1-\tanh \left(W_{a x} x^{(t)}+W_{a a} a^{(t-1)}+b\right)^{2}\right) a^{\langle t-1\rangle T}$
$\frac{\partial a^{(t)}}{\partial b}=\sum_{\text {buch}}\left(1-\tanh \left(W_{a x} x^{\langle t\rangle}+W_{a a} a^{\langle t-1\rangle}+b\right)^{2}\right)$
$\frac{\partial a^{(t)}}{\partial x^{(t)}}=W_{a x}^{T} \cdot\left(1-\tanh \left(W_{a x} x^{(t)}+W_{a a} a^{(t-1)}+b\right)^{2}\right)$
$\frac{\partial a^{(t)}}{\partial a^{(t-1)}}=W_{a a}^{T} \cdot\left(1-\tanh \left(W_{a x} x^{(t-1)}+W_{a a} a^{(t-1)}+b\right)^{2}\right)$

反向传播的方向就是把前向传播的箭头全部改变方向,这里不做一一解释。

原文地址:https://www.cnblogs.com/siyuan-Jin/p/12427113.html

时间: 2024-10-09 01:12:29

循环神经网络简易理解的相关文章

理解循环神经网络的来龙去脉

一.为什么会出现循环神经网络? 传统的语言模型中,计算特定序列中多个单词出现概率的公式为(以下式子),P(w1,-,wm)一般只考虑前 n 个单词而不是考虑全部之前的单词. 上式对语音.翻译系统中判断一个词序列是否是输入句子的准确翻译起了重要作用.这些只依赖前面1个词(bigram).依赖前面2个词(trigram).... .依赖前面连续n个单词窗口的方式可能不足以捕获足够的上下文信息.在所有传统语言模型中,随着窗口n的增大,系统所需的运行内存也会呈现指数级增长,使得几乎不可能对较大型的词窗口

TensorFlow框架(6)之RNN循环神经网络详解

1. RNN循环神经网络 1.1 结构 循环神经网络(recurrent neural network,RNN)源自于1982年由Saratha Sathasivam 提出的霍普菲尔德网络.RNN的主要用途是处理和预测序列数据.全连接的前馈神经网络和卷积神经网络模型中,网络结构都是从输入层到隐藏层再到输出层,层与层之间是全连接或部分连接的,但每层之间的节点是无连接的. 图 11 RNN-rolled 如图 11所示是一个典型的循环神经网络.对于循环神经网络,一个非常重要的概念就是时刻.循环神经网

theano学习指南--词向量的循环神经网络(翻译)

欢迎fork我的github:https://github.com/zhaoyu611/DeepLearningTutorialForChinese 最近在学习Git,所以正好趁这个机会,把学习到的知识实践一下~ 看完DeepLearning的原理,有了大体的了解,但是对于theano的代码,还是自己撸一遍印象更深 所以照着deeplearning.net上的代码,重新写了一遍,注释部分是原文翻译和自己的理解. 感兴趣的小伙伴可以一起完成这个工作哦~ 有问题欢迎联系我 Email: [email

《转》循环神经网络(RNN, Recurrent Neural Networks)学习笔记:基础理论

转自 http://blog.csdn.net/xingzhedai/article/details/53144126 更多参考:http://blog.csdn.net/mafeiyu80/article/details/51446558 http://blog.csdn.net/caimouse/article/details/70225998 http://kubicode.me/2017/05/15/Deep%20Learning/Understanding-about-RNN/ RNN

机器学习小白关于循环神经网络的5个问题

机器不学习 jqbxx.com-关注机器学习,深度学习,自然语言处理,大数据,个性化推荐,搜索算法,知识图谱 问题1:什么是循环神经网络RNN? 如下图,如何能让Alpha蚂蚁识别下图的句子(是让它识别句子理解句子而非文字),并且填入正确的答案呢? 如果用以往的方式,Alpha蚂蚁只能看到是这个字以及它后面的内容,关键是谁知道是后面该填写什么?Alpha蚂蚁去搜索了百度,百度上最高的统计结果是:"是"后面跟着"我"字,于是Alpha蚂蚁在这里填写了"我&q

神经网络之循环神经网络及细节分析

以下内容是个人参考网上的学习资料以及自己的理解进行总结的 1.循环神经网络的介绍具体看 https://www.cnblogs.com/pinard/p/6509630.html 深度神经网络无法利用数据中时间序列信息,循环神经网络应势而生.循环神经网络的主要用途是处理和预测序列数据,它最擅长解决的问题是与时间序列相关的.它与CNN一样参数是共享的. 循环神经网络工作的关键点就是利用历史的信息来帮助当前的决策,因此而带来了更大的技术挑战--长期依赖(此外RNN的序列过长时会出现梯度消失现象)LS

循环神经网络导读

循环神经网络导读 循环神经网络(Recurrent Neural Network)是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络.其中双向循环神经网络(Bidirectional RNN, Bi-RNN)和长短期记忆网络(Long Short-Term Memory networks,LSTM)是常见的的循环神经网络.今天,小编带你认识常见的几种循环神经网络模型,主要内容来自Colah的博客,外加一些自己的总结,一起来学习吧~ 循环神经网络 RNN

循环神经网络-语言模型

在构建语言模型中,我们需要理解n元模型以及网络架构. 一. n元语法 n元语法通过马尔可夫假设简化模型,马尔科夫假设是指一个词的出现只与前面n个词相关,即n阶马尔可夫链(Markov chain of order n). 来看以下几个例子,下面分别是1元,2元,3元语法模型的结果. $P\left(w_{1}, w_{2}, w_{3}, w_{4}\right)=P\left(w_{1}\right) P\left(w_{2}\right) P\left(w_{3}\right) P\left

循环神经网络(RNN)模型与前向反向传播算法

在前面我们讲到了DNN,以及DNN的特例CNN的模型和前向反向传播算法,这些算法都是前向反馈的,模型的输出和模型本身没有关联关系.今天我们就讨论另一类输出和模型间有反馈的神经网络:循环神经网络(Recurrent Neural Networks ,以下简称RNN),它广泛的用于自然语言处理中的语音识别,手写书别以及机器翻译等领域. 1. RNN概述 在前面讲到的DNN和CNN中,训练样本的输入和输出是比较的确定的.但是有一类问题DNN和CNN不好解决,就是训练样本输入是连续的序列,且序列的长短不