神经网络图灵机(Neural Turing Machines, NTM)

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

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

版权所有,禁止转载。


神经网络图灵机

Alex Graves [email protected]
Greg Wayne [email protected]
Ivo Danihelka [email protected]

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. 基础研究

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

时间: 2024-10-08 03:16:10

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

Neural Turing Machine - 神经图灵机

Neural Turing Machine - 神经图灵机 论文原文地址: http://arxiv.org/pdf/1410.5401.pdf 一般的神经网络不具有记忆功能,输出的结果只基于当前的输入:而LSTM网络的出现则让网络有了记忆:能够根据之前的输入给出当前的输出.但是,LSTM的记忆程度并不是那么理想,对于比较长的输入序列,LSTM的最终输出只与最后的几步输入有关,也就是long dependency问题,当然这个问题可以由注意力机制解决,然而却不能从根本上解决长期记忆的问题,原因是

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

Neural Turing Machines-NTM系列(一)简述 NTM是一种使用Neural Network为基础来实现传统图灵机的理论计算模型.利用该模型,可以通过训练的方式让系统"学会"具有时序关联的任务流. 论文:http://arxiv.org/abs/1410.5401 中文翻译:http://www.dengfanxin.cn/?p=60 ppt:http://llcao.net/cu-deeplearning15/presentation/NeuralTuringMa

Neural Turing Machines-NTM系列(三)ntm-lasagne源码分析

Neural Turing Machines-NTM系列(三)ntm-lasagne源码分析 在NTM系列文章(二)中,我们已经成功运行了一个ntm工程的源代码.在这一章中,将对它的源码实现进行分析. 1.网络结构 1.1 模块结构图 在图中可以看到,输入的数据在经过NTM的处理之后,输出经过NTM操作后的,跟之前大小相同的数据块.来看下CopyTask的完整输出图: 图中右侧的Input是输入数据,Output是目标数据,Prediction是通过NTM网络预测出来的输出数据,可以看出预测数据

深度学习笔记(一)卷积神经网络(Convolutional Neural Networks)

一.卷积 卷积神经网络(Convolutional Neural Networks)是一种在空间上共享参数的神经网络.使用数层卷积,而不是数层的矩阵相乘.在图像的处理过程中,每一张图片都可以看成一张"薄饼",其中包括了图片的高度.宽度和深度(即颜色,用RGB表示). 在不改变权重的情况下,把这个上方具有k个输出的小神经网络对应的小块滑遍整个图像,可以得到一个宽度.高度不同,而且深度也不同的新图像. 卷积时有很多种填充图像的方法,以下主要介绍两种,一种是相同填充,一种是有效填充. 如图中

神经网络机器翻译Neural Machine Translation(1): Encoder-Decoder Architecture

端到端的神经网络机器翻译(End-to-End Neural Machine Translation)是近几年兴起的一种全新的机器翻译方法.本文首先将简要介绍传统的统计机器翻译方法以及神经网络在机器翻译中的应用,然后介绍NMT中基本的"编码-解码"框架(Encoder-Decoder). 转载请注明出处:http://blog.csdn.net/u011414416/article/details/51048994

卷积神经网络 (Convolutional Neural Networks)

卷积神经网络(CNN)是deep learning的基础.传统的全连接神经网络(fully connected networks) 以数值作为输入. 如果要处理图像相关的信息的话,要另外从图像中提取特征并采样.而CNN把提特征.下采样和传统的神经网络整合起来,形成一个新的网络. 本博文已经假设你已经有了简单神经网络的概念,如“层”.“神经元”. 1. 理论基础 图1 如图1所示,这是一个简单的卷积神经网络 CNN.其中C层代表对输入图像进行滤波后得到的所有组成的层,也称“卷积层”.S层代表对输入

脉冲神经网络Spiking neural network

(原文地址:维基百科) 简单介绍: 脉冲神经网络Spiking neuralnetworks (SNNs)是第三代神经网络模型,其模拟神经元更加接近实际,除此之外,把时间信息的影响也考虑当中.思路是这种,动态神经网络中的神经元不是在每一次迭代传播中都被激活(而在典型的多层感知机网络中却是),而是在它的膜电位达到某一个特定值才被激活.当一个神经元被激活,它会产生一个信号传递给其它神经元,提高或减少其膜电位. 在脉冲神经网络中,神经元的当前激活水平(被建模成某种微分方程)通常被觉得是当前状态,一个输

【原创】深度神经网络(Deep Neural Network, DNN)

线性模型通过特征间的现行组合来表达“结果-特征集合”之间的对应关系.由于线性模型的表达能力有限,在实践中,只能通过增加“特征计算”的复杂度来优化模型.比如,在广告CTR预估应用中,除了“标题长度.描述长度.位次.广告id,cookie“等这样的简单原始特征,还有大量的组合特征(比如”位次-cookie“ 表示用户对位次的偏好).事实上,现在很多搜索引擎的广告系统用的都是Logistic Regression模型(线性),而模型团队最重要的工作之一就是“特征工程 (feature engineer

神经网络(Neural Network)

#!/usr/bin/env python # -*- coding: utf-8 -*- import numpy as np#矩阵运算 def tanh(x): return np.tanh(x) def tanh_deriv(x):#对tanh求导 return 1.0 - np.tanh(x)*np.tanh(x) def logistic(x):#s函数 return 1/(1 + np.exp(-x)) def logistic_derivative(x):#对s函数求导 retur