上期我们一起学习了RNN的STML模块, 深度学习算法(第22期)----RNN中的LSTM模块术 今天我们一起简单学习下RNN中的另一个常用模块GRU模块 (Gated Recurrent Unit)。
上节,我们学过了STML模块,这节我们直接上图,now,GRU模块就长下面的样子:
从整体上看GRU和基本的RNN单元一样,有两个输入:当前时刻网络的输入值x(t), 上一时刻GRU的短时输出状态h(t-1);两个输出:当前时刻网络的输出值y(t), 当前时刻GRU短时输出状态h(t)。
其实GRU是LSTM的简化版本,并且表现的也挺不错。主要区别在于,GRU把LSTM中的两个状态c(t)和h(t)合并成了一个h(t)。
这里,其实我们可以这样看,假设控制开关r(t)和z(t)都为1的话,那么整个GRU就是一个最基本的RNN神经元。有了这个理解,就好办了,如果降低r(t),则进入主层的h(t-1)就会减少,也就是说r(t)决定了之前状态h(t-1)有多少能保留下来进入主层。如果降低z(t),那么1-z(t)就会增大,也就是说h(t-1)流到h(t)的东西就越多,相反主层的输出就较少。也就是说z(t)决定了多大程度上擦除之前状态。
其中GRU中的公式如下:
好了,至此,今天我们简单学习了RNN中GRU,希望有些收获,下期我们将一起学习下NLP中的Word Embeddings,欢迎留言或进社区共同交流,喜欢的话,就点个“在看”吧,您也可以置顶公众号,第一时间接收最新内容。
智能算法,与您携手,沉淀自己,引领AI!