记忆网络之Neural Turing Machines
前面介绍了Memory Networks相关的几篇文献,接下来让我们从新回到Memory的起点,也就是DeepMind在14年发表的“Neural Turing Machines”这篇论文。这是第一篇提出使用外部memory模块来增强神经网络记忆能力的论文,我将结合Tristan Deleu的博客对该论文进行介绍。(因为论文很长,前面两章都是从历史根源或者神经学发展论述的,感兴趣的可以直接从论文第三章看,然后第四章就已经是实验验证了==)。
在开始介绍NTM之前,我们先来看一下其与LSTM的区别。首先LSTM通过输入门、忘记门、输出门来控制hidden state中保存的信息,门控方法改进了RNN的梯度弥散和梯度爆炸现象,从而实现长期记忆的功能。但是其在每一步更新过程中所有的隐层向量都会被更新,h的频繁更新,导致其无法记录更长久的信息。而且hidden_size也限制了模型记忆信息的容量。而memory-augmented的网络通常只对某些相关的memory进行修改(通过特定的寻址读写机制),而不会同时修改所有的memory的值,这就使memory networks可以记录更长的依赖关系,而且外部的记忆矩阵可以方便的扩大模型的记忆空间,从而存储更多的信息量。举个最简单的例子,下面第一个图是NTM的结果,第二个图是LSTM的结果,每个子图下面的是预测,上面的是真实值。对比可以发现LSTM在序列长度为30的时候就已经无法正常预测,而NTM在序列长度为50的时候还可以预测的很好。