前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【干货】GRU神经网络

【干货】GRU神经网络

作者头像
zenRRan
发布2018-04-10 11:17:41
1.3K0
发布2018-04-10 11:17:41
举报

前用的最多的三种神经网络是CNN,LSTM,GRU。其中,后两者都是RNN的变种,去年又给RNN发明了个SRU(优点是train RNN as fast as CNN),SRU以后再讲,目前先消化了这个GRU再说。

GRU,Gated Recurrent Unit,门控循环单元。意思大概理解就是在RNN上多加了几个门,目的和LSTM基本一样,为了加强RNN神经网络的记忆能力。

我们先来回忆下最初的SimpleRNN

其中a是记忆单元,g是激活函数,x是输入,b偏执bias,t是时间点。

画图就是这样的:

比如下面的一个机器翻译的例子。

单数cat和was相聚甚远,如果考虑到SimpleRNN的长时间记忆会导致梯度消失的重大问题,有些人就在论文中提出了 GRU (Simplified)简化版。

首先,GRU的记忆单元是C

(也就是说上面的simpleRNN的a的功能给了C,主要是为了和LSTM区别开)

进入单元后,将用C~代替C:

重点来了,GRU的真正重要的思想是有一个

gamma u门,这个是希腊文,你看这个多像门呀,u代表update更新的意思,可以说这个是更新门。

因为

要设置在0-1之间,所以用的是sigmoid激活函数。实际中,

经常非常接近0或1。

我们假设cat,用一个bit记录这个特征,单数设为1,复数的话设为0。(真正网络中会有自己独特的特征记法)

我们希望这个记忆单元C=1能一直保留到was那里,如

即使不是1,实际上也不可能不变是1的,但是只要和1别差距太大就行。其他的特征让C中用其他的参数记录就行,别影响我cat的就行。

那么怎么才能保证cat的特征单元不变呢?这就用到下一个门了:

看上面的公式,我们想,怎么才能让C_t依然等于C_t-1时刻呢?那么就是

等于0的时候(这个肯定是理想情况了)

这个时候时间到了was这里时,C中还记着cat单数的事呢。而实际上,

是个负很大的数,也就是经过sigmoid后接近0了。所以,上述的情况是可以的。

到这里,这个简化版的GRU基本讲完了,看看可视化单元:

公式为:

是不是也看到简化俩字了?

是的没错,经过研究者的不断探究,终于研究出来一种适合几乎各种研究实验的新型GRU网络是这样的:

这个GRU可以经过经过更加深度的训练而保持强壮记忆力!

这里的第一个公式:

gamma r的这个r可以表示为relevance相关性,也就是新的t时刻的记忆单元C~和t-1时刻的记忆单元C的相关性。

而这个

是什么矩阵呢?刚好第三个式子

解释了

的意思,其中W_r是新的参数。

好啦,这里就真的讲完了。


以上来自自己学习Andrew课程的笔记。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
机器翻译
机器翻译(Tencent Machine Translation,TMT)结合了神经机器翻译和统计机器翻译的优点,从大规模双语语料库自动学习翻译知识,实现从源语言文本到目标语言文本的自动翻译,目前可支持十余种语言的互译。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档