NLP学习笔记七-多层RNN和双向RNN
接着之前写的博客内容,多层RNN,其实就是在,simple RNN的基础上,再套一层或多层RNN单元。
看如下网络结构图:
上图中A就是表示一个RNN网络,这里,其实有一个疑惑点,很多人可能认为,就是看上面图片,是不是我们输入多少个单词第一层就得有多少个RNN单元呢?RNN又叫做循环神经网络,之所以叫循环神经网络就是因为它可以循环利用,如下图,其实下面的A单元都是循环利用的。
有些人可能就考虑了,为什么要用循环的,我不用循环的不行吗?不用循环的当然也可以,但是RNN实际上很像一个简单的感知机神经网络,如果每一次输入数据的时候另起一个RNN单元,网络会过深,很容易发生梯度消失,另外也会导致网络训练开销非常大。
双向RNN:
双向RNN的网络结构图如下:
双向RNN会返回两个结果向量分别是 h t h_t ht和 h t ‘ h^{`}_t ht‘,我看的教学视频,这博主做的是文本分类,他说双向RNN效果很好,其实只是一个偶然,对于文本分类,双向RNN效果可能容易更好一点,这是因为双向RNN得到的两个结果向量可以更大程度的保留语句的信息,如果我们做的是文本推测,这就不一定效果会更好了。