神经图灵机 - 移位如何工作?

数据挖掘 神经网络
2022-01-30 15:19:30

我正在阅读关于神经图灵机的论文,第 9 页,并且只停留在 1 个讨厌的点上。

我无法理解转变是如何完成的:

每个头发出一个移位权重st它定义了允许的整数移位的归一化分布(作者的意思是 s 中的条目将加起来为 1)例如,如果允许在 -1 和 1 之间移动,st具有与执行 -1、0 和 1 的移位的程度相对应的三个元素.

如果我们索引N内存位置从 0 到N1, 旋转应用于wtg经过st可以表示为以下循环卷积:

wnew(i)j=0N1wtg(j)st(ij)

其中所有索引算术都是模计算的N.

作者使用符号wt(i)表示向量中的第 i 个元素。

我无法理解如何st应用于wtg以及是什么使实际执行移位成为可能,例如+1


例如,假设我们正在处理索引为 3 的第 i 个元素,并且wtg有 5 个条目。

就像在论文中一样,让我们​​允许s能够执行 -1、0 或 1 的移位。因此,s有3个维度。现在,我想将每个元素移入w向前+1。

我有一种感觉我会越界错误,而模数不会有太大帮助。我们可以为第三个元素展开这个计算:

w[3] = wg[0]*s[(3-0)%5] + wg[1]*s[(3-1)%5] + wg[2]*s[(3-2)%5] + wg[3]*s[(3-3)%5] + wg[4]*s[(3-4)%5] 

简化时,这意味着:

w[3] = wg[0]*s[3] + wg[0]*s[2] + wg[0]*s[1] + wg[0]*s[0] + wg[0]*s[4]

如您所见,我在开头得到 s[3],最后得到 s[4]。...但是我们刚刚同意s将只有 3 个条目 {-1, 0, 1} 这意味着超出范围的错误。

而且,我真的无法理解我们所做的会如何“改变”整个wg进入wnew一旦我们为所有 5 个条目都做了这件事(我们只为第 3 个条目完成了上述操作)。有人也可以给我直觉吗?

1个回答

好的,如果我们不考虑公式,这是有道理的

请看下面这张幻灯片的下半部分,取自第 20 页,Kiho Suh 的“神经图灵机”侧面演示;2017 年 6 月 19 日

在此处输入图像描述