Neural Turing Machines

神经图灵机

【总述】本文通过将神经网络与外部存储资源结合起来构建神经图灵机,来扩展神经网络的功能。通过对复制、排序、联想等算法的实验表明神经图灵机可以从输入输出示例中推出简单算法。

1、【递归神经网络】

递归神经网络(Recurrent neural networks,RNNs)能够在较长的时间内学习和执行复杂的数据转换,且具有模拟任意程序的能力。RNNs的状态既取决于系统的输入又取决于当前状态,具有更丰富的存储和计算能力。理想的递归是x(t + 1)= x(t)+ i(t),其中i(t)是系统的输入。

2、【神经图灵机】

为了简化RNNs算法,本文扩充了递归网络形成“神经图灵机”(Neural Turing Machines,NTM),其通过大型的、可寻址的存储进行,使用注意过程选择性地读取和写入内存,为学习程序提供一种实用机制。NTM架构包含两个组件:神经网络控制器(neural network controller)和存储库(memory bank)。

【图1】神经图灵机架构。控制器通过输入和输出向量与外部进行交互,使用选择性读取和写入操作与存储进行交互。虚线表示NTM与外界之间的划分。

研究者们将网络输出称为“头heads”,还定义了“模糊blurry”读写操作。模糊操作与内存中的所有元素或多或少地相互作用。模糊程度由注意力“聚焦”机制确定,该机制限制读取和写入操作与存储器的一小部分交互。每个读写磁头都有一个权重,定义了磁头在每个位置的读写程度。

【寻址机制】

读写权重是通过将两种寻址机制结合在一起产生的。一种是“基于内容的寻址content-based addressing”,基于位置值和控制器发出值之间的相似性,将注意力集中在位置上。另一种为“基于位置的寻址location-based addressing”,通过位置来寻址。

【控制器网络】

NTM最重要的参数是用作控制器的神经网络类型是递归网络还是前馈网络(feedforward network)。前馈控制器可以通过在每个步骤中在相同位置进行读写来模仿递归网络,其局限在于并发读和写磁头的数量对NTM执行的计算类型造成了瓶颈,而递归控制器有自己的内部存储器,不受此限制。

3、【实验】

对简单算法任务的初步实验。均有三种条件:具有前馈控制器的NTM、具有LSTM控制器的NTM和标准LSTM网络

LSTM:递归网络的一项关键创新是长的短期记忆(Long Short-Term Memory)。LSTM在网络中嵌入了用于内存存储的完美集成器。

【复制】

复制任务测试NTM是否可以存储和调用长序列的任意信息、是否有更长的时间延迟。训练网络复制8位随机向量的序列,序列长度在1到20之间随机。

【图2】复制学习曲线。NTM比单独使用LSTM快得多
【图3】 复制任务的NTM结果。上边两行描述了长度为10,20,30和50的测试序列的网络输出和对应目标,下面两行是长度为120的序列。可以发现前四个序列的复制具有很高的可信度和很少的错误,但120序列出现很大错误。
【图4】复制任务的LSTM结果,与图4顺序相同。LSTM几乎完美地再现了20的序列,但在更长的序列中表现差
【图5】使用NTM存储的复制任务。左图描述了在复制任务的单个测试序列中网络的输入(上边)、添加到内存的向量(中间)和相应的写入权重(下边)。右图显示了网络的输出、从内存读取的向量和读取的权重。所有权重都集中在内存中的单个位置上(黑色表示权重为零,白色表示权重为1)。观察到读取位置与写入位置完全匹配,并且读取向量与加法向量匹配。表明网络在输入阶段将每个输入向量依次写入特定的存储位置,然后在输出阶段从相同的位置序列进行读取。

分析表明,NTM已经学会结合了基于内容和位置的寻址的复制算法。

【重复复制】

重复复制任务要求网络将复制的序列输出指定的次数,然后发出序列结束标记。看NTM是否可以学习简单的嵌套函数。网络接收随机二进制矢量的随机长度序列。后跟一个标量值,该值指示所需的次数,出现在单独的输入通道上。网络可以重现8个随机二元向量的序列,序列长度和重复次数都是从1到10随机。

【图6】重复复制学习曲线。二者都能完美地解决任务,但NTM的学习比LSTM快得多
【图7】重复复制任务的NTM和LSTM。NTM几乎可以完美地扩展到更长的序列,但无法预测序列何时结束。LSTM显然更差。
【图8】使用NTM存储的重复复制任务。表明NTM在上一节中学习了复制算法的简单扩展

【联想】

先前的任务表明NTM可以将算法应用于相对简单的线性数据结构。本阶段测试NTM学习类的实例的能力,以便对其中一个项目进行查询要求网络返回下一个项目。每个项目都由三个六位二进制矢量组成(每个项目总共18位)。训练期间,在单集中至少使用了2个项目,最多使用了6个项目。

【图9】NTM和LSTM的联想学习曲线。NTM的学习任务比LSTM快得多。此外,具有前馈控制器的NTM学习速度比具有LSTM控制器的NTM学习速度快。表明NTM的外部存储器是一种比LSTM的内部状态更有效的数据结构维护方法。
【图10】使用NTM存储的联想任务。在“输入”中,一系列项目被传播到控制器。绿色框为查询项,红色框为网络目标的后续项。在“输出”中,我们看到网络正确地生成了目标项。读取和写入权重中的红色框突出显示了写入和读取目标项目的位置。网络的解决方案是对可以存储在单个位置的每个项目形成一个压缩的表示形式(“添加”中的黑框)。这意味着内存访问算法:当显示每个项目定界符时,控制器将写入该项的目前三个时间片压缩表示。查询到达后,控制器将重新计算查询项目的相同压缩表示形式,使用基于内容的寻址来找写入第一个表示形式的位置,然后再移位一个以生成序列中的后续项目。【Dynamic N-Grams】动态N-Grams任务的目标是测试NTM是否可以快速适应新的预测分布
【图11】动态N-Gram学习曲线。与LSTM相比,NTM具有显著的性能优势,但收敛未达到最佳。
【图12】动态N-Gram推理。最上行显示了来自N-Gram任务的测试序列,下面的行显示了最佳估算、NTM和LSTM的相应预测分布。在大多数地方,NTM预测与最佳预测几乎没有区别但也会犯错误(红箭头)。LSTM在某些地方紧随最佳预测,但随着序列的进行而趋于分散。
【图13】使用NTM内存的动态N-Gram任务。红绿箭头指示在测试序列期间重复观察到相同上下文的点。在每个这样的点,读取头都访问同一位置,然后在下一个时间上,写入头就访问同一位置。加法向量在输入为1或0的地方是反相关的,表明分布是“计数器”。表明控制器使用内存来计数在不同上下文中观察到的1和0,从而可以实现类似于最佳估计器的算法。

【优先排序】

此任务测试NTM是否可以对数据进行排序。一系列随机二进制向量与每个向量的标量优先级等级一起输入到网络。优先级从[-1,1]范围中得出。目标序列包含根据其优先级排序的二进制向量,如图14。

【图14】优先排序任务的示例输入和目标序列。

对观察到的写入位置拟合了优先级的线性函数。

【图15】使用NTM内存的优先排序任务。左:通过将优先级的线性函数拟合到观察到的写入位置来返回写入位置。中:观察到的写入位置。右:读取位置。显示线性函数返回的位置与观察到的写入位置非常匹配
【图16】优先排序学习曲线。同时具有前馈和LSTM控制器的NTM在此任务上的性能明显优于LSTM。

4、【结论】

本文引入了神经图灵机,实验表明它能从示例数据中学习简单的算法。

你可能感兴趣的:(Neural Turing Machines)