在RNN(1)中,我们将带有Reccurent Connection的node依照时间维度展开成了如下的形式:

在每个时刻t=0,1,2,3,...,神经网络的输出都会产生error:E0,E1,E2,E3,....。同Feedforward Neural Network一样,RNN也使用Backpropagation来更新参数V,W,U,只不过对于RNN,该算法称为Backpropagation Through Time(BPTT)。其算法思路为:根据各个时刻的输出(如果有),计算各个时刻的Loss Function(Error),而后对各个时刻的loss求和。如果使用mini-batch,则再对batch内的examples求和,计算Cost Function。而后分别对V,W,U求梯度,最后最梯度下降。

在本例中,我们设定从某个时刻的状态st,到最终的输出,一路经过:与权重V相乘得到输出值ot;转换为Softmax输出概率;Cost Function使用Cross-entropy,得到t时刻的误差值Et。基于此设定,我们来看该误差在V上的梯度:

可以看出,t时刻所产生误差,在V上的梯度,只与当前时刻的状态与输出有关。下面再来看Et在W上的梯度:

在上式中,st的计算公式为:

其中f(z)是activation function,而st-1也是w的函数,所以在求梯度时不能简单视其为常量。经过推导后得出:

上式是误差在各个时间分量上的梯度之和,可以看出,某个时间t上的误差Et,会延时间方向反向传播(Backpropagation Through Time),如下图:

而上式中的,dSt/dSk本身就是链式法则,我们展开后可以得到类似Feedforward NN里Gradient Vanishing Problemactivation function偏导数连程形式。据此可以知晓,虽然Et在W上的梯度是求和的形式,看似考虑了该误差与所有时间t之间的关系,实际上该误差随着t维度上深度的增加逐渐衰减。而在参数U上面,同样也存在了此Gradient Vanishing的问题。

从而,我们的RNN模型无法获取到Long term dependencies. 例如:The country I traveled with my wife Mia in 2013 summer holiday is Japan ,这里需要填写的词是一个国家的名字。GRU和LSTM会解决此问题。

Recurrent Neural Network(2):BPTT and Long-term Dependencies的更多相关文章

  1. Recurrent Neural Network系列3--理解RNN的BPTT算法和梯度消失

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 这是RNN教程的第三部分. 在前面的教程中,我们从头实现了一个循环 ...

  2. Recurrent Neural Network系列4--利用Python,Theano实现GRU或LSTM

    yi作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORK ...

  3. Recurrent Neural Network[survey]

    0.引言 我们发现传统的(如前向网络等)非循环的NN都是假设样本之间无依赖关系(至少时间和顺序上是无依赖关系),而许多学习任务却都涉及到处理序列数据,如image captioning,speech ...

  4. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  5. Recurrent Neural Network(循环神经网络)

    Reference:   Alex Graves的[Supervised Sequence Labelling with RecurrentNeural Networks] Alex是RNN最著名变种 ...

  6. Recurrent Neural Network系列2--利用Python,Theano实现RNN

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  7. 循环神经网络(Recurrent Neural Network,RNN)

    为什么使用序列模型(sequence model)?标准的全连接神经网络(fully connected neural network)处理序列会有两个问题:1)全连接神经网络输入层和输出层长度固定, ...

  8. 【NLP】Recurrent Neural Network and Language Models

    0. Overview What is language models? A time series prediction problem. It assigns a probility to a s ...

  9. (zhuan) Recurrent Neural Network

    Recurrent Neural Network 2016年07月01日  Deep learning  Deep learning 字数:24235   this blog from: http:/ ...

随机推荐

  1. 让网站动起来!12款优秀的 jQuery 动画

    Textillate.js 介绍:Textillate.js 是一个简单的 CSS3 文本动画插件.结合了一些非常棒的库,把 CSS3 动画轻松应用到任何文本.只需要在项目中简单地引入 textill ...

  2. js去掉输入框的前后空格及一些常用正则表达式

    去掉TextBox输入框两头的前后空格:onblur="this.value=this.value.replace(/^\s+|\s+$/g,'');" str为要去除空格的字符串 ...

  3. A.Equivalent Prefixes

    题目大意:等价数组定义为(1≤l≤r≤m)中,所有的子区间都满足最小值下标相等,找出最大的m. 题解:我们要找到最大的m,就要保证两个数组的所有子区间最小值下标相等 所以用一个单调栈来维护一个单调递增 ...

  4. 将地址转成blob格式(服务器下运行)

    <div id="forAppend" class="demo"></div> <script> var eleAppend ...

  5. JUC并发包基本使用

    一.简介 传统的Java多线程开发中,wait.notify.synchronized等如果不注意使用的话,很容易引起死锁.脏读问题.Java1.5 版本开始增加 java.util.concurre ...

  6. win32 socket 编程(一)——TCP/IP

    一.基本概念 a) 同步:指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式. nb)异步:指的是发送方不等接收方响应,便接着发下个数据包的通信方式. c) 阻塞:指调用某函数时, ...

  7. Vue 实现文件的下载

    上次说了,实现文件的上传需要三步,那么实现文件的下载呢? 答:也是三步 第一步:获取文件的 fileId (或者别的什么的,总之应该是代表这个文件的东西),各家后台需要的都不一样 第二步:调用接口 t ...

  8. css炫酷动画收藏

    1.按钮.hover.input动画(cssfx) https://cssfx.dev/ 2.svg 矢量定制icon(ikonate) https://www.ikonate.com/#conten ...

  9. 2018-8-10-win10-uwp-读写XML

    title author date CreateTime categories win10 uwp 读写XML lindexi 2018-08-10 19:16:51 +0800 2018-2-13 ...

  10. URLEncode解决url中有特殊字符的问题

      问题:图片上传后的url地址中有&等特殊字符,页面传到后端时被自动处理成了&   解决:前端对url进行URLEncode,后端收到后进行URLDecode   总结:需要在请求u ...