前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >李宏毅深度学习之Deep Learning神经网络特殊结构(二)

李宏毅深度学习之Deep Learning神经网络特殊结构(二)

作者头像
瓜大三哥
发布2020-05-08 11:29:16
9550
发布2020-05-08 11:29:16
举报
文章被收录于专栏:瓜大三哥

7.2highway network & grid LSTM

HighwayNetwork主要解决的问题是,网络深度加深,梯度信息回流受阻造成网络训练困难的问题。先看下面的一张对比图片,分别是没有highway和有highway的。

可以看到当网络加深,训练的误差反而上升了,而加入了highway之后,这个问题得到了缓解。

HighwayNetwork和gridLSTM二者的差别就在于,在前馈【Feedforwardnetwork】中只有一个input,而LSTM中每一层都要把这一个时刻的x也作为输入。所以很自然的一个想法,在LSTM中有一个forgetgate决定要记住以前多久的信息,那么在前馈网络中也可以引入一个gate来决定有哪些之前的信息干脆就不要了,又或者有哪些以前的信息直接在后面拿来用。

那最简单LSTM变种是GRU,所以highway network借鉴了GRU的方法,把resetgate拿掉,再把每个阶段的x拿掉。

在这里,我们做的改变就是:①每一步中的inputxt是没有的;②每一步中的inputyt是没有的;③改一下变量符号,RecurentNetwork我们都用h表示神经网络的输出;但是feedfowardnetwork我们用network表示④at-1是第t-1层的输出⑤没有resetgate,原因:

  • reset gete是让GRU忘记之前发生过的事情,但是在highway network里面不应该忘记,(因为GRU里面每一个时间点都会有新的information进来,所以可以忘记过去的事情,忘记的也许是不重要的信息,比如语音辨识某句话,某些词汇已经完全辨识出来了,所以就可以忘记了;但是highway network里面,他是一个feedforward network,只有一开始的时候有一个输入,因此中间没有输入,不能忘记信息);
  • 少了很多参数; 所以将GRU简化一下再竖起来,就可以得到highway network:

当然感觉也可以将ResNet看做是竖起来的LSTM。那ResNet里面的变换可以是很多层的,所以在现在的实现中,很常见的一个情况是将这个东西叫做一个residualblock。

这种highway network好处就是,你可自动控制要用多少个layer。如下图,红色的手写数字代表这个network用了多少层:

所以利用highwaynetwork有一个非常明显的好处就是可以避免前馈网络太深的时候会导致梯度消失的问题。另外有一个好处就是通过highwaynetwork可以让网络自己去学习到底哪个layer是有用的。

那既然可以将深度的记忆传递下去,那么这样的操作也可以用到LSTM里面,也就是gridLSTM。一般的LSTM是通过forgetgate将时间方向上的信息传递下去的,但是并没有将layer之间的信息传递下去。因此gridLSTM就是加一个参数纵向传递,从而将layer的信息传递下去,直观上来说,就是在y后面再拼一个vector,然后这个vector的作用跟c一样。具体的可以看一下DeepMind的这篇论文,GridLSTM。粗略来说,结构上像这样:

怎么把这些gridLSTM的block连接起来呢?要在横纵两个方向都弄一下:

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

本文分享自 瓜大三哥 微信公众号,前往查看

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

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

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