{"version":2,"relationshipURLBase":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html","relationshipResolution":"Resolve relative relationship URLs against relationshipURLBase; complete records and absolute URLs are in blocks.","title":"MoCo：字典里保存的是特征","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html","markdown":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.md","pages":[{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","unit":"怎样增加候选，同时让历史表示仍可比较？","unitId":"i-dictionary-and-updates","chapter":"I","number":1}],"aliases":[{"oldId":"explanation","targetId":"h-i-queue-stores-history","operation":"split-explanation-range"},{"oldId":"b-3d4e219b28926f67ccf72bb4","targetId":"b-3d4e219b28926f67ccf72bb4","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"d71cf15e707c8a3674b4c90a599efee783cb84da5b8c8236a1d01c3add7b4958","afterSHA256":"d71cf15e707c8a3674b4c90a599efee783cb84da5b8c8236a1d01c3add7b4958","reason":"Same source body in authored semantic page"},{"oldId":"b-5c17032cfbe8702b8cb223b7","targetId":"b-5c17032cfbe8702b8cb223b7","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"3a8af47eae50d773059751e6413c3d054b65b15df49ba0e2fd53d18824de234d","afterSHA256":"3a8af47eae50d773059751e6413c3d054b65b15df49ba0e2fd53d18824de234d","reason":"Same source body in authored semantic page"},{"oldId":"b-c8c32900e5ebda902b87bb4c","targetId":"b-c8c32900e5ebda902b87bb4c","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"1f64c14a94b97e1a52b2b9a8d24959cf55c08cbec91888ded5c0d713dd3c0268","afterSHA256":"1f64c14a94b97e1a52b2b9a8d24959cf55c08cbec91888ded5c0d713dd3c0268","reason":"Same source body in authored semantic page"},{"oldId":"b-dae5ab439a7bdefece4d0a3a","targetId":"b-dae5ab439a7bdefece4d0a3a","page":"h-i-queue-stores-history","operation":"rewrite","beforeSHA256":"b51dd08a16aea8a57a704bfd6f64791ba8a8f230602bb1b83d35a72fd715ea20","afterSHA256":"be5d744c35d9a5b5cc45ca5fe6ea86dc19394f839a214b5cdfc230fd65b993f2","reason":"Same source identity with figure semantics or reading context enriched"},{"oldId":"b-eb845307f5333bf71108d1b6","targetId":"b-eb845307f5333bf71108d1b6","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"786ce10a6b32a492259a3dccd0a54e61cd41d28a34382fb7b5386c5f03b7ad69","afterSHA256":"786ce10a6b32a492259a3dccd0a54e61cd41d28a34382fb7b5386c5f03b7ad69","reason":"Same source body in authored semantic page"},{"oldId":"b-1d89f92acd3241f8e41cdd33","targetId":"b-1d89f92acd3241f8e41cdd33","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"42b87d68f6537db9ac605636a8ec893187049fad06f2f398a4134f210e88acda","afterSHA256":"42b87d68f6537db9ac605636a8ec893187049fad06f2f398a4134f210e88acda","reason":"Same source body in authored semantic page"},{"oldId":"b-aa824941ea048138ab3f2f4c","targetId":"b-aa824941ea048138ab3f2f4c","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"2b73f730c0de8e8ed199aa171e3dd98be78eea30b08b7f95ca81cd5a15dae9bb","afterSHA256":"2b73f730c0de8e8ed199aa171e3dd98be78eea30b08b7f95ca81cd5a15dae9bb","reason":"Same source body in authored semantic page"},{"oldId":"b-4dc32c040253f686a8eac68a","targetId":"b-4dc32c040253f686a8eac68a","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"b34020857d25fc808fc1859acdc1645ff951e62636ae13772b277cfcc1ae2be6","afterSHA256":"b34020857d25fc808fc1859acdc1645ff951e62636ae13772b277cfcc1ae2be6","reason":"Same source body in authored semantic page"},{"oldId":"b-2ff16d88e3864ef67373d197","targetId":"b-2ff16d88e3864ef67373d197","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"ad1015822822360c1e8e40a6155db3495c7eca7bc913005ad85b1f76e0b039a2","afterSHA256":"ad1015822822360c1e8e40a6155db3495c7eca7bc913005ad85b1f76e0b039a2","reason":"Same source body in authored semantic page"},{"oldId":"b-1eb12dfaaef28f1144975416","targetId":"b-1eb12dfaaef28f1144975416","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"e10a8ebdbcfeff64fc7e0d4208dd1d5d70030fd195617d93fcd4c28e4c7beaae","afterSHA256":"e10a8ebdbcfeff64fc7e0d4208dd1d5d70030fd195617d93fcd4c28e4c7beaae","reason":"Same source body in authored semantic page"},{"oldId":"b-62b0978f09905252780072d7","targetId":"b-62b0978f09905252780072d7","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"f16be0424762a44344338696f06ef266c4571d15367ae2cbbd28fac98ac7e9cb","afterSHA256":"f16be0424762a44344338696f06ef266c4571d15367ae2cbbd28fac98ac7e9cb","reason":"Same source body in authored semantic page"},{"oldId":"b-dd40d0daa6d59192be301c77","targetId":"b-dd40d0daa6d59192be301c77","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"b25685f04cd1b885f3a5999e6a912460c7424021cdc5b2190584242086a82681","afterSHA256":"b25685f04cd1b885f3a5999e6a912460c7424021cdc5b2190584242086a82681","reason":"Same source body in authored semantic page"},{"oldId":"b-b6fe640273c958c08b6d43de","targetId":"b-b6fe640273c958c08b6d43de","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"1a0bd6ab9bb1092fd0cb1247739c6c4d0a437a5a35e1f157db721e872db645a9","afterSHA256":"1a0bd6ab9bb1092fd0cb1247739c6c4d0a437a5a35e1f157db721e872db645a9","reason":"Same source body in authored semantic page"},{"oldId":"b-68ab73a5fbf175a8a7093604","targetId":"b-68ab73a5fbf175a8a7093604","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"379d08aec53722b05991d06f0f3e8582ade52923d6993886cbb05188b456eac8","afterSHA256":"379d08aec53722b05991d06f0f3e8582ade52923d6993886cbb05188b456eac8","reason":"Same source body in authored semantic page"},{"oldId":"b-66bc816b7a4a89e298ad944f","targetId":"b-66bc816b7a4a89e298ad944f","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"cf44fcc62782fb4f6bdc42c16c5187d57556a03cb7ce6065e7bd9c36d8e7d733","afterSHA256":"cf44fcc62782fb4f6bdc42c16c5187d57556a03cb7ce6065e7bd9c36d8e7d733","reason":"Same source body in authored semantic page"},{"oldId":"b-e99742a91eda63b59645cc26","targetId":"b-e99742a91eda63b59645cc26","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"5deb4ee0ef48374341e8a9fc10fd493d525e731ccd329e94b95b602e40afeb51","afterSHA256":"5deb4ee0ef48374341e8a9fc10fd493d525e731ccd329e94b95b602e40afeb51","reason":"Same source body in authored semantic page"},{"oldId":"b-64e209fd585857f609b61943","targetId":"b-64e209fd585857f609b61943","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"2a7ac238c17d60a9d580b03a1da1cb67519a3bc13769f5ad5a99cb7ce4080852","afterSHA256":"2a7ac238c17d60a9d580b03a1da1cb67519a3bc13769f5ad5a99cb7ce4080852","reason":"Same source body in authored semantic page"},{"oldId":"b-d699ccd0535c43eb241ddddc","targetId":"b-d699ccd0535c43eb241ddddc","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"8debfc2f79b510c38593ebe89e845b5d76fcaa319daddf11b402c4c0725a0a46","afterSHA256":"8debfc2f79b510c38593ebe89e845b5d76fcaa319daddf11b402c4c0725a0a46","reason":"Same source body in authored semantic page"},{"oldId":"b-cac7f1d9442bb5a5aaf52ee4","targetId":"b-cac7f1d9442bb5a5aaf52ee4","page":"h-i-queue-stores-history","operation":"move","beforeSHA256":"8debfc2f79b510c38593ebe89e845b5d76fcaa319daddf11b402c4c0725a0a46","afterSHA256":"8debfc2f79b510c38593ebe89e845b5d76fcaa319daddf11b402c4c0725a0a46","reason":"Same source body in authored semantic page"},{"oldId":"h-i-queue-stores-history-title","targetId":"b-8fa3db2cba98a7d3a206442e","operation":"retain-source-identity"}],"blocks":[{"id":"b-8fa3db2cba98a7d3a206442e","type":"h2","scope":"h-i-queue-stores-history","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-8fa3db2cba98a7d3a206442e","content":"## 队列保留向量原值，同时更新成员","sha256":"30b9b7eb8038243cddeba9ea6cc8f71c1061424d80ed16d20e1c4a1b9c57af76","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":null,"nextBlock":"b-3d4e219b28926f67ccf72bb4","prerequisites":[{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-3d4e219b28926f67ccf72bb4","type":"h2","scope":"explanation","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-3d4e219b28926f67ccf72bb4","content":"## 解释、算例与证据","sha256":"d71cf15e707c8a3674b4c90a599efee783cb84da5b8c8236a1d01c3add7b4958","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-8fa3db2cba98a7d3a206442e","nextBlock":"b-5c17032cfbe8702b8cb223b7","prerequisites":[{"id":"b-8fa3db2cba98a7d3a206442e","url":"#b-8fa3db2cba98a7d3a206442e","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-5c17032cfbe8702b8cb223b7","type":"h1","scope":"document","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-5c17032cfbe8702b8cb223b7","content":"# P15 · MoCo：字典里保存的是特征","sha256":"3a8af47eae50d773059751e6413c3d054b65b15df49ba0e2fd53d18824de234d","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-3d4e219b28926f67ccf72bb4","nextBlock":"b-c8c32900e5ebda902b87bb4c","prerequisites":[{"id":"b-3d4e219b28926f67ccf72bb4","url":"#b-3d4e219b28926f67ccf72bb4","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-c8c32900e5ebda902b87bb4c","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-c8c32900e5ebda902b87bb4c","content":"指认历史key的身份、加入与离开，先理解缓存到底存了什么，再问它是否仍一致。","sha256":"1f64c14a94b97e1a52b2b9a8d24959cf55c08cbec91888ded5c0d713dd3c0268","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-5c17032cfbe8702b8cb223b7","nextBlock":"b-dae5ab439a7bdefece4d0a3a","prerequisites":[{"id":"b-5c17032cfbe8702b8cb223b7","url":"#b-5c17032cfbe8702b8cb223b7","role":"section-title"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-dae5ab439a7bdefece4d0a3a","type":"figure","scope":"document","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-dae5ab439a7bdefece4d0a3a","content":"图内标签与数值：P15 学习表示机制图，状态 2；容量 4 · 本轮新键 k₅、k₆ · FIFO 教学队列；当前图像 → key 编码器；k₅；k₆；入队的是特征；原图只说明来源；k3；k4；k5；k6；最旧；最新；k₅、k₆ 入队；k₁、k₂ 退队；队列中的旧键保持原值；更新编码器不会追溯重算它们。\n\n四槽FIFO从k1—k4变为k3—k6；新键为已算向量，最旧两键移出。\n\n- 容量 4 · 本轮新键 k₅、k₆ · FIFO 教学队列\n- 当前图像 → key 编码器\n- k₅\n- k₆\n- 入队的是特征\n- 原图只说明来源\n- k3\n- k4\n- k5\n- k6\n- 最旧\n- 最新\n- k₅、k₆ 入队\n- k₁、k₂ 退队\n- 队列中的旧键保持原值；更新编码器不会追溯重算它们。四槽FIFO从k1—k4变为k3—k6；新键为已算向量，最旧两键移出。 [查看对应图解状态](/#/l3-r2-p15/1)[查看完整图解](/course/figures/l3-r2-p15-1.html)","sha256":"be5d744c35d9a5b5cc45ca5fe6ea86dc19394f839a214b5cdfc230fd65b993f2","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"figure":{"caption":"四槽FIFO从k1—k4变为k3—k6；新键为已算向量，最旧两键移出。 查看对应图解状态","labels":["容量 4 · 本轮新键 k₅、k₆ · FIFO 教学队列","当前图像 → key 编码器","k₅","k₆","入队的是特征","原图只说明来源","k3","k4","k5","k6","最旧","最新","k₅、k₆ 入队","k₁、k₂ 退队","队列中的旧键保持原值；更新编码器不会追溯重算它们。"],"description":"四槽FIFO从k1—k4变为k3—k6；新键为已算向量，最旧两键移出。容量 4 · 本轮新键 k₅、k₆ · FIFO 教学队列当前图像 → key 编码器k₅k₆入队的是特征原图只说明来源k3k4k5k6最旧最新k₅、k₆ 入队k₁、k₂ 退队队列中的旧键保持原值；更新编码器不会追溯重算它们。","evidenceIdentity":"四槽FIFO从k1—k4变为k3—k6；新键为已算向量，最旧两键移出。 查看对应图解状态","images":[]},"previousBlock":"b-c8c32900e5ebda902b87bb4c","nextBlock":"b-eb845307f5333bf71108d1b6","prerequisites":[{"id":"b-5c17032cfbe8702b8cb223b7","url":"#b-5c17032cfbe8702b8cb223b7","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[]},{"id":"b-eb845307f5333bf71108d1b6","type":"h2","scope":"narrative","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-eb845307f5333bf71108d1b6","content":"## 课堂讲述","sha256":"786ce10a6b32a492259a3dccd0a54e61cd41d28a34382fb7b5386c5f03b7ad69","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-dae5ab439a7bdefece4d0a3a","nextBlock":"b-1d89f92acd3241f8e41cdd33","prerequisites":[{"id":"b-5c17032cfbe8702b8cb223b7","url":"#b-5c17032cfbe8702b8cb223b7","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-1d89f92acd3241f8e41cdd33","type":"p","scope":"narrative","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-1d89f92acd3241f8e41cdd33","content":"MoCo 把对比学习看成查询字典。当前查询要在一组键中找到对应项，字典中的其他键可以来自前面的批次。\n先看队列这一半。它保存的是已经计算出来的特征，不是每次都重新跑一遍网络的原图。本页容量为 4，旧队列是 [k1,k2,k3,k4]；本轮有两个新键 k5、k6。每个查询先与自己的本轮正键和更新前的旧队列比较，再把两个新键按序加入，同时移走最旧的 k1、k2。下一批看到的字典是 [k3,k4,k5,k6]。P17 为便于跟完一整步，只用一个新键，所以只退一个旧键；两页的队列规则相同，示意批大小不同。\n这样当前批次可以较小，候选字典仍然较大。数量问题有了办法，但假如编码器每步变化很快，队列里早些时候的特征和新特征就可能不太可比。旧键保存原值，不会自动刷新。MoCo 的另一半设计，正是控制生成键的那个编码器如何变化。","sha256":"42b87d68f6537db9ac605636a8ec893187049fad06f2f398a4134f210e88acda","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-eb845307f5333bf71108d1b6","nextBlock":"b-aa824941ea048138ab3f2f4c","prerequisites":[{"id":"b-eb845307f5333bf71108d1b6","url":"#b-eb845307f5333bf71108d1b6","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-aa824941ea048138ab3f2f4c","type":"h3","scope":"moco-key-queue-identity","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-aa824941ea048138ab3f2f4c","content":"### 队列保存的是带历史身份的 key","sha256":"2b73f730c0de8e8ed199aa171e3dd98be78eea30b08b7f95ca81cd5a15dae9bb","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保存的是带历史身份的 key","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":"moco-key-queue-identity","formulas":[],"previousBlock":"b-1d89f92acd3241f8e41cdd33","nextBlock":"b-4dc32c040253f686a8eac68a","prerequisites":[{"id":"b-eb845307f5333bf71108d1b6","url":"#b-eb845307f5333bf71108d1b6","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"},{"id":"b-4dc32c040253f686a8eac68a","url":"#b-4dc32c040253f686a8eac68a","relation":"same-reasoning"},{"id":"b-2ff16d88e3864ef67373d197","url":"#b-2ff16d88e3864ef67373d197","relation":"same-reasoning"},{"id":"b-1eb12dfaaef28f1144975416","url":"#b-1eb12dfaaef28f1144975416","relation":"same-reasoning"}]},{"id":"b-4dc32c040253f686a8eac68a","type":"p","scope":"moco-key-queue-identity","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-4dc32c040253f686a8eac68a","content":"沿本页的双样本示意，队列容量为 4，当前保存旧键 `[k1,k2,k3,k4]`。本轮两张图产生两个新键 k5、k6；每个查询先与自己的本轮正键及更新前的旧队列比较。比较完成后，将 k5、k6 按序加入，并移除最旧的 k1、k2；下一批使用的字典于是变为 `[k3,k4,k5,k6]`。这是“容量 4、每批 2 个新键”的教学设置。P17 为便于逐项跟踪，改用每批 1 个新键，得到 `[k2,k3,k4,k5]`；入队和出队遵守相同的先进先出规则。","sha256":"b34020857d25fc808fc1859acdc1645ff951e62636ae13772b277cfcc1ae2be6","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保存的是带历史身份的 key","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":"moco-key-queue-identity","formulas":[],"previousBlock":"b-aa824941ea048138ab3f2f4c","nextBlock":"b-2ff16d88e3864ef67373d197","prerequisites":[{"id":"b-aa824941ea048138ab3f2f4c","url":"#b-aa824941ea048138ab3f2f4c","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"},{"id":"b-aa824941ea048138ab3f2f4c","url":"#b-aa824941ea048138ab3f2f4c","relation":"same-reasoning"},{"id":"b-2ff16d88e3864ef67373d197","url":"#b-2ff16d88e3864ef67373d197","relation":"same-reasoning"},{"id":"b-1eb12dfaaef28f1144975416","url":"#b-1eb12dfaaef28f1144975416","relation":"same-reasoning"}]},{"id":"b-2ff16d88e3864ef67373d197","type":"p","scope":"moco-key-queue-identity","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-2ff16d88e3864ef67373d197","content":"每个槽保存的是当时算好的向量。k2不会因为查询编码器更新，就自动变成今天重新编码的k2；也没有保存一条可以反传回早先图像的完整计算图。队列的身份标签帮助我们看清“新信息进入、旧信息退出”，向量值则用于相似度计算。","sha256":"ad1015822822360c1e8e40a6155db3495c7eca7bc913005ad85b1f76e0b039a2","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保存的是带历史身份的 key","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":"moco-key-queue-identity","formulas":[],"previousBlock":"b-4dc32c040253f686a8eac68a","nextBlock":"b-1eb12dfaaef28f1144975416","prerequisites":[{"id":"b-aa824941ea048138ab3f2f4c","url":"#b-aa824941ea048138ab3f2f4c","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"},{"id":"b-aa824941ea048138ab3f2f4c","url":"#b-aa824941ea048138ab3f2f4c","relation":"same-reasoning"},{"id":"b-4dc32c040253f686a8eac68a","url":"#b-4dc32c040253f686a8eac68a","relation":"same-reasoning"},{"id":"b-1eb12dfaaef28f1144975416","url":"#b-1eb12dfaaef28f1144975416","relation":"same-reasoning"}]},{"id":"b-1eb12dfaaef28f1144975416","type":"p","scope":"moco-key-queue-identity","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-1eb12dfaaef28f1144975416","content":"容量更大可以提供更多比较对象，也使最旧条目来自更早的步骤。容量、batch大小和编码器变化速度因此互相影响。课堂图只画4个槽便于指认，不能把4当作MoCo论文的配置。","sha256":"e10a8ebdbcfeff64fc7e0d4208dd1d5d70030fd195617d93fcd4c28e4c7beaae","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保存的是带历史身份的 key","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":"moco-key-queue-identity","formulas":[],"previousBlock":"b-2ff16d88e3864ef67373d197","nextBlock":"b-62b0978f09905252780072d7","prerequisites":[{"id":"b-aa824941ea048138ab3f2f4c","url":"#b-aa824941ea048138ab3f2f4c","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"},{"id":"b-aa824941ea048138ab3f2f4c","url":"#b-aa824941ea048138ab3f2f4c","relation":"same-reasoning"},{"id":"b-4dc32c040253f686a8eac68a","url":"#b-4dc32c040253f686a8eac68a","relation":"same-reasoning"},{"id":"b-2ff16d88e3864ef67373d197","url":"#b-2ff16d88e3864ef67373d197","relation":"same-reasoning"}]},{"id":"b-62b0978f09905252780072d7","type":"h3","scope":"dialogue","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-62b0978f09905252780072d7","content":"### 沿着图解追问","sha256":"f16be0424762a44344338696f06ef266c4571d15367ae2cbbd28fac98ac7e9cb","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-1eb12dfaaef28f1144975416","nextBlock":"b-dd40d0daa6d59192be301c77","prerequisites":[{"id":"b-aa824941ea048138ab3f2f4c","url":"#b-aa824941ea048138ab3f2f4c","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-dd40d0daa6d59192be301c77","type":"p","scope":"dialogue","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-dd40d0daa6d59192be301c77","content":"以下是备课用的模拟师生对话，不是课堂实录。","sha256":"b25685f04cd1b885f3a5999e6a912460c7424021cdc5b2190584242086a82681","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-62b0978f09905252780072d7","nextBlock":"b-b6fe640273c958c08b6d43de","prerequisites":[{"id":"b-62b0978f09905252780072d7","url":"#b-62b0978f09905252780072d7","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-b6fe640273c958c08b6d43de","type":"p","scope":"dialogue","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-b6fe640273c958c08b6d43de","content":"**学生：**为什么这张图一次移走两个旧键，P17 却只移走一个？","sha256":"1a0bd6ab9bb1092fd0cb1247739c6c4d0a437a5a35e1f157db721e872db645a9","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-dd40d0daa6d59192be301c77","nextBlock":"b-68ab73a5fbf175a8a7093604","prerequisites":[{"id":"b-62b0978f09905252780072d7","url":"#b-62b0978f09905252780072d7","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-68ab73a5fbf175a8a7093604","type":"p","scope":"dialogue","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-68ab73a5fbf175a8a7093604","content":"**教师：**本页一批放入 k5、k6 两个新键，所以容量不变时退掉最旧的 k1、k2，得到 [k3,k4,k5,k6]。P17 用 k5 一个新键跟完一整步，所以只退掉 k1，得到 [k2,k3,k4,k5]。队列规则没有改变，示意的批大小不同。","sha256":"379d08aec53722b05991d06f0f3e8582ade52923d6993886cbb05188b456eac8","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-b6fe640273c958c08b6d43de","nextBlock":"b-66bc816b7a4a89e298ad944f","prerequisites":[{"id":"b-62b0978f09905252780072d7","url":"#b-62b0978f09905252780072d7","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-66bc816b7a4a89e298ad944f","type":"h2","scope":"practice","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-66bc816b7a4a89e298ad944f","content":"## 沿这个问题继续","sha256":"cf44fcc62782fb4f6bdc42c16c5187d57556a03cb7ce6065e7bd9c36d8e7d733","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-68ab73a5fbf175a8a7093604","nextBlock":"b-e99742a91eda63b59645cc26","prerequisites":[{"id":"b-62b0978f09905252780072d7","url":"#b-62b0978f09905252780072d7","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-e99742a91eda63b59645cc26","type":"p","scope":"practice","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-e99742a91eda63b59645cc26","content":"用4槽字典手推两步；LAB 07的trace是对应代码入口，不需要重训就能先理解对象。","sha256":"5deb4ee0ef48374341e8a9fc10fd493d525e731ccd329e94b95b602e40afeb51","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-66bc816b7a4a89e298ad944f","nextBlock":"b-895669afb0c94d3ee06f60db","prerequisites":[{"id":"b-66bc816b7a4a89e298ad944f","url":"#b-66bc816b7a4a89e298ad944f","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-895669afb0c94d3ee06f60db","type":"h4","scope":"h-i-queue-stores-history","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-895669afb0c94d3ee06f60db","content":"#### 图示条件与公式约定","sha256":"ef7f915c1ae63ed67bd23fecf050249273ba0efa8965d2c8d1c1c6b2d3178122","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-e99742a91eda63b59645cc26","nextBlock":"b-64e209fd585857f609b61943","prerequisites":[{"id":"b-66bc816b7a4a89e298ad944f","url":"#b-66bc816b7a4a89e298ad944f","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-64e209fd585857f609b61943","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-64e209fd585857f609b61943","content":"容量 4、本轮 2 个新键仅为便于观察的教学队列，不是原论文超参数。比较使用本轮更新前队列；示意下一批的维护结果为 [k3,k4,k5,k6]。 P17 改用每批 1 个新键跟完一次学习，因而只移出 k1，下一批字典为 [k2,k3,k4,k5]；两页示意批大小不同，先进先出规则相同。","sha256":"2a7ac238c17d60a9d580b03a1da1cb67519a3bc13769f5ad5a99cb7ce4080852","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-895669afb0c94d3ee06f60db","nextBlock":"b-7a2966a5e08ba9360baa45c2","prerequisites":[{"id":"b-895669afb0c94d3ee06f60db","url":"#b-895669afb0c94d3ee06f60db","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-7a2966a5e08ba9360baa45c2","type":"h4","scope":"retained-reading","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-7a2966a5e08ba9360baa45c2","content":"#### 这条线索的展开与后续阅读","sha256":"48b8229f7559b36ed4d5628416e3991e5c73293fbce43374db67386c8736f3bc","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-64e209fd585857f609b61943","nextBlock":"b-d699ccd0535c43eb241ddddc","prerequisites":[{"id":"b-895669afb0c94d3ee06f60db","url":"#b-895669afb0c94d3ee06f60db","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-d699ccd0535c43eb241ddddc","type":"ul","scope":"retained-reading","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-d699ccd0535c43eb241ddddc","content":"- [MoCo：让候选字典跨越当前批次](/supplement.html?return=l3-r2-p15/0#/l3-moco-queue/0) 本页说明","sha256":"8debfc2f79b510c38593ebe89e845b5d76fcaa319daddf11b402c4c0725a0a46","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-7a2966a5e08ba9360baa45c2","nextBlock":"b-cac7f1d9442bb5a5aaf52ee4","prerequisites":[{"id":"b-7a2966a5e08ba9360baa45c2","url":"#b-7a2966a5e08ba9360baa45c2","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]},{"id":"b-cac7f1d9442bb5a5aaf52ee4","type":"li","scope":"retained-reading","url":"https://codingai-lec03.pages.dev/course/pages/l3-r2-p15.html#b-cac7f1d9442bb5a5aaf52ee4","content":"- [MoCo：让候选字典跨越当前批次](/supplement.html?return=l3-r2-p15/0#/l3-moco-queue/0) 本页说明","sha256":"8debfc2f79b510c38593ebe89e845b5d76fcaa319daddf11b402c4c0725a0a46","chapter":{"id":"I","title":"学习信号与表示"},"unit":{"id":"i-dictionary-and-updates","title":"怎样增加候选，同时让历史表示仍可比较？"},"page":{"id":"h-i-queue-stores-history","title":"队列保留向量原值，同时更新成员","number":1},"sectionTitle":"队列保留向量原值，同时更新成员","currentQuestion":"怎样增加候选，同时让历史表示仍可比较？","sourceSlides":["l3-r2-p15"],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-d699ccd0535c43eb241ddddc","nextBlock":null,"prerequisites":[{"id":"b-7a2966a5e08ba9360baa45c2","url":"#b-7a2966a5e08ba9360baa45c2","role":"section-title"},{"id":"b-c8c32900e5ebda902b87bb4c","url":"#b-c8c32900e5ebda902b87bb4c","role":"problem-context"}],"relatedBlocks":[{"id":"b-dae5ab439a7bdefece4d0a3a","url":"#b-dae5ab439a7bdefece4d0a3a","relation":"figure-and-explanation"}]}]}
