资讯 人工智能
此为临时链接,仅用于文章预览,将在时失效

神经网络图灵机:深度学习中与内存进行交互的基本方法

作者:AI研习社-译站
2018/06/26 20:26

雷锋网按:本文为雷锋字幕组编译的技术博客,原标题Neural Turing Machines: a fundamental approach to access memory in deep learning,作者为Jonathan Hui。

翻译 | 赵朋飞    校对 |  凡江

内存是大脑和计算机的主要部件。在很多深度学习领域,我们通过和记忆匹配来扩展深度网络的能力,例如,提问与回答,我们先记忆或存储事先处理的信息,然后使用这些信息回答问题。来自神经图灵机(NTM)论文(https://arxiv.org/pdf/1410.5401.pdf):

我们通过将神经网络连接到外部存储资源来扩展神经网络的功能,通过记忆过程与这些资源进行交互。  

在外行看来,我们创建了一个记忆结构,通常是数组,我们向记忆结构中写入或从其中读取数据。听起来很简单:但事实并非如此。首先,我们没有无限的存储空间用来保存我们遇到的图片或声音,我们是通过相似性或相关性来访问信息(并不完全匹配)。在这篇文章中,讨论了如何使用NTM来处理信息。我们之所对这篇论文感兴趣,主要是因为在包括NLP和元学习等很多研究领域,她都是一个重要的起点。


记忆结构

我们的记忆结构Mt包含N行,M个元素。每行代表一条信息(记忆),例如,你对表兄的描述。

神经网络图灵机:深度学习中与内存进行交互的基本方法


读取

通常编程中,我们使用Mt[i]访问记忆。但对于人工智能来说,我么通过相似性获取信息。所以我们推出了一个使用权重的阅读机制,也就是说,我们得到的结果是内存的加权和。

神经网络图灵机:深度学习中与内存进行交互的基本方法

神经网络图灵机:深度学习中与内存进行交互的基本方法

所有权值总和等于1。

你可能立即会问这样做的目的是什么。让我们通过一个例子来解释。一个朋友递给你一杯饮料,它尝起来有点像茶,并感觉像牛奶,通过提取茶和牛奶的记忆资料,应用线性代数方法得出结论:它是珍珠奶茶。听起来很神奇,但在单词潜入中,我们也使用了相同的线性代数来处理关系。在其他的例子比如提问和回答中,基于累计的知识来合并信息是非常重要的。一个记忆网络会让我们很好的达成目标。

我们如何创建这些权值呢? 当然,需要依靠深度学习。控制器从输入信息中提取特征(kt),我们利用它计算权值。例如,你打电话时,不能立即分辨出对方的声音,这个声音很像你的表弟,但有似乎又像你的哥哥。通过线性代数,我们可能分辨出他是你的高中同学,即便那个声音完全不像你记忆中的样子。

神经网络图灵机:深度学习中与内存进行交互的基本方法

通过计算权值w,对比kt和我们每条记忆的相似性,我们用余弦相似性计算出了一个分数K。

神经网络图灵机:深度学习中与内存进行交互的基本方法

这里, u是我们提取的特征量kt,v代表我们内存中的每一行。

神经网络图灵机:深度学习中与内存进行交互的基本方法

我们将softmax函数应用于分数K,来计算权值w。 βt 被添加进来用于放大或缩小分数的差异。 例如,如果它大于1,就放大差异。w基于相似性检索信息,我们称之为内容寻址。

写入

我们如何将信息写入记忆。在 LSTM中,一个记忆单元的内部状态由之前的状态和当前输入值共同决定。借用相同的情形,记忆的写入过程也是由之前的状态和新的输入组成。这里我们先清除部分之前的状态:

神经网络图灵机:深度学习中与内存进行交互的基本方法

 et是一个清除向量。 (计算过程就像LSTM中的输入门一样)

然后,我们写入新的信息。

神经网络图灵机:深度学习中与内存进行交互的基本方法

at是我们想添加的值。

这里,通过产生w的控制器,我们可以向记忆中写入或读取信息。

神经网络图灵机:深度学习中与内存进行交互的基本方法来源https://arxiv.org/pdf/1410.5401.pdf


寻址机制

我们的控制器通过计算w来提取信息,但是采用相似性(内容寻址)来提取信息还不够强大。

补充

w表示我们记忆中当前的焦点(注意力)。在内容寻址中,我们的关注点只基于是新的输入。然而,这不足以解释我们最近遇到的问题。例如,你的同班同学在一小时之前发信息给你,你应该可以很容易 回想起他的声音。在获取新的信息时我们如何利用之前的注意力?我们根据当前的焦点和之前的焦点 计算出合并权值。是的,这挺起来有点像LSTM或GRU中的遗忘门。

神经网络图灵机:深度学习中与内存进行交互的基本方法

根据之前的焦点和当前输入计算出g。

卷积变换

卷积变换完成焦点的变换。它并不是特地为深度学习设计的。相反,她揭示了NTM如何执行像复制与排序这样的基础算法。例如,不用通过访问w[4],我们想把每个焦点移动3行,也就是 w[i] ← w[i+3]。

在卷积变换中,我们可以将需要的焦点移动到指定的行,即w[i] ←卷积(w[i+3], w[i+4], w[i+5] )  。通常,卷积仅仅是行的线性加权和: 0.3 × w[i+3] + 0.5 × w[i+4] + 0.2 × w[i+5]。

神经网络图灵机:深度学习中与内存进行交互的基本方法

这是焦点变换的数学公式:

神经网络图灵机:深度学习中与内存进行交互的基本方法

在很多深度学习模型中,我么忽略这一步或者设置s(i)为 0,s(0) = 1例外。

锐化

我们的卷积移位就像一个卷积模糊滤波器。所以在有需要时,我们会对权值采用用锐化技术,达到模糊的效果,γ将会是在锐化焦点时控制器输出的另一个参数。 

神经网络图灵机:深度学习中与内存进行交互的基本方法

小结

我们使用权值w从记忆中检索信息。w包括这些因素:当前输入,以前的交点,可能的变换与模糊。这里是系统框图,其中控制器输出必要的参数,这些参数用于在不同的阶段计算w。 

神经网络图灵机:深度学习中与内存进行交互的基本方法


博客原址 https://medium.com/@jonathan_hui/neural-turing-machines-a-fundamental-approach-to-access-memory-in-deep-learning-b823a31fe91d

更多文章,关注雷锋网,添加雷锋字幕组微信号(leiphonefansub)为好友

备注「我要加入」,To be an  AI  Volunteer !

神经网络图灵机:深度学习中与内存进行交互的基本方法

雷锋网雷锋网


长按图片保存图片,分享给好友或朋友圈

神经网络图灵机:深度学习中与内存进行交互的基本方法

扫码查看文章

正在生成分享图...

取消
相关文章