本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

报码:深度学习挑战冯·诺依曼结构(2)

时间:2016-12-14 17:05来源:668论坛 作者:118KJ 点击:
另外要注意的是,存储矩阵的行数可能很多。想象一下,把一部长篇小说存放到存储矩阵里,每个词都占用一行,需要占用存储矩阵的多少行。 寻址机制

  另外要注意的是,存储矩阵的行数可能很多。想象一下,把一部长篇小说存放到存储矩阵里,每个词都占用一行,需要占用存储矩阵的多少行。

  寻址机制

  DNC 改进了NTM 的寻址机制。NTM 的寻址机制是 content-based 和 location-based 的混搭。为什么需要改进呢?原因有三。

NTM 不能保障多个存储单元之间,不相互重叠,不相互干扰。dynamic memory allocation: allocate a free space

NTM 不能释放存储单元,如果处理很长的序列时,譬如处理一部超长的长篇小说,搞不好所有存储都会被占满,导致系统崩溃。dynamic memory allocation: free gates

如果连续做几个读写操作,它们所使用的存储单元的位置,最好是相邻的。但是在NTM 中,一旦某个读写操作,远远跳到其它存储区域,那么后续操作也跟着去其它区域,而且失忆,想不起来原先的存储区域在哪里。temporal link matrix

  DNC 的寻址机制,把读操作和写操作分开。DNC 用 content-based 和 dynamic memory allocation 的混搭方式,处理写操作。用 content-based 和 temporal memory linkage 的混搭方式,处理读操作。

  1. content-based 寻址:

  比较需要处理的目标 vector,与存储矩阵中每一行的 vector,用余弦距离来计算两者相似性。取存储矩阵中,与目标 vector 距离最短的行。

  计算余弦距离时,需要一个系数向量,beta,这个系数向量是被训练出来的。

  2. dynamic memory allocation 存储单元分配:

  每一个存储单元,都是等长的 vector。当每一个存储单元被 free 的时候,整个 vector 中的每一个 element,都可以用来写入新数据。但是当一个 vector 中有若干 elements 已经被占用时,剩下的 elements 还可以被写入新数据。

  想象一下,如果每个 vector 的长度是 100,又如果某个 vector 里,已经写入了一个不长的词,但是还有剩余的 elements,这些剩余的 elements 可以用于给这个词做词性标注等等。但是如果剩余的 elements 不多,那么词性标注只好被写到其它行的 vector 里。

  DNC 设计了一个存储单元占用向量 u。u(i) = 0 时第i行的 vector 中,所有 element 都可以被写入新数据,而当 u(i) = 1 时第 i 行的 vector 中所有 elements 都已经被占用了。

  但是如果存储矩阵中有两行,i 和 j,分别有完全相同的 elements 可以被写。谁先被写,取决于权重向量 wt。wt 体现了存储使用的策略,策略既可以是尽可能写入最新释放的存储单元,也可以尽可能写入内容相似,而且没有被完全占用的存储单元。这个权重向量 wt,是可以根据被训练出来的。

  3. Temporal memory linkage 读写时序的关联:

  Dynamic memory allocation 没有记录历次写操作时,loc(t) 发生在哪个存储单元,以及loc(t+1) 发生在哪个存储单元。而记录历次写操作的存储单元的位置顺序,是有用的。

  DNC 用 N^2 的方阵,来记录 temporal link,其中 L(i, j) 记录着 t 时写操作发生在存储单元 j,而 t+1 时写操作发生在存储单元i的概率。L(i, j) 可以是简单的统计结果,也可以是加权的统计结果,权重体现了控制策略。权重是可以被训练出来的。

  当 N 很大的时,理论上来说 L 方阵会占用很多空间。但是鉴于 L 方阵很稀疏,很多 L(i, j) 等于 0。根据 DeepMind 团队的估算,L 实际占用空间只有 O( N ),计算成本只有 O( N * Log N )。

  需要训练哪些参数?

  除了读写操作、以及寻址操作中的几个权重向量以外,还有作为 controller 的 RNN 的参数。RNN 可以选择结构比较简单的 neuralnet work,也可以选择结构更复杂的 LSTM。选用 LSTM 意味着有更多参数,需要被训练。

  训练数据通常不包含读写操作发生在哪个存储空间上的信息。譬如 NTM 中,Priority Sort实验的训练数据,是一连串(输入,理想输出)pairs。每个 pair 中的输入,是 20 个向量,每个向量伴随着 priority 打分。每个 pair 中的理想输出,是从输入的 20 个向量中,挑选出来的 16 个,并且按 priority 得分排序。

  注意,训练数据中不包含读写操作在哪些存储单元上进行的信息。

  把 DNC 应用到 Graph 操作中

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容