理解循环神经网络RNN的作用

      首先看一个简单案例,在某宝的好评/差评检测中,系统要能够分析用户的评价是好评还是差评,那怎样处理这样的评价数据呢,例如有一条评价“I hate this boring movie”

      机器怎样解决这样的问题呢

      首先我们在之前的时间序列表示中已经知道了怎样对一个单词进行表示。如果使用glove的话,整句话会表示成一个[5,100]的tensor

(100是glove规定的) 

      我们最简单的方式是,将这个100维的tensor和一个线性层相连接来提取其特征

深度学习与神经网络(八)——循环神经网络RNN

通过线性层最后汇总起来生成一个值,用于判断其二分类是好的评论还是差的

但这种方式有明显的缺陷

①如果句子的单词过长,或者是小说这样的,那么需要的[w,b]参数量就会非常大

②更为致命的是,我们人类说话是由上下语境信息的,上一句话说的什么,下一句话说的什么,需要联合起来做一个语句的推断。比如“我不喜欢你”,如果只是看到喜欢的话还以为是喜欢呢,所以肯定不能一个单词一个单词得去分析。所以我们相当于是需要一个consistent memory

 

改用权值共享的方式

深度学习与神经网络(八)——循环神经网络RNN

这是使用了卷积神经网络的weigth sharing的思路,所有单词的[w,b]都是相同的,来尝试减少网络的参数量

这代表着我这个线性层的抽取特征的能力是针对于所有单词的

这在一定程度上解决了长句子参数量过大的问题