DNC 可微分神经网络数据流图

DNC 可微分神经网络数据流图_第1张图片

DNC 的核心是一个被称为控制器(controller)的神经网络的计算机,和计算机中的处理器比较类似。控制器的作用是获取输入、读取和写入记忆、生成可以被解读为答案的输出。而其memory是一个位置(location)的集合,其中每个位置都存储了一个信息向量。

控制器可以执行多种操作。在每一个等时步长内,它都会选择是否写入存储。如果是,它可以选择将信息存储在还没使用过的位置或已经包含了该控制器正在搜索的信息的位置。这让控制器可以对已存储的内容进行更新。如果所有的位置都用完了,然后u存储器就决定释放一些位置,像计算机重新分配不再需要的存储空间一样。当控制器执行写入时,它会向记忆中被选中的位置发送一个信息向量。每一次写入信息时,这些位置都会被关联链接(links of association)连接起来,这代表了信息被存储的顺序。

除了写入,控制器也可以从记忆中的多个位置读取信息。它可以基于每个位置的内容对记忆进行搜索,即可以通过关联时间链接(associative temporal links)向前和向后回调以顺序或反序写入的信息。其读取出的信息可被用于生成问题的答案或在某个环境中要采取的行动。总的来说,这些操作让 DNC 可以选择如何重新分配记忆、在记忆中存储信息、以及轻松地找到存储在记忆中的信息。

其神经网络控制器可接收外部输入,并基于这些输入通过读取和写入操作(这些操作被称为 head)与记忆进行交互。为了帮助控制器引导记忆,DNC 会存储「时间链接(temporal links)」以追踪内容被写入的顺序,DNC 还会记录每个记忆位置的当前的使用水平。

可微神经计算机是一种循环神经网络。在每一个时间步长中,它的状态由当前记忆内容和像记忆使用的辅助信息组成,并将在 t 的输入映射到 t 的输出。该架构能作为 RNNCore 模块的集合而实现,RNNCore 允许将不同的模块嵌入到一起以试验架构上的变体。

  • 访问模块(access module):访问模块是主 DNC 逻辑发生的地方,因为其是记忆写入和读取的位置。在每一时间步,访问模块的输入是从 controller 传递的向量,而输出是从记忆读取的内容。该模块使用两个更深的RNNCores :TemporalLinkage 追踪记忆写入的顺序,Freeness 追踪哪些记忆位置已经被写入,并没有随后「被释放」。

  • 控制器模块(The controller module):控制器模块的作用是控制记忆的访问。通常,其为一个前馈或 LSTM 网络,该模块的输入是整个循环神经网络的即时输入,其与前一时间步访问模块的读取的记忆输出有关。

  • DNC 简洁的封装一下以上两个模块,并形成整个架构的基本 RNNCore 单元。


你可能感兴趣的:(DNC 可微分神经网络数据流图)