{"version":2,"relationshipURLBase":"https://codingai-lec03.pages.dev/course/notebook-blocks/89b4ff8dd23d4c6d89882682635269a5.html","relationshipResolution":"Resolve relative relationship URLs against relationshipURLBase; complete records and absolute URLs are in blocks.","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/89b4ff8dd23d4c6d89882682635269a5.html","markdown":"https://codingai-lec03.pages.dev/course/notebook-blocks/89b4ff8dd23d4c6d89882682635269a5.md","pages":[{"id":"reading-opening","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","unit":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","unitId":"notebook-blocks/89b4ff8dd23d4c6d89882682635269a5","chapter":"course","number":1}],"aliases":[{"oldId":"b-d81fe60e88b21841945cf6bd","targetId":"b-d81fe60e88b21841945cf6bd","page":"reading-opening","operation":"move","beforeSHA256":"240987f980b4a53ac418e6004e5b09a1427e175defab161f632e2874969ccbbc","afterSHA256":"240987f980b4a53ac418e6004e5b09a1427e175defab161f632e2874969ccbbc","reason":"Same source body in authored semantic page"},{"oldId":"b-cedf4f8aa9246d85097e6897","targetId":"b-cedf4f8aa9246d85097e6897","page":"reading-opening","operation":"move","beforeSHA256":"84129293c3dbfaa1a0118a5740f8ed75d568b31fb9ecbe65a631f0286df471f6","afterSHA256":"84129293c3dbfaa1a0118a5740f8ed75d568b31fb9ecbe65a631f0286df471f6","reason":"Same source body in authored semantic page"},{"oldId":"b-00e16734791e43332cd30637","targetId":"b-00e16734791e43332cd30637","page":"reading-opening","operation":"move","beforeSHA256":"e91f24e4e4ca40e2099a0d81d30db6568f4bf2074b499eeee6e3959617bd97ac","afterSHA256":"e91f24e4e4ca40e2099a0d81d30db6568f4bf2074b499eeee6e3959617bd97ac","reason":"Same source body in authored semantic page"},{"oldId":"b-ec210e160d1850a6386e73fc","targetId":"b-ec210e160d1850a6386e73fc","page":"reading-opening","operation":"move","beforeSHA256":"d73c8f62c157be8969593eee5f2f87679b08c3feb70e7a286a688663a6b7df5d","afterSHA256":"d73c8f62c157be8969593eee5f2f87679b08c3feb70e7a286a688663a6b7df5d","reason":"Same source body in authored semantic page"},{"oldId":"b-79112924c2a61a5510923f00","targetId":"b-79112924c2a61a5510923f00","page":"reading-opening","operation":"move","beforeSHA256":"10d7d3d69237459a4954d8c8e7c4a25fe2adc35f5d4d9126659b142926fa445b","afterSHA256":"10d7d3d69237459a4954d8c8e7c4a25fe2adc35f5d4d9126659b142926fa445b","reason":"Same source body in authored semantic page"}],"blocks":[{"id":"b-d81fe60e88b21841945cf6bd","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/89b4ff8dd23d4c6d89882682635269a5.html#b-d81fe60e88b21841945cf6bd","content":"[LAB 17 · 软目标与坍塌：三个数值检查](/course/notebooks/268a4ab11b464c64b065f9fc12b19cc7.html)","sha256":"240987f980b4a53ac418e6004e5b09a1427e175defab161f632e2874969ccbbc","chapter":{"id":"course","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码"},"unit":{"id":"notebook-blocks/89b4ff8dd23d4c6d89882682635269a5","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码"},"page":{"id":"reading-opening","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","number":1},"sectionTitle":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","currentQuestion":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":null,"nextBlock":"b-cedf4f8aa9246d85097e6897","prerequisites":[],"relatedBlocks":[]},{"id":"b-cedf4f8aa9246d85097e6897","type":"h1","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/89b4ff8dd23d4c6d89882682635269a5.html#b-cedf4f8aa9246d85097e6897","content":"# LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","sha256":"84129293c3dbfaa1a0118a5740f8ed75d568b31fb9ecbe65a631f0286df471f6","chapter":{"id":"course","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码"},"unit":{"id":"notebook-blocks/89b4ff8dd23d4c6d89882682635269a5","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码"},"page":{"id":"reading-opening","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","number":1},"sectionTitle":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","currentQuestion":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-d81fe60e88b21841945cf6bd","nextBlock":"b-00e16734791e43332cd30637","prerequisites":[{"id":"b-d81fe60e88b21841945cf6bd","url":"#b-d81fe60e88b21841945cf6bd","role":"problem-context"}],"relatedBlocks":[]},{"id":"b-00e16734791e43332cd30637","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/89b4ff8dd23d4c6d89882682635269a5.html#b-00e16734791e43332cd30637","content":"按问题继续","sha256":"e91f24e4e4ca40e2099a0d81d30db6568f4bf2074b499eeee6e3959617bd97ac","chapter":{"id":"course","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码"},"unit":{"id":"notebook-blocks/89b4ff8dd23d4c6d89882682635269a5","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码"},"page":{"id":"reading-opening","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","number":1},"sectionTitle":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","currentQuestion":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-cedf4f8aa9246d85097e6897","nextBlock":"b-ec210e160d1850a6386e73fc","prerequisites":[{"id":"b-cedf4f8aa9246d85097e6897","url":"#b-cedf4f8aa9246d85097e6897","role":"section-title"},{"id":"b-d81fe60e88b21841945cf6bd","url":"#b-d81fe60e88b21841945cf6bd","role":"problem-context"}],"relatedBlocks":[]},{"id":"b-ec210e160d1850a6386e73fc","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/89b4ff8dd23d4c6d89882682635269a5.html#b-ec210e160d1850a6386e73fc","content":"常数坍塌反例、固定教师KL学习及单独EMA计算","sha256":"d73c8f62c157be8969593eee5f2f87679b08c3feb70e7a286a688663a6b7df5d","chapter":{"id":"course","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码"},"unit":{"id":"notebook-blocks/89b4ff8dd23d4c6d89882682635269a5","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码"},"page":{"id":"reading-opening","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","number":1},"sectionTitle":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","currentQuestion":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-00e16734791e43332cd30637","nextBlock":"b-79112924c2a61a5510923f00","prerequisites":[{"id":"b-cedf4f8aa9246d85097e6897","url":"#b-cedf4f8aa9246d85097e6897","role":"section-title"},{"id":"b-d81fe60e88b21841945cf6bd","url":"#b-d81fe60e88b21841945cf6bd","role":"problem-context"}],"relatedBlocks":[]},{"id":"b-79112924c2a61a5510923f00","type":"pre","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/89b4ff8dd23d4c6d89882682635269a5.html#b-79112924c2a61a5510923f00","content":"```\n# Writable ephemeral workspace for detached readonly cloud runs.\nimport os, tempfile\nos.chdir(tempfile.mkdtemp(prefix='lec03_lab17_'))\n\nimport numpy as np\nrng=np.random.default_rng(17)\nX=rng.normal(size=(384,2)); X=np.c_[X,np.ones(len(X))]\nteacher=np.array([[2,-2,0],[0,1,-1],[.2,-.1,0.]])\ndef softmax(z):\n    e=np.exp(z-z.max(1,keepdims=True)); return e/e.sum(1,keepdims=True)\nT=2.; target=softmax(X@teacher/T); W=np.zeros((3,3))\ndef kl(q,p): return float((q*np.log((q+1e-12)/(p+1e-12))).sum(1).mean())\nbefore=kl(target[256:],softmax(X[256:]@W/T))\nfor step in range(600):\n    pred=softmax(X[:256]@W/T)\n    W-=.3*X[:256].T@(pred-target[:256])/256/T\nafter=kl(target[256:],softmax(X[256:]@W/T))\nconstant=np.ones((8,4)); diverse=rng.normal(size=(8,4))\nprint('heldout teacher/student KL',round(before,5),'->',round(after,5))\nprint('collapsed consistency loss',float(((constant-constant[::-1])**2).mean()),'variance',constant.var(0).tolist())\nprint('noncollapsed variance',diverse.var(0).round(3).tolist())\nema=np.zeros_like(W)\nfor t in range(3): ema=.9*ema+.1*W\nassert np.allclose(ema,(1-.9**3)*W)\nprint('3 EMA updates preserve factor',round(1-.9**3,3),'of fixed student parameters')\nprint('temperature teacher probabilities',softmax(np.array([[3.,1.,0.]])/T).round(4).tolist())\n```","sha256":"10d7d3d69237459a4954d8c8e7c4a25fe2adc35f5d4d9126659b142926fa445b","chapter":{"id":"course","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码"},"unit":{"id":"notebook-blocks/89b4ff8dd23d4c6d89882682635269a5","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码"},"page":{"id":"reading-opening","title":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","number":1},"sectionTitle":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","currentQuestion":"LAB 17 · 软目标与坍塌：三个数值检查 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-ec210e160d1850a6386e73fc","nextBlock":null,"prerequisites":[{"id":"b-cedf4f8aa9246d85097e6897","url":"#b-cedf4f8aa9246d85097e6897","role":"section-title"},{"id":"b-d81fe60e88b21841945cf6bd","url":"#b-d81fe60e88b21841945cf6bd","role":"problem-context"}],"relatedBlocks":[]}]}
