17、深入理解 DNC 架构:从原理到 TensorFlow 实现

深入理解 DNC 架构:从原理到 TensorFlow 实现

1. 无干扰写入机制

传统模型在写入操作时可能存在干扰问题,为了解决这个问题,引入了使用向量(usage vector)$u_t$。使用向量是一个长度为 $N$ 的向量,每个元素的值在 0 到 1 之间,表示对应内存位置的使用程度,0 表示完全空闲,1 表示完全使用。

初始时,$u_0 = 0$,并在每个步骤中根据使用信息进行更新。为了确定新数据应分配到哪个内存位置,需要计算分配权重(allocation weighting)$a_t$。具体步骤如下:
1. 对使用向量进行排序,得到空闲列表 $\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]$。

通过这个公式,最空闲的位置将获得最大的权重,从而确保模型能够聚焦于单个空闲位置进行写入,提高了可靠性并加快了训练速度。

最终的写入权重 $w_t^w$ 由分配权重 $a_t$ 和基于内容寻址机制得到的查找权重 $c_t^w$ 共同决定:
$w_t^w = g_t^w g_t^a a_t + (1 - g_t^a) c_t^w$
其中,$g_t^w$ 和 $g_t^a$ 是写入门和分配门,取值在 0 到 1 之间,它们控制着写入操作。$g_t^w$ 决定是否进行写入,$g_t^a$ 决定是使用分配权重写入新位置还是使用查找权重修改现有值。

2. 内存重
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值