双向 RNN 识别手写数字

本文介绍了双向RNN如何通过结合过去和未来的序列信息,改善手写数字识别任务的效果。通过实例展示了如何使用TensorFlow实现双向RNN,并进行训练和结果可视化,表明双向RNN相比单向RNN在手写识别中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前面几节我们学习的都是单向的 RNN,单向的结构有个局限,就是在当前时间点上只能利用过去的信息,而无法利用未来的序列信息的,这会影响一些需要上下文背景的任务效果。

例如命名实体识别中,有些名字在某些语境中也许代表的是玩具的名字,如果不考虑下文,很可能就被识别为人名;或者在手写识别中,知道当前位置的前面和后面是什么样子的,可以更好地判断这是什么字,提高预测准确率;又或者想要预测序列中的缺失值,就不仅要考虑它前面的词,还要考虑后面的词是什么;此外还可以用于语音识别、机器翻译、蛋白质结构预测、词性标注、依赖解析等任务中。

为了对单向结构的这个局限做出改进,于是就有了双向 RNN。

什么是双向 RNN

如上图所示,Bidirectional Recurrent Neural Networks——双向 RNN 就是把两个普通的单向 RNN 叠加在一起,输入序列以正向的时间顺序输入进其中一个网络,再以反向的时间顺序输入进另一个网络,这样就分别从两个方向计算序列的 output 和 state,然后将两个网络的激活值连接起来计算最终的输出值 y,有时也可以用求和的方式,这样在每个时间点,既可以利用之前的序列信息,也可以利用之后的序列信息

下面我们来举个例子更具体地看一下这个模型:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值