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

原创
2020/04/19 20:52
阅读数 48




{

7 深度网络特殊结构

highway network/LSTM

}





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连接起来呢?要在横纵两个方向都弄一下:



扫码关注 一起畅聊

深耕在FPGA  扎根于视频领域 

卓越于神经网络


本文分享自微信公众号 - 瓜大三哥(xiguazai_tortoise)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部