深入探索DNC:无干扰写入、内存复用与读写机制
1. 无干扰写入机制
传统神经网络在写入操作时,难以保证无干扰的写入行为。为了解决这个问题,我们引入了使用向量(usage vector)$u_t$,它的大小为$N$,每个元素的值介于 0 到 1 之间,0 表示该内存位置完全空闲,1 表示完全被使用。
1.1 分配权重计算
为了确定新数据应分配到哪个内存位置,我们需要计算分配权重(allocation weighting)$a_t$。具体步骤如下:
1. 对使用向量$u_t$进行排序,得到空闲列表$\phi_t$,即按使用值升序排列的位置索引列表。
2. 根据以下公式计算分配权重:
- $a_{t}^{\phi_{t}^{j}} = (1 - u_{t}^{\phi_{t}^{j}}) \prod_{i = 1}^{j - 1} u_{t}^{\phi_{t}^{i}}$,其中$j \in {1, \cdots, N}$。
- 例如,当$u_t = [1, 0.7, 0.2, 0.4]$时,经过计算可得$a_t = [0, 0.024, 0.8, 0.12]$。
通过这种方式,我们可以确保模型能够专注于单个空闲的内存位置,提高了可靠性并加快了训练速度。
1.2 最终写入权重构建
结合分配权重$a_t$和基于内容寻址机制得到的查找权重$c_{t}^{w}$($c_{t}^{w} = \mathcal{C}(M_{t - 1}, k_{t}^{w}, \beta_{t}^{w})$,其中$k_{t}^{w}$和$\beta_{t}^{w}$是通过接口向量接收的查找键和查找强度),
超级会员免费看
订阅专栏 解锁全文

13

被折叠的 条评论
为什么被折叠?



