起
神经网络图灵机(NTM)模型和Memory Network 分别由 DeepMind 和Facebook AI research 独立提出。让人惊讶的是,二者出奇一致的采用了外部记忆单元的来提升神经网络的性能。虽然二者结构差异还是比较明显的,但是核心的思想还是有不少共通之处的。
1. Neural Turing Machine
NTM的主要思想是,当一个样本输入后,由一个控制器决定从memory中寻址,找到需要读取的内容后将内容返回给控制器,控制器再结合样本和读取的内容更新memory,并且向外产生一个输出。
NTM的核心是,如何去从Memory中读数据,以及如何更新Memory
Memory
Memory 是一个 N×M 的矩阵,其中N是可以访问的地址个数,M是每个地址下面记忆向量的大小。
Reading
t时刻,控制器会根据当前的输入产生一个N维的读权重向量 wt ,就是读上的read heads
∑iwt(i)=1
所谓读就是对记忆矩阵的N个位置的记忆向量进行加权求和,即:
rt←∑iwt(i)Mt(i)
Writing
参考LSTM的实现,写的策略是先擦除,再写入
t时刻,控制器也会产生一个N维的写权重向量即图中write heads。
首先write heads 会使用删除向量(erase vector)对记忆矩阵的每个位置进行擦除记忆操作
Mt^(i)←Mt−1(i)[1−wt(i)et]