李宏毅深度学习(2017)NLP&NLU

9.NN特殊结构(2)——Highway Network &am

2019-02-21  本文已影响11人  SpareNoEfforts

这里介绍三种特殊的结构:spatial transformer layer,highway network & grid LSTM,还有recursive network。
本节介绍:Highway Network & Grid LSTM



Highway network实际上受到了LSTM的启发,从结构上来看,深层的前馈网络其实和LSTM非常的像,如下图:


所以二者的差别就在于,在前馈【Feedforward network 】中只有一个input,而LSTM中每一层都要把这一个时刻的x也作为输入。
所以很自然的一个想法,在LSTM中有一个forget gate决定要记住以前多久的信息,那么在前馈网络中也可以引入一个gate来决定有哪些之前的信息干脆就不要了,又或者有哪些以前的信息直接在后面拿来用。
那最简单LSTM变种是GRU,所以highway network借鉴了GRU的方法,把reset gate拿掉,再把每个阶段的x拿掉。

在这里,我们做的改变就是:
①每一步中的input x^t 是没有的;
②每一步中的input y^t 是没有的;
③改一下变量符号,Recurent Network我们都用h表示神经网络的输出;但是feedfoward network我们用a表示
a^{t-1}是第t-1层的输出
⑤没有reset gate
,原因:

所以将GRU简化一下再竖起来,我们就可以得到highway network:


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

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


所以利用highway network有一个非常明显的好处就是可以避免前馈网络太深的时候会导致梯度消失的问题。另外有一个好处就是通过highway network可以让网络自己去学习到底哪个layer是有用的。
那既然可以将深度的记忆传递下去,那么这样的操作也可以用到LSTM里面,也就是grid LSTM。一般的LSTM是通过forget gate将时间方向上的信息传递下去的,但是并没有将layer之间的信息传递下去。因此grid LSTM就是加一个参数纵向传递,从而将layer的信息传递下去,直观上来说,就是在y后面再拼一个vector,然后这个vector的作用跟c一样。具体的可以看一下DeepMind的这篇论文,Grid LSTM。粗略来说,结构上像这样:


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

接下来,让我们看看Grid LSTM 的内部原理图:
上一篇下一篇

猜你喜欢

热点阅读