在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. 问题 G: 圆桌上的晚餐

    问题 G: 圆桌上的晚餐 时间限制: 1 Sec  内存限制: 128 MB提交: 1583  解决: 656[提交] [状态] [命题人:jsu_admin] 题目描述         大家一定在圆 ...

  2. 搜索(BFS)---最短单词路径

    最短单词路径 127. Word Ladder (Medium) Input: beginWord = "hit", endWord = "cog", word ...

  3. echart 属性设计大全

    // 全图默认背景  // backgroundColor: ‘rgba(0,0,0,0)’, // 默认色板 color: ['#ff7f50','#87cefa','#da70d6','#32cd ...

  4. linux tcp/ip 调优

    sysctl 变量修改方法:sysctl –a 使用 sysctl 命令修改系统变量,和通过编辑 sysctl.conf 文件来修改系统变量两种.但并不是所有的 变量都可以在这个模式下设定. 注:sy ...

  5. CF3D Least Cost Bracket Sequence(2500的实力贪心...

    哎,昨天一直在赶课设..没有写 最近听了一些人的建议,停止高级算法的学习,开始刷cf. 目前打算就是白天懒得背电脑的话,系统刷一遍蓝书紫书白书之类的(一直没系统刷过),回宿舍再上机吧. https:/ ...

  6. uiautomatorviewer不能直接截取手机屏幕信息

    本身可以用sdk——>tools里自带的ui automator viewer截取如果截取不了,采用以下方法: 新建一个文本文档,名字自己起如uni.bat(注意把后缀给改成.bat) adb ...

  7. 在Node.js环境下使用Express创建Web项目实例

    序:如果你还不知道Node.js是什么,那么你可以先看看这篇:Node.js 究竟是什么?或者任何关于它的介绍. 一.安装Node.js 1.进入Node.js官网下载并安装 2.启动cmd输入命令查 ...

  8. 查看ubuntu系统信息

    root@k8s001:~/go/src/k8s.io/kubernetes# cat /etc/*release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DI ...

  9. Centos抓包方法

    1. 安装tcpdump工具 rpm -ql tcpdump #查看tcpdump是否安装 本机是安装的,yum安装: yum install tcpdump 2.  tcpdump抓包 根据协议和端 ...

  10. OC + RAC (三) 信号中的信号

    -(void)_test3{ RACSubject *signalofsignal = [RACSubject subject]; //信号中的信号(也就是发送的数据是信号) RACSubject * ...