我是靠谱客的博主 洁净秀发,最近开发中收集的这篇文章主要介绍神经网络中的BPTT算法简单介绍 RNN(Recurrent Neural Network),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

首先来看下RNN的一个循环网络结构图:

RNN(Recurrent Neural Network)

rnn结构

在时间维度上,我们将RNN进行展开,以便能够更好地来观察:
这里写图片描述
主要的参数就是三部分:在RNN中每一个时间步骤用到的参数都是一样的,要理解清楚的是:一般来说,每一时间的输入和输出是不一样的,比如对于序列数据就是将序列项依次传入,每个序列项再对应不同的输出(比如下一个序列项):
这里写图片描述

BPTT(Back Propagation Through Time)算法

将RNN展开之后,似乎一切都很明了了,前向传播(Forward Propagation)就是依次按照时间的顺序计算一次就好了,反向传播(Back Propagation)就是从最后一个时间将累积的残差传递回来即可,跟普通的神经网络训练并没有本质上的不同。

前向传播

直接上公式啦: 
这里写图片描述
本文用到的公式基本来自Alex的论文,其中a表示汇集计算的值,b表示经过激活函数计算的值,w是不同节点之间连接的参数(具体睡谁连谁看下标),带下标k的是输出层,带下标h的是隐藏层相关的,除此之外你看到所有带括号的的函数都是激活函数,  ϵ  和  δ  的定义看公式, L  是最后的Loss function,这里没有给出具体的计算方法,因为这和NN是一样的,可以看到输出层和普通的NN是完全一样的,接收隐藏层传入的数据并乘以参数求和,只是每一个计算出来的值都有个时间上标t,表示它是t时刻的那个节点。

而隐藏层的计算就是和NN不同的地方,从之前的拓扑图也看到了,隐藏层会接受来自上一时间隐藏层传入的数据,在公式里也体现出来了:第一个求和是和NN一致的,接收来自输入层的数据,第二个是接收来自上一隐藏层的数据。

后向传播

这里写图片描述
这里主要给出的是计算隐藏层的累积残差的公式,因为输出层和经典的NN是一回事,可以看到第一个公式括号中的两个部分,一个是接收当前时间输出层传回的残差,第二个是接收下一时间隐藏层传回的残差,看着上面的图其实非常好理解。

一下是手写的一些笔记,有待更正:



















最后

以上就是洁净秀发为你收集整理的神经网络中的BPTT算法简单介绍 RNN(Recurrent Neural Network)的全部内容,希望文章能够帮你解决神经网络中的BPTT算法简单介绍 RNN(Recurrent Neural Network)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部