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

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

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

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

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

(100是glove规定的) 

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

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

但这种方式有明显的缺陷

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

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

 

解决长句子参数量过大的问题

改用权值共享的方式

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

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

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

 

解决consistent memory的问题

用一个持续的单元贯穿整个网络,能保存语境信息
h单元的功能就是类似memory

 

折叠形式的表示形式

非折叠形式

这两种方式是等价的

 

最后的输出到底是用哪个h完全由自己决定,可以只采用最后时间的ht,也可以把每个时间的ht综合起来做一个聚合

 

 

下面我们来比较规范地书写一下RNN的公式

RNN和CNN的区别
CNN就是一股脑地往前传,RNN会不停地自我更新


RNN的激活函数是tanh,而CNN是ReLu/sigmoid

Whh和Wxh整个过程都是一样的,权值共享

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值