近期,Google Deep Mind团队提出了一个机器学习模型,并起了一个特别高大上的名字:神经网络图灵机,我为大家翻译了这篇文章,翻译得不是特别好,有些语句没读明白,欢迎大家批评指正 

原论文出处:http://arxiv.org/pdf/1410.5401v1.pdf。

版权所有,禁止转载。


神经网络图灵机

Alex Graves gravesa@google.com
Greg Wayne gregwayne@google.com
Ivo Danihelka danihelka@google.com

Google DeepMind, London, UK

摘要

本文通过引入一个使用注意力程序进行交互的外部存储器(external memory)来增强神经网络的能力。新系统可以与图灵机或者冯·诺依曼体系相类比,但每个组成部分都是可微的,可以使用梯度下降进行高效训练。初步的结果显示神经网络图灵机能够从输入和输出样本中推理出(infer)简单的算法,如复制、排序和回忆。

1. 简介

计算机程序在执行计算任务的过程中(Von Neumann, 1945)使用了三个基本机制:初等运算(如算术操作),逻辑控制流(分支循环)和可读写的存储器。虽然在建模复杂数据方面取得了广泛的成功,现代机器学习理论却普遍忽略了对控制流和存储器的使用。
由于其对带有时间属性的数据的进行学习和复杂转换的能力,递归神经网络脱颖而出。进一步,RNN又被证明是图灵完全等价的 (Siegelmann and Sontag, 1995),因而只要合理建模,它就可以模拟任何计算过程。但是理论上可行不代表实践中容易实现。为此,我们增强了标准递归网络的能力从而simplify the solution of algorithmic tasks。这个增强方案主要是依赖一个较大的、可寻址的存储器,而相似地,图灵机是使用一个无穷存储带来增强有穷状态机,因而,我们称这种新设备为”神经网络图灵机”。不同于图灵机的是,NTM是一个可微的计算机,能够使用梯度下降进行训练,对于学习程序来说是一个很实用的机制。
在人类识别能力中,the process that shares the most similarity to algorithmic operation is known as “working memory.”。在神经生理学中,工作记忆的运行机制尚不清楚,根据字面意思,可以理解为是信息的短期存储和基于规则的操作集合(Baddeley et al., 2009)。在计算机术语中,这些规则就是程序,存储的信息构成了这些程序的参数。既然NTM被设计用来对“快速创建的变量”应用近似的规则,所以它模仿了一个工作记忆系统。快速创建的变量(Rapidly-created variables) (Hadley, 2009) 是可以快速绑定到存储槽的数据,就像传统计算机中数字3和4被放在寄存器然后相加得到7(Minsky, 1967)。由于NTM架构使用了注意过程来对存储器进行选择性读写,所以NTM使用了另一个相似的工作记忆模型。与大多数工作记忆模型相比,我们的架构能够学习使用他的工作记忆,而不需要为符号数据引入一系列固定的程序。
本文首先对在心理学、语言学和神经科学以及人工智能和神经网络等领域与工作记忆相关的研究做一简单回顾。然后描述我们的主要工作,一个存储架构和注意力控制器,并且我们相信这个控制器可以满足简单程序的归纳(induction)和执行(execution)这类任务的性能要求。为了测试这个结构,我们设计了一些问题,并给出了详细的测试结果。最后总结这个架构的有点。

2. 基础研究

更多和更佳阅读体验,前往主站

 

神经网络图灵机(Neural Turing Machines, NTM)的更多相关文章

  1. Neural Turing Machine - 神经图灵机

    Neural Turing Machine - 神经图灵机 论文原文地址: http://arxiv.org/pdf/1410.5401.pdf 一般的神经网络不具有记忆功能,输出的结果只基于当前的输 ...

  2. Neural Turing Machines-NTM系列(一)简述

    Neural Turing Machines-NTM系列(一)简述 NTM是一种使用Neural Network为基础来实现传统图灵机的理论计算模型.利用该模型.能够通过训练的方式让系统"学 ...

  3. 循环神经网络(Recurrent Neural Networks, RNN)介绍

    目录 1 什么是RNNs 2 RNNs能干什么 2.1 语言模型与文本生成Language Modeling and Generating Text 2.2 机器翻译Machine Translati ...

  4. 递归神经网络(Recursive Neural Network, RNN)

    信息往往还存在着诸如树结构.图结构等更复杂的结构.这就需要用到递归神经网络 (Recursive Neural Network, RNN),巧合的是递归神经网络的缩写和循环神经网络一样,也是RNN,递 ...

  5. 吴恩达《深度学习》-第一门课 (Neural Networks and Deep Learning)-第三周:浅层神经网络(Shallow neural networks) -课程笔记

    第三周:浅层神经网络(Shallow neural networks) 3.1 神经网络概述(Neural Network Overview) 使用符号$ ^{[

  6. 吴恩达《深度学习》-第一门课 (Neural Networks and Deep Learning)-第四周:深层神经网络(Deep Neural Networks)-课程笔记

    第四周:深层神经网络(Deep Neural Networks) 4.1 深层神经网络(Deep L-layer neural network) 有一些函数,只有非常深的神经网络能学会,而更浅的模型则 ...

  7. DeepCTR专题:Neural Factorization Machines 论文学习和实现及感悟

    papers地址:https://arxiv.org/pdf/1708.05027.pdf 借用论文开头,目前很多的算法任务都是需要使用category feature,而一般对于category f ...

  8. 卷积神经网络(Convolutional Neural Network, CNN)简析

    目录 1 神经网络 2 卷积神经网络 2.1 局部感知 2.2 参数共享 2.3 多卷积核 2.4 Down-pooling 2.5 多层卷积 3 ImageNet-2010网络结构 4 DeepID ...

  9. Neural Networks and Deep Learning 课程笔记(第三周)浅层神经网络(Shallow neural networks)

    3.1 神经网络概述(Neural Network Overview ) (神经网络中,我们要反复计算a和z,最终得到最后的loss function) 3.2 神经网络的表示(Neural Netw ...

随机推荐

  1. Windows下React Native开发01 -- Android开发环境搭建

    1.安装jdk 推荐将JDK的bin目录加入系统PATH环境变量(自己百度下怎么配置). 2.安装SDK 直接安装 Android Studio  推荐从AndroidDevTools下载.(也可以直 ...

  2. Reduce 任务的完整数据流

  3. 解决Mysql存储中文的问题

    Mysql无法存储中文或者中文乱码,当然是编码的问题.你可以mysql -u root -p进入Mysql命令行环境,然后输入命令查看当前编码格式: mysql> show variables ...

  4. MAC Wireshark抓包IOS

    网络抓包是个基础技能,对于网络协议的掌握有一定的要求.iOS上实现网络抓包可以用Charles(针对http和https),tcpdump(快速分析网络包),和Wireshare.之前写过一篇介绍tc ...

  5. const与static类成员

    const成员函数作用1. 不能修改类的成员变量,同时不能调用类的非const成员函数.(const成员函数中,this的类型是一个指向const类类型对象的const指针,const成员函数返回*t ...

  6. socket实现web server

    http://blog.csdn.net/u012734441/article/details/44801523 很好的一个例子,现在java程序原开发web服务端程序基本上都使用现成的web框架,这 ...

  7. (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作

    上午写了下单向循环链表的程序,今天下午我把双向链表的程序写完了.其实双向链表和单向链表也是有很多相似的地方的,听名字可以猜到,每个节点都包含两个指针,一个指针指向上一个节点,一个指针指向下一个节点.这 ...

  8. 【Hnoi2013】Bzoj3143 游走

    Position: http://www.lydsy.com/JudgeOnline/problem.php?id=3143 List Bzoj3143 Hnoi2013 游走 List Descri ...

  9. cmd 批处理文件(.bat)文件的编写

    1. 获取当前文件所在的路径信息 CMD获取当前目录的绝对路径 创建如下的名为 test.bat的文本文件: @echo off echo 当前盘符:%~d0 echo 当前盘符和路径:%~dp0 e ...

  10. linux下的so、o、lo、a、la文件的区别

    o: 编译的目标文件a: 静态库,其实就是把若干o文件打了个包so: 动态链接库(共享库) lo: 使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息la: 使用libtool编译出 ...