前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跨越时空:找回 RNN 消失的梯度

跨越时空:找回 RNN 消失的梯度

作者头像
double
发布2018-07-25 18:18:10
4590
发布2018-07-25 18:18:10
举报
文章被收录于专栏:算法channel算法channel
昨天介绍了神经网络的梯度消失问题,当隐含层的节点个数过多时,对于 RNN 来说理解为经过的时序过多时,梯度变化开始变小,直至消失。并且,这个问题很严重!因为无法区分是真正趋于收敛,还是存在训练误差,这样的结果是直接负面影响预测精度。那么,今天跟读者们讨论下如何解决这个梯度消失的问题。

斯坦福 NLP 的第 9 课后半部分给出了答案:主要应对梯度消失的措施是隐含层中采用更复杂的隐含单元。读者朋友们,你们可以回想下 RNN 的网络结果,隐含层中,前一个节点的输出直接输入到当前节点。过于简单! 学者们也意识到了这个问题,2014年,Cho教授率先提出了 Gated Recurrent Units (GRU),即带门的循环单元,结构如下所示,OMG!怎么这么复杂呢?不要慌张,大家顺着图,很自然地就可以得出右边的4个公式,至于结构为什么是这样,可以先不必深究。

当前隐含节点的输出 ht 是由上一节点的输出 ht-1 和 新增加的单元节点 ht^ 组成的。问题:

1、reset 门的作用怎么在公式中体现?

2、update 门起到什么作用,zt 接近0还是接近1时,过去的输入才对当前节点的影响变大?

以下是我个人的理解,如果理解不准确,多多包涵,请大家指出来。

reset 门和 update 门都包括上一个隐含节点的输出和当前节点的输入xt,不同的是权重参数和它们各自的指向,前者reset的输出只影响 memory节点,因此memory节点也成为reset记忆节点。

而 update节点会影响上一个节点的输出 ht-1 和 记忆节点的输出 ht^.所以,当 zt 接近 1时,上一个节点的输出会直接复制到当前节点,这是对当前节点的影响是最大的。

3、这种结构,为什么会消除梯度消失? RNN 网络结构的节点间的传输和反向传播只能是近邻传播,绝不会出现跨节点传播的情况,如下,出现了梯度消失

但是,GRU 网络结构使得跨节点传播成为可能,并且可能自适应地建立快捷连接,剪去那些不必要的节点连接,如下所示,正式通过这种节点间的更丰富的连接可能,使得梯度消失的问题得以解决。

所以,如果将节点比作站点地话,GRU就是通过跨越站点,防止梯度消失的。

大家一起思考一个问题,GRU可以忽略前一个节点的状态,满足的条件是什么呢? 欢迎大家留言,一起参与讨论。

0) 它的梯度去哪儿了?

1) 回馈读者:吴恩达机器学习完整系列视频教程

2) 足够惊艳:神经网络可以逼近任意函数吗?

3) 深度学习|大师之作,必是精品

4) 免费送6本精选的算法,机器学习,深度学习的书

5) 机器学习、深度学习干货分享


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

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档