深度学习 《BiRNN》

写此博文的时候,已经是欧洲凌晨一点了,今天一口气写了三篇,趁着国庆节的尾巴,赶紧搞一搞,不然等周一上班了就时间少了。

一:BiRNN
在这里插入图片描述

也就是双向循环网络,之前我们学习的标准RNN,LSTM,GRU都是单向的,即便是我们学过多层的RNN也是单向的,每个Cell只关心当前时刻和之前时刻的输入,其实更复杂的场景下,尤其是语言环境下,我们需要关注语言的上下文,也就是需要根据为了时刻的输出来得到当前的输出,说白了就是不仅仅要向前看,用之前的数据参与当前的任务计算,还要向后看,用未来的输出参与当前任务计算。

举个例子,有两句话:
“I Like Apple Tree”和“I Like Apple company”在说到苹果的时候,我们如果不看后面的语言环境,我们无法得知,这个苹果是水果里的那个苹果还是科技公司苹果。这就是需要使用双向的循环网络了。

值得注意的是,在BiRNN里面,这里的每个Cell都是可以标准的RNN或者是LSTM Cell或者是GRU Cell,它只是提供了在连接结构上的双向连接罢了,每个连接还是单向的,只不过方向相反,组合起来对于输出而言就做到了双向的考虑。

时间太晚了,后面的博客会给出在PyTorch下实现 LSTM,GRU,BiRNN的代码

猜你喜欢

转载自blog.csdn.net/qq_29367075/article/details/108958808