TensorFlow实现经典深度学习网络(7):TensorFlow实现双向长短时记忆循环神经网络

本文介绍了如何使用TensorFlow实现双向长短时记忆循环神经网络(Bi-LSTM),探讨了Bi-RNN的原理,它能同时利用历史和未来信息。通过拆分正向和反向RNN单元,Bi-LSTM在网络结构中提供了更丰富的上下文信息。代码示例展示了MNIST数据集的Bi-LSTM模型搭建过程。
摘要由CSDN通过智能技术生成

TensorFlow实现经典深度学习网络(7):TensorFlow实现双向长短时记忆循环神经网络


        20世纪末,Schuster和Paliwal首次提出双向循环神经网络(Bi-directional Recurrent Neural Network ,Bi-RNN),长短时记忆模型LSTM也在同年被提出。Bi-RNN的主要目标是增加RNN可利用的信息。上节我门介绍来RNN的相关理论,然而,由于标准的循环神经网络在时序上处理序列,可以处理不固定长度的时序数据,但他们往往忽略了未来的上下文信息。一种很显而易见的解决办法是在输入和目标之间添加延迟,进而可以给网络一些时步来加入未来的上下文信息,也就是加入M时间帧的未来信息来一起预测输出。理论上,M可以非常大来捕获所有未来的可用信息,但事实上发现如果M过大,预测结果将会变差。这是因为网路把精力都集中记忆大量的输入信息,而导致将不同输入向量的预测知识联合的建模能力下降。因此,M的大小需要手动来调节。Bi-RNN则正好相反,它可以同时使用时序数据中某个输入的历史及未来数据。

        Bi-RNN的实现原理很简单,将时序方向相反的两个循环神经网络连接到同一输出,通过这种结构,输出层就可以同时获取历史和未来信息了。双向循环神经网络Bi-RNN的基本思想是提出每一个训练序列向前和向后分别是两个循环神经网络RNN,而且这两个都连接着一个输出层。这个结构提供给输出层输入序列中每一个点的完整的过去和未来的上下文信息。下图展示的是一个沿着时间展开的双向循环神经网络。六个独特的权值在每一个时步被重复的利用,六个权值分别对应:输入到向前和向后隐含层(w1,w3),隐含层到隐含层自己(w2, w5),向前和向后隐含层到输出层(w4, w6)。值得注意的是:向前和向后隐含层之间没有信息流,这保证了展开图是非循环的。


双向循环神经网络(BRNN)在时间上展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值