京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者|Olah & Carter
编译|CDA数据分析师
Attention and Augmented Recurrent Neural Networks
循环神经网络是深度学习的主要内容之一,允许神经网络处理文本,音频和视频等数据序列。它们可用于将序列分解为高级理解,注释序列,甚至从头开始生成新序列!
基本的RNN设计与较长的序列相悖,但是一种特殊的变体 - “长期短期记忆”网络 - 甚至可以使用这些。已经发现这样的模型非常强大,在许多任务中实现了显着的结果,包括翻译,语音识别和图像字幕。结果,在过去几年中,递归神经网络变得非常普遍。
在发生这种情况时,我们已经看到越来越多的尝试用新属性来增强RNN。四个方向特别令人兴奋:
单独地,这些技术都是RNN的有力扩展,但真正引人注目的是它们可以组合在一起,而且似乎只是在更广阔的空间中得分。此外,它们都依赖于相同的潜在技巧 - 一种叫做注意力的工作。
我们的猜测是,这些“增强型RNN”将在未来几年扩展深度学习能力方面发挥重要作用。
神经图灵机
神经图灵机将RNN与外部存储器组合在一起。由于向量是神经网络的自然语言,因此内存是向量数组:
但阅读和写作如何运作?挑战在于我们希望使它们具有差异性。特别是,我们希望使它们在我们读取或写入的位置方面具有可区分性,以便我们可以了解读写的位置。这很棘手,因为内存地址似乎基本上是离散的。NTM为此采取了一个非常聪明的解决方案:每一步,它们在任何地方读写,只是在不同程度上。
作为一个例子,让我们专注于阅读。RNN不是指定单个位置,而是输出“注意力分布”,描述我们如何分散我们关心不同记忆位置的量。因此,读取操作的结果是加权和。
同样,我们一次到不同程度地写到处。同样,注意力分布描述了我们在每个位置写了多少。我们通过使存储器中的位置的新值成为旧存储器内容和写入值的凸起组合来实现这一点,其中两者之间的位置由注意力量决定。
但是,NTM如何决定将记忆中的哪些位置集中注意力?它们实际上使用两种不同方法的组合:基于内容的注意力和基于位置的注意力。基于内容的关注允许NTM搜索他们的内存并专注于与他们正在寻找的内容匹配的位置,而基于位置的注意允许内存中的相对移动,使NTM循环。
这种读写功能允许NTM执行许多以前超出神经网络的简单算法。例如,他们可以学习在内存中存储一个长序列,然后循环遍历它,重复重复它。当他们这样做时,我们可以看到他们读写的地方,以便更好地了解他们正在做的事情:
他们还可以学习模仿查找表,甚至学习排序数字(尽管他们有点欺骗)!另一方面,他们仍然不能做很多基本的事情,比如加或加数。
自最初的NTM论文以来,已有许多令人兴奋的论文探索类似的方向。神经GPU克服了NTM无法增加和增加数字的问题。 Zaremba和Sutskever 训练NTM使用强化学习而不是原始使用的可微分读/写。神经随机存取机基于指针的工作。一些论文探讨了可区分的数据结构,如堆栈和队列。和内存网络是另一种攻击类似问题的方法。
在某种客观意义上,这些模型可以执行的许多任务 - 例如学习如何添加数字 - 并不客观地难以实现。传统的节目综合社区将在午餐时吃它们。但是神经网络还有许多其他功能,像神经图灵机这样的模型似乎已经对他们的能力产生了极大的限制。
代码
这些模型有许多开源实现。神经图灵机的开源实现包括Taehoon Kim(TensorFlow),Shawn Tan(Theano),Fumin(Go),Kai Sheng Tai(火炬)和Snip(Lasagne)。神经GPU出版物的代码是开源的,并放在TensorFlow模型库中。Memory Networks的开源实现包括Facebook(Torch / Matlab),YerevaNN(Theano)和Taehoon Kim(TensorFlow)。
注意接口
当我翻译一个句子时,我特别注意我正在翻译的这个词。当我正在录制录音时,我会仔细聆听我正在积极写下的片段。如果你让我描述我正坐在那里的房间,我会瞥一眼我正在描述的物体。
神经网络可以使用注意力实现相同的行为,专注于他们给出的信息子集的一部分。例如,RNN可以通过另一个RNN的输出参加。在每个时间步,它侧重于其他RNN中的不同位置。
我们希望注意力是可以区分的,这样我们就可以学会在哪里集中注意力。要做到这一点,我们使用神经图灵机使用的相同技巧:我们专注于各处,只是不同程度。
注意力分布通常是基于内容的注意力产生的。出席的RNN生成描述其想要关注的内容的查询。每个项目都使用查询进行点生成,以生成分数,描述它与查询的匹配程度。将得分输入softmax以产生注意力分布。
RNN之间关注的一个用途是翻译 。传统的序列到序列模型必须将整个输入分解为单个向量,然后将其扩展回来。注意通过允许RNN处理输入传递关于它看到的每个单词的信息来避免这种情况,然后RNN生成输出以在它们变得相关时关注单词。
RNN之间的这种关注还有许多其他应用。它可以用于语音识别,允许一个RNN处理音频,然后让另一个RNN略过它,在生成成绩单时关注相关部分。
这种关注的其他用途包括解析文本 ,它允许模型在生成解析树时浏览单词,以及进行对话建模 ,它让模型在生成响应时关注对话的前面部分。
注意也可以用在卷积神经网络和RNN之间的接口上。这允许RNN每一步都查看图像的不同位置。这种关注的一种流行用途是用于图像字幕。首先,conv网络处理图像,提取高级特征。然后运行RNN,生成图像的描述。由于它在描述中生成每个单词,RNN侧重于conv网对图像相关部分的解释。我们可以明确地想象这个:
更广泛地说,只要想要与其输出中具有重复结构的神经网络接口,就可以使用注意界面。
已经发现注意界面是一种非常通用且功能强大的技术,并且正变得越来越普遍。
自适应计算时间
标准RNN对每个时间步进行相同的计算量。这似乎不直观。当事情艰难时,人们应该多考虑一下吗?它还限制RNN对长度为n的列表进行O(n)运算。
自适应计算时间是RNN每步执行不同计算量的一种方法。全局的想法很简单:允许RNN为每个时间步进行多个计算步骤。
为了让网络了解要执行的步骤数,我们希望步数可以区分。我们使用之前使用的相同技巧实现了这一点:我们不是决定运行一系列离散步骤,而是通过运行步骤数来分配注意力。输出是每个步骤的输出的加权组合。
还有一些细节,在上图中省略了。这是一个包含三个计算步骤的时间步骤的完整图表。
这有点复杂,所以让我们一步一步地完成它。在高级别,我们仍在运行RNN并输出状态的加权组合:
每个步骤的重量由“停止神经元”决定。它是一个S形神经元,它看着RNN状态并给出一个停止的重量,我们可以将其视为我们应该在该步骤停止的概率。
暂停权重为1的总预算,因此我们跟踪顶部的预算。当它达到低于epsilon时,我们停止。
当我们停下来时,可能会有一些剩余的预算停止,因为当它达到低于epsilon时停止。我们该怎么办呢?从技术上讲,它将被用于未来的步骤,但我们不想计算这些步骤,因此我们将其归因于最后一步。
在训练自适应计算时间模型时,可以在成本函数中添加“思考成本”项。这会使模型对其使用的计算量进行惩罚。你使用这个术语越大,就越需要权衡性能以降低计算时间。
自适应计算时间是一个非常新的想法,但我们相信它和类似的想法将是非常重要的。
代码
目前唯一的自适应计算时间的开源实现似乎是Mark Neumann(TensorFlow)。
神经编辑器
神经网络在许多任务中都很出色,但它们也很难做一些基本的事情,比如算法,这在普通的计算方法中是微不足道的。有一种方法可以将神经网络与正常编程融合在一起,并获得两全其美的效果。
神经程序员是一种方法。它学会创建程序以解决任务。实际上,它学会了生成这样的程序而不需要正确程序的例子。它发现如何制作程序作为完成某项任务的手段。
本文中的实际模型通过生成类似SQL的程序来查询表来回答有关表的问题。然而,这里有许多细节使它有点复杂,所以让我们首先想象一个稍微简单的模型,给出一个算术表达式并生成一个程序来评估它。
生成的程序是一系列操作。每个操作都被定义为对过去操作的输出进行操作。因此,操作可能类似于“在前两步添加操作的输出和在步骤前添加操作的输出。”它更像是一个Unix管道,而不是一个带有变量分配和读取的程序。
该程序由控制器RNN一次生成一个操作。在每个步骤,控制器RNN输出下一个操作应该是什么的概率分布。例如,我们可能非常确定我们想要在第一步执行添加,然后很难确定我们是否应该在第二步增加或分割,依此类推......
现在可以评估由此产生的操作分布。我们不是在每一步都运行单个操作,而是通常运行所有这些操作的注意技巧,然后将输出平均在一起,加权我们运行该操作的概率。
只要我们可以通过操作定义衍生品,程序的输出就可能性而言是可微的。然后我们可以定义一个损失,并训练神经网络以产生能够给出正确答案的程序。通过这种方式,神经程序员学会了在没有良好程序实例的情况下编写程序。唯一的监督是该计划应该产生的答案。
这是神经程序员的核心思想,但本文中的版本回答了有关表格的问题,而不是算术表达式。还有一些额外的巧妙技巧:
神经网络编程器并不是神经网络生成程序的唯一方法。另一个可爱的方法是神经程序员 - 解释器这可以完成许多非常有趣的任务,但需要以正确程序的形式进行监督。
我们认为,弥合传统编程和神经网络之间差距的这个一般空间非常重要。虽然神经网络程序员显然不是最终解决方案,但我们认为从中可以学到很多重要的经验教训。
代码
用于问答的神经程序员的最新版本已由作者开源,并以TensorFlow模型的形式提供。Ken Morishita(Keras)还实现了神经程序员 - 解释器。
总结
从某种意义上说,拥有一张纸的人比没有纸的人聪明得多。具有数学符号的人可以解决他们本来无法解决的问题。访问计算机使我们能够获得令人难以置信的壮举,否则这些壮举将远远超出我们。
一般来说,似乎许多有趣的智力形式是人类的创造性启发式直觉与一些更加清晰细致的媒体(如语言或方程式)之间的相互作用。有时,媒体是物理存在的东西,为我们存储信息,防止我们犯错误,或者计算繁重。在其他情况下,媒体是我们操纵的头脑中的模型。无论哪种方式,它似乎对情报至关重要。
机器学习的最新成果已经开始具有这种风格,将神经网络的直觉与其他东西结合起来。一种方法是人们称之为“启发式搜索”。例如,AlphaGo有一个Go如何工作的模型,并探讨游戏如何在神经网络直觉的指导下发挥作用。同样,DeepMath使用神经网络作为操纵数学表达式的直觉。我们在本文中讨论的“增强型RNN”是另一种方法,我们将RNN连接到工程媒体,以扩展其一般功能。
与媒体互动自然涉及制定一系列行动,观察和采取更多行动。这带来了一个重大挑战:我们如何了解采取哪些行动?这听起来像是强化学习问题,我们当然可以采用这种方法。但强化学习文献实际上正在攻击这个问题的最难版本,其解决方案很难使用。关注的奇妙之处在于它通过部分地采取不同程度的所有动作,为我们提供了一个更容易解决这个问题的方法。这是有效的,因为我们可以设计类似NTM内存的媒体 - 允许分数动作并且可以区分。强化学习让我们走一条路,并尝试从中学习。注意在fork的每个方向上,然后将路径合并在一起。
注意力的一个主要弱点是我们必须在每一步都采取一切“行动”。这会导致计算成本线性增长,就像增加神经图灵机中的内存量一样。你能想到的一件事就是让你的注意力稀少,这样你只需触摸一些记忆。然而,它仍然具有挑战性,因为你可能想要做一些事情,比如你的注意力取决于记忆的内容,并且天真地强迫你去看每个记忆。我们已经看到了一些初步尝试来解决这个问题,例如,但似乎还有很多工作要做。如果我们真的可以让这种亚线性时间注意力发挥作用,那将是非常强大的!
增强型复现神经网络以及潜在的注意力技术令人难以置信。我们期待看到接下来会发生什么!
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在机器学习建模中,决策树模型因其结构直观、易于理解、无需复杂数据预处理等优势,成为分类与回归任务的首选工具之一。而变量重 ...
2026-03-17在数据分析中,卡方检验是一类基于卡方分布的假设检验方法,核心用于分析分类变量之间的关联关系或实际观测分布与理论期望分布的 ...
2026-03-17在数字化转型的浪潮中,企业积累的数据日益庞大且分散——用户数据散落在注册系统、APP日志、客服记录中,订单数据分散在交易平 ...
2026-03-17在数字化时代,数据分析已成为企业决策、业务优化、增长突破的核心支撑,从数据仓库搭建(如维度表与事实表的设计)、数据采集清 ...
2026-03-16在数据仓库建设、数据分析(尤其是用户行为分析、业务指标分析)的实践中,维度表与事实表是两大核心组件,二者相互依存、缺一不 ...
2026-03-16数据是CDA(Certified Data Analyst)数据分析师开展一切工作的核心载体,而数据读取作为数据生命周期的关键环节,是连接原始数 ...
2026-03-16在用户行为分析实践中,很多从业者会陷入一个核心误区:过度关注“当前数据的分析结果”,却忽视了结果的“泛化能力”——即分析 ...
2026-03-13在数字经济时代,用户的每一次点击、浏览、停留、转化,都在传递着真实的需求信号。用户行为分析,本质上是通过收集、整理、挖掘 ...
2026-03-13在金融、零售、互联网等数据密集型行业,量化策略已成为企业挖掘商业价值、提升决策效率、控制经营风险的核心工具。而CDA(Certi ...
2026-03-13在机器学习建模体系中,随机森林作为集成学习的经典算法,凭借高精度、抗过拟合、适配多场景、可解释性强的核心优势,成为分类、 ...
2026-03-12在机器学习建模过程中,“哪些特征对预测结果影响最大?”“如何筛选核心特征、剔除冗余信息?”是从业者最常面临的核心问题。随 ...
2026-03-12在数字化转型深度渗透的今天,企业管理已从“经验驱动”全面转向“数据驱动”,数据思维成为企业高质量发展的核心竞争力,而CDA ...
2026-03-12在数字经济飞速发展的今天,数据分析已从“辅助工具”升级为“核心竞争力”,渗透到商业、科技、民生、金融等各个领域。无论是全 ...
2026-03-11上市公司财务报表是反映企业经营状况、盈利能力、偿债能力的核心数据载体,是投资者决策、研究者分析、从业者复盘的重要依据。16 ...
2026-03-11数字化浪潮下,数据已成为企业生存发展的核心资产,而数据思维,正是CDA(Certified Data Analyst)数据分析师解锁数据价值、赋 ...
2026-03-11线性回归是数据分析中最常用的预测与关联分析方法,广泛应用于销售额预测、风险评估、趋势分析等场景(如前文销售额预测中的多元 ...
2026-03-10在SQL Server安装与配置的实操中,“服务名无效”是最令初学者头疼的高频问题之一。无论是在命令行执行net start启动服务、通过S ...
2026-03-10在数据驱动业务的当下,CDA(Certified Data Analyst)数据分析师的核心价值,不仅在于解读数据,更在于搭建一套科学、可落地的 ...
2026-03-10在企业经营决策中,销售额预测是核心环节之一——无论是库存备货、营销预算制定、产能规划,还是战略布局,都需要基于精准的销售 ...
2026-03-09金融数据分析的核心价值,是通过挖掘数据规律、识别风险、捕捉机会,为投资决策、风险控制、业务优化提供精准支撑——而这一切的 ...
2026-03-09