我们将讨论为什么使用双向RNN(bidirectional RNN),它被用来做什么,它的架构,符号,术语,应用以及缺点等方面。
为什么我们要用它?在简单的循环神经网络(RNN,即循环神经网络)或单向的RNN中,最终的输出是基于之前的输入值。
但如果我们遇到一个问题,即未来的输入会影响过去的输出。示例:对于命名实体识别(NER)。为解决这些问题,我们使用双向RNNs。
示例:我们来看这两个句子句子1: 亚马逊是最佳的网站
亚马逊河,那条美丽的河
提到 Amazon
这个词时,可能会产生歧义,也就是说,Amazon
是归类为(ORG)组织还是(LOC)地点。
直到我们看到未来的输入信息之前,我们才能决定应该将这个单词 amazon
放在哪个分类?
双向RNN可以从句子的开头和结尾两个方向处理输入
双向RNN的结构下面紫色部分说的是RNN:
在 t = 1 时,会发 Amazon
当 t 等于 2 的时候,它就会被传输
在 t = 3 这个时刻,"best" 将会被发送
在 t = 4 时,网站会被发送。
绿色的RNN(递归神经网络)在这里
在 t = 1 时,网站会被发送。
在 t = 2 时,将会发送 best。
在 t=3 时,将被发送
当 t = 4 时,会发送亚马逊
在上面的图中,我们可以看到对于输出 y1 来说,紫色的 RNN 为单词 amazon
做出了贡献。绿色的 RNN 则为单词 the, best, website
做出了贡献。
双向RNN的概念也可以扩展到双向的LSTM和GRU。
应用- 实体识别
- 词性标注
- 机器翻译任务
- 情感分析
- 时间序列预测任务:使用双向循环神经网络时,性能会有所提升
- 复杂度:由于涉及两个RNN(一个正向一个反向),权重和偏置都翻倍了,因此训练时间也会相应增加。因此过拟合的可能性也会相应增加。
- 在实时应用双向RNN时会带来延迟问题(响应较慢)。例如,在实时语音识别场景中,除非说话人说完话,否则我们无法应用双向RNN。当数据不能一次性提供时,双向RNN的使用会遇到问题。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦