要解决的问题
普通的神经网络没有单独的存放处。模型在某一刻「知道」的东西,都存在于它的权重和流经它的激活值里,没有一块可以寻址、可以写入、之后还能读回来的独立存储。2014 年 10 月 20 日首次提交到 arXiv、编号 1410.5401 的《神经图灵机》(Neural Turing Machines),尝试补上的就是这一块 [1]。论文作者是 Alex Graves、Greg Wayne 和 Ivo Danihelka [1]。
把网络和记忆接起来
论文提出的做法,是把神经网络与外部记忆资源耦合起来,网络通过注意力过程(attentional processes)与这块记忆打交道 [1]。作者把这一组合系统类比为图灵机(Turing machine)或冯·诺依曼架构(von Neumann architecture),但强调它是端到端可微的 [1]。
这两个类比值得展开说一下。经典意义上的图灵机是一台抽象装置:一条纸带、一个在纸带上读写符号的读写头,外加一张告诉读写头下一步做什么的规则表。冯·诺依曼架构同样把处理器和数据存储分开。在这两种结构里,计算部件与记忆的接触都是离散的——读写头停在哪一格、写哪个符号、走一步,都是干脆的选择。这类操作是非此即彼的,而非此即彼的选择没有可用的导数。这正是论文要化解的矛盾,因为训练神经网络最常用的办法,就是算出误差对每个参数的导数,然后朝着让误差变小的方向调整。
搭起这座桥的是注意力。网络不必认准某一个记忆位置,它可以给各个位置分配权重,按权重读出若干位置内容的混合,或者按权重把内容写进多个位置。权重是连续量,所以记忆访问的结果会随着网络输出的变化而平滑变化,导数可以从这里传过去。同样的道理适用于整台机器:整条链路上没有任何一步会切断从输出到参数的导数。
这一点正是设计的关键。由于整个系统处处可微,它可以用梯度下降(gradient descent)高效训练 [1]——也就是神经网络常用的那种优化方法,把参数朝误差减小的方向调整。记忆不需要人工接好,也不需要写死读写的指令,它和其他部分一起被学出来。
初步结果
论文报告的初步结果显示,模型可以从输入输出样例中推断出复制、排序和联想回忆这类简单算法 [1]。在这些任务里,网络看到的是成对的输入和对应输出,而不是关于过程的说明,它必须自己把背后的规则找出来。复制是把输入序列原样重现;排序是把同样的元素按顺序输出;联想回忆是给出一个线索,取回当初与它一起存下的内容。这些都是小任务,但它们属于那种必须有个地方暂存中间材料才能完成的计算。
为什么重要
这篇论文留下的主要是框架,而不是某一个成绩。它给出了一种把神经网络和记忆当作同一个可训练对象来描述的方式,并借用了图灵机、冯·诺依曼架构这套词汇,让人一眼看出这个网络被期待具备什么能力 [1]。它也定下了一个套路:记忆放在外面、保持显式,寻址保持「软」,让梯度下降自己去找寻址方案。论文把结果明确定位为初步的 [1],展示的任务也只是简单算法,而非开放性问题。它真正确立的是这样一件事:网络与它的记忆之间的那道边界可以做成可微的,而按这种方式搭起来的模型,能仅凭样例学会过程性的东西。
注释与来源
- Neural Turing Machineshttps://arxiv.org/abs/1410.5401
引用本页: 神经图灵机. TellWorld, https://www.tellworld.net/zh/papers/neural-turing-machines-2014. 更新于 2026-11-07