模拟问答:旧 key 还能比较吗?
课堂上下文:从哪个问题来
本页把前两页对象放回一条可追踪过程。纸面步骤与Notebook时序有细微差异,说明已明确标注。
以下为备课用模拟对话,不是实际课堂记录。
学生:“你说是前面算过的特征,图上到底哪几个?”
教师:“队列里的k1到k4是本步开始前就存在的。正在两视图分支里生成的k5是这次的新key。比较结束后k1离开,k5进入;你看下一批字典仍有k2、k3、k4。”
学生:“编码器已经变了,它们为什么还能比?”
教师:“这是设计需要处理的困难。query可以随梯度更新,key参数用EMA缓慢跟随,减少相邻批之间的变化。旧向量没有重算,所以只能说缓和漂移,不能说完全一致。队列越长,最旧条目越老,取舍就更明显。”
学生:“那EMA是不是改了队列里面的数?”
教师:“没有。看箭头:EMA连的是两套网络参数,FIFO操作连的是向量槽位。把这两条箭头分开,整步就清楚了。”
用可指认的key身份解释历史复用,不靠口头想象隐藏对象。 查看对应图解状态
- 同一输入
- 视图 a
- 视图 b
- query 编码器
- key 编码器
- q
- k⁺ = k₅
- L = −ln p⁺
- 比较用旧字典
- k₁ … k₄
- q 与所有候选比较
- k⁺ 是本轮正确项
- 梯度 → θq
- EMA
- k₅ 入队;k₁ 退队
- k₂ k₃ k₄ k₅
- 下一批的字典
- 按原文算法 1:更新 query,再平均 key 参数并维护下一批的字典。