动作 AI · 5-3 · 紧急任务

编码器·解码器 — 把动作折叠再展开

5-2留下的作业是“旋钮(潜变量)[注]从哪里来”。这次只看数据来找旋钮。我们用600个火柴人场景,制作把1,196个数字折叠成k个的编码器,以及把k个数字重新展开成1,196个的解码器。即使折叠成16个数字再展开,动作也能恢复99.8%。接着用这些折叠后的数字去除抖动、补全被遮挡的手肘、用更少的数据让5-1的乱扔垃圾检测更准确,并且无需旋钮就完成5-2的生成。

1,196 → 16编码器折叠的规模(74.8倍)
99.8%16个数字所承载的动作(解释方差)
0.030 → 0.009抖动 σ = 0.03 经折叠再展开后的误差(代码 1)
2.1倍补全被遮挡手肘的精度提升(代码 1)
99.7%每类仅用25个训练的乱扔检测准确率(k = 16,代码 2)
2 段可在 Colab 中直接运行的代码
1任务

第三道指令 — “从数据中找出旋钮”

5-2的生成器 D 之所以获胜,是因为事先知道三个旋钮(速度·位置·大小)。真实数据不会附带旋钮。这次的任务是只看600个场景,自己找出旋钮。

[SYSTEM] 04:55 · 已收到5-2完成报告。下一道指令:动作压缩。附件:六类场景600个,漏斗设计图一张。
博士
博士1,196个数字真的都各自独立运动吗?不是的。手肘一动,手腕也跟着动;这一帧和上一帧也几乎一样。所以可以用少得多的数字把它折叠起来。
助手
助手负责折叠的是编码器,负责展开的是解码器!折叠再展开后如果还能得到原来的动作,就说明中间那些数字装下了整个动作,对吧?
果蝇研究员
果蝇研究员中间那些数字正是5-2里要找的旋钮。而且还有额外收获:抖动会被去掉,被遮挡的手肘会被补上,乱扔垃圾检测也会变好。
研究室机器人漏斗大小从1个到16个都准备好了。代码 1 算出的16个方向已经放在这个页面上。
上方画面中,四个火柴人汇聚成一个小胶囊,再展开成三排行走的火柴人队列;下方模糊的火柴人逐渐变清晰,柱状图不断升高。助手握拳欢呼,机器人举着画有上升曲线的牌子
折叠再展开。模糊的输入变成清晰输出的场景,你将在第4节亲手做出来。
2漏斗

漏斗 — 把1,196个折叠成k个再展开

编码器把左边的原始动作折叠成k个数字(中间的紫色柱),解码器再把它展开成1,196个(右边)。逐步减小瓶颈大小k,看看最多能折叠到什么程度。

瓶颈 k
场景

代码 1 的结果 — 300个测试场景折叠再展开的误差

瓶颈 k压缩比解释方差重建误差(RMSE)骨长误差
11,196倍85.72%0.10216.16%
2598倍95.07%0.05987.65%
3398.7倍97.84%0.03952.78%
5239.2倍99.02%0.02661.95%
8149.5倍99.46%0.01951.86%
1674.8倍99.80%0.01231.50%
3237.4倍99.90%0.00881.43%

测试场景中混有姿态估计的抖动(σ = 0.008)。k = 32时的误差0.0088与这一抖动大小几乎相同。误差再往下降,记住的就不是动作而是抖动了。

给初学者的讲解 — 这个漏斗是怎么做的

收集600个场景,依次找出“动作变化最大的方向”(主成分分析,PCA)。编码器从场景中减去平均场景,再投影到这k个方向上,得到k个数字。解码器则在平均场景上按这些数字加上k个方向。这是只用加法和乘法的最简单的自编码器。用神经网络构建的自编码器借助层和激活函数,连弯曲的关系也能表达(3-7)。本页的16个方向直接使用了代码 1 计算出的值。

3潜在地图

潜在地图与旋钮 — 数据自己找到的旋钮

这是用旋钮1·2标出600个场景的地图。点击一个点选择场景,再转动下面的四个旋钮。旋钮没有名字。看看什么在变化,亲自给它们起个名字吧。

同类场景会在地图上聚在一起。没有人告诉它“这是扔出”,只是折叠了一下,就出现了这样的结果。旋钮值以训练场景的标准差(σ)为单位。±2σ以外是训练数据中几乎没有出现过的区域,展开后的姿态会变得别扭。

旋钮变化最大的部位观察后起的外号各类场景平均(代码 1)
1(占动作的85.7%)所有关节的 x,场景后段“结束时在哪里” — 留在垃圾桶前,还是向右走开放进 −15.3 · 扔出 +8.3 · 路过 +6.4 · 掉落 +6.7
2 (9.4%)右手腕·手肘和脚踝的 x,场景前段“一开始在哪里、右臂放在哪一侧”路过 −4.4 · 挥手 +4.1
3 (2.8%)右手腕·手肘·头部的 y“是抬起手臂,还是弯下腰”挥手 +2.6 · 捡起 −2.1
4 (1.2%)右手腕和脚踝的 x,场景中段“中间时段手臂·腿的左右摆动”捡起 +1.3 · 扔出 −0.9

与5-2的旋钮有什么不同

5-2的旋钮(速度·位置·大小)是人在制作场景时定下的。这里的旋钮则是依次挑出数据变化最大的方向得到的。所以它们没有名字,一个旋钮里混着好几种含义(旋钮 1 既表示位置,也表示“有没有走开”)。但好处是,即使人什么都不告诉它,也能找到。这就是潜在空间。

4抖动·遮挡

性能提升 ① — 去除抖动,补全被遮挡的手肘

在真实的姿态估计中,关节点会抖动,手臂被身体挡住时还会丢失点。漏斗只让“长得像人类动作的东西”通过,所以折叠再展开后,抖动被滤掉,空缺也会被合理地补上。

抖动 σ
场景

去除抖动(代码 1,120个场景)

抖动 σ = 0.01时误差0.0100 → 0.0082,σ = 0.03时0.0300 → 0.0090,σ = 0.05时0.0501 → 0.0104。抖动越大,效果越明显。因为抖动的方向杂乱无章,几乎落不到漏斗的16个方向上。

补全被遮挡的手肘(代码 1,120个场景)

只用可见的格子以最小二乘法拟合出16个潜在数字,再用解码器展开,连空格也能补上。位置误差方面,“用肩膀和手腕的中点凑合”为0.0230,“用解码器补全”为0.0108,精确约2.1倍。5-1中提到的“手臂被身体挡住就找不到关节”就是这样弥补的。

5乱扔检测

性能提升 ② — 用折叠后的数字来抓乱扔垃圾

5-1中说过“直接学习坐标需要多得多的数据”。这次先用编码器折叠关节和易拉罐的坐标(1,288个),再用折叠后的k个数字训练最简单的逻辑回归。

训练场景(每类)1,288个原样 + MLP折叠为 k = 8 + 逻辑回归折叠为 k = 16 + 逻辑回归
25(共150)96.7%95.0%99.7%
50(共300)97.0%95.3%100.0%
100(共600)98.0%98.0%100.0%

k = 16 + 逻辑回归:每类只用25个(共150个),就在300个测试场景中答对了299个。16个数字里同时折叠了“易拉罐最后在哪里”和“人去了哪里”,所以只用一条直线也能把它们分开。

k = 8 不够:易拉罐最后位置这类细小的动作藏在第9个以后的方向里,折叠成8个就会丢掉一部分。一味压缩得更狠并不是正确答案。

与5-1的92.3%不同的原因:5-1把“没有物体”标为坐标 −9,这里标为 (0, 0)。仅仅改变输入的标记方式,MLP就能升到98%。本表三列都使用相同的输入进行比较。

为什么折叠后会变好

编码器是在没有标签的情况下只看场景做出来的(用了全部600个,但没有看乱扔·正常的正确答案)。这样得到的“动作摘要”滤掉了噪声、数字又少,所以即使带正确答案的场景很少,分类器也不会迷失方向。先用无标签数据学习表示,再用少量正确答案收尾,这种方式与当今大模型训练的基本流程相同。不过,这些数字是合成数据上的结果。在真实视频中会比这低。

6生成

性能提升 ③ — 无需旋钮生成动作(生成器 E)

5-2的评审员又来了。这次的生成器 E 不知道人定下的旋钮。它在潜在地图上查看扔出动作聚集的位置(平均值与标准差),抽取16个新点,再用解码器展开。

与5-2的四个生成器放在一起看(代码 2 · 5-2 代码 2,各生成20个)

生成器是否事先知道旋钮骨长误差抖动手腕最大速度多样性新颖性
A 单一平均—1.7%0.00451.360.0000.033
B 逐坐标掷骰子—44.2%0.265910.000.1490.109
C 挑一个复制—4.7%0.03002.750.1250.000
D 抽取 3 个旋钮知道(人定下的)0.0%0.01252.710.1230.022
E 从16个潜在数字中抽取不知道(数据找到的)3.7%0.01221.760.1140.047

E 做到的:不知道旋钮,也没有像 B 那样散架(骨长误差44.2% → 3.7%,抖动0.27 → 0.012)。既有多样性(0.114),也没有照抄(0.047)。

E 没做到的:手腕最大速度只有1.76,扔的力道不足。它只是在潜在空间的平均值附近抽样,再把直线方向相加,所以快速挥动的短暂瞬间被抹平了。骨长也不如真实数据(0%)那么准确。

更好的解码器

线性解码器只是按比例把各个方向相加,无法表达“手臂画圆转动”这类弯曲的关系。因此真实的动作生成研究会使用多层堆叠的非线性编码器·解码器[R2],并同时训练让潜在空间呈正态分布的形状,从而得到“抽出来就能合理展开”的空间(VAE [R1])。也有同时处理时间轴的动作专用 VAE [R4]。

7局限

折叠的局限,以及下一个任务

编码器·解码器同时提升了检测和生成。但仍有遗留的问题。

本篇学到的内容
  • 1,196个可以折叠成16个:动作的99.8%得以保留。动作数据比看起来简单得多。
  • 折叠就能过滤:抖动被去除(0.030 → 0.009),空缺被补上(精确2.1倍)。
  • 折叠后用少量正确答案就能学会:每类25个就达到99.7%。
  • 从折叠后的空间中抽取就能生成:不需要人定的旋钮也能生成。
遗留问题
  • 线性的局限:有力的扔出动作被抹平。需要非线性解码器和 VAE。
  • 没见过的动作:漏斗只认识学过的六类动作的形状。第一次见到的动作(例如摔倒)折叠再展开后,会被拉向已知的动作。反过来,可以把这种“重建误差大的场景”用作异常动作警报。
  • 挑选想要的动作的方法:现在是我们替它选好了“扔出动作聚集的位置”。人能不能用语言说“挥手”来挑选呢?只要把语言也放到同一张地图上就行了。
左边是爱心·星星·音符·感叹号·月亮图标卡片,右边是火柴人动作卡片,两边由发光的线相连;助手按下最上面的卡片,博士托着下巴在一旁观看
下一个任务预告 · 在同一张地图上为语言和动作配对
博士
博士我们已经把动作变成了地图上的点。那如果把“挥手”这句话也变成同一张地图上的点呢?输入一句话,就能得到它附近的动作!
助手
助手也就是用编码器把语言也折叠起来!只要把文字漏斗和动作漏斗对齐到同一张地图上……
果蝇研究员
果蝇研究员那就是5-4。你会看到纠缠在一起的线在学习过程中各自找到自己的配对。

Colab 代码 —— 亲自运行本页内容

两段代码都只使用 Colab 默认安装的库。“下载笔记本(.ipynb)”后,在 Colab 中通过文件 → 上传笔记本打开,或者复制后粘贴到新笔记本的单元格中。

代码 1 · 把动作折叠成k个数字再展开(线性自编码器)对应第2~4节 · numpy, matplotlib · CPU 约3秒

用600个场景构建 encode·decode,测量不同k下的重建误差、去除抖动、补全被遮挡的手肘(fill)。本页的16个方向就来自这里。想换成自己的数据,就在 S 的位置放入形状为(场景数, 数字数)的自己的数据。传感器·日志数据也能用同样的方法折叠。

运行结果(2026-10-05运行,numpy 2.4 · matplotlib 3.10 · CPU)。固定了随机种子,任何时候运行结果都相同。同时还会输出两张图(不同k的解释方差、潜在地图)。
代码 2 · 用折叠后的数字提升乱扔检测和动作生成对应第5·6节 · numpy, scikit-learn · CPU 约40秒

改变训练场景数,比较5-1乱扔检测的“原样 + MLP”与“折叠 + 逻辑回归”,并用5-2评审员的评分来衡量生成器 E。第5·6节的表格直接由这段输出生成。

运行结果(2026-10-05运行,numpy 2.4 · scikit-learn 1.8 · CPU)。虽然固定了数据种子,但 MLP 的数字可能因库版本不同而略有变化。

AI 应用提示词 —— 以这段代码为起点

这是粘贴到 ChatGPT、Qwen、Claude 等 AI 助手中的提示词。点击“复制”,所选代码会一起附在提示词后面。把〔 〕里的内容换成你自己的情况即可。

一起附上的代码

AI 的回答只是起点。它建议的论文·数值·库函数,一定要对照原文和官方文档进行确认。使用真人动作数据时,要先确认拍摄同意和数据集的使用条件。

术语表

与正文中黄色虚线下划线相同的词典。点击节名即可跳到首次出现的位置。

比喻合集 —— 以及比喻失效之处

比喻是理解的第一步,也可能是误解的种子。与人类知觉相比的比喻标注了强度。直接 有证据表明实际上在做同样的事 · 部分 只有部分性质相似 · 无 尚不知道有对应的东西

概念日常比喻人类知觉比喻比喻失效之处
编码器·解码器把衣服叠好装进旅行箱,到了住处再展开部分 把一段长舞蹈记成“左脚、拍手、转圈”这样几个词,之后再重新跳出来衣服叠起来还是原样,但漏斗会丢掉细小的褶皱(抖动)。丢掉的东西再展开也回不来
瓶颈大小 k摘要的字数限制无摘要是由人挑选重要内容,而这个漏斗挑的是“变化大的东西”。它可能漏掉虽小却重要的差异(易拉罐的最后位置)
潜在空间把餐馆标在“价格 · 辣度”两条轴的地图上无餐馆地图的轴由人决定,而潜在空间的轴由数据决定,而且没有名字
遮挡复原根据上下文猜出被擦掉的字来阅读部分 人的知觉也会根据全身的姿势猜出被挡住的手臂猜测只在学过的动作范围内才准确。遇到第一次见的姿势,会错误地往已知姿势的方向补全
从潜在空间抽取在地图上点一下“这一带附近”,然后去看看无如果点在地图上的空地(没有训练数据的地方),就会到达奇怪的地方

作者简介与参考文献

E-1 作者简介 · E-2 学术参考文献 · E-3 图片与数字的出处

E-1 作者简介

Ahn Sangsun(M-Robo 株式会社代表)

曾任职于韩国电气安全公社、每日经济新闻,现创办每日经济的外部创业公司 M-Robo 株式会社并担任代表。M-Robo 株式会社是一家以媒体公司内部创业起步的媒体创业公司,曾为国民日报提供机器人记者(StockBot)服务,并为韩国互联网振兴院、韩国言论振兴财团、韩国广播通信电波振兴院等机构执行了多个项目。之后运营自有的 AI 新闻报纸 Money-Robo。担任代表期间,曾获得亚洲开放数据黑客马拉松冠军,并因在数据创业领域的贡献两次获得行政安全部长官奖,是人工智能和区块链领域 5 项专利的发明人及注册人。著有《AI 犯罪与自我防御》,并为韩国技术教育大学在线终身教育院开发了金融科技、统计学、人工智能领域的在线学习内容。最高学位为经济学博士(东国大学,微观数理经济学)。目前在国民大学、湖西大学等多所大学讲授数据和人工智能相关课程。详细简介

讲座

  • Ahn Sangsun (2025).《面向商业的数据科学》讲义. 韩国开放网络大学 人工智能融合学科.
  • Ahn Sangsun (2025). [K-数字] 人工智能自然语言处理. STEP(智能职业培训平台),韩国技术教育大学在线终身教育院.
  • Ahn Sangsun (2024). [K-数字] 金融科技数据分析基础. STEP(智能职业培训平台),韩国技术教育大学在线终身教育院.

STEP 课程链接:link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
如因网站改版无法正常访问,请访问 www.step.or.kr。

论文与报告

  • Ahn Sangsun (2025). 利用国民养老保障面板数据的家庭支出预测模型研究:基于人工智能模型的方法.《未来社会》, 16(2). 原文
  • Ahn Sangsun (2025). 利用国民养老保障面板数据的家庭支出预测模型研究:人工智能方法. 国民养老保障面板学术会议报告资料(2025.05.13),国民年金公团 国民年金研究院. 报告资料
  • Ahn Sangsun (2025). 基于 SNS 文本的疑似毒品交易检测算法研究:以模式与语境分析为中心.《未来社会》, 16(1). 原文
  • Ahn Sangsun (2024). 面向金融领域异常检测模型安全的基于统计的对抗性数据应对方案:实证分析与模拟结果.《未来社会》, 15(3). 原文
  • Ahn Sangsun (2024). 利用人工智能、基于虚拟角色特征的 SNS 帖子检测解决方案. 2024 Summer Newmedia Party 海报发表(2024.06.19),首尔媒体研究生院大学.
  • Ahn Sangsun (2024). 利用工伤面板数据的机器学习模型. 第 10 届工伤保险面板学术会议海报发表(2024.05.17),勤劳福祉公团 勤劳福祉研究院.
  • Ahn Sangsun (2024). 虚拟资产时间序列数据的分析与预测:时间序列模型与人工智能模型的比较及改进建议.《未来社会》, 15(1). 原文

E-2 学术参考文献

  1. [R1] Kingma, D. P., & Welling, M. (2014). Auto-encoding variational Bayes. ICLR 2014. arXiv:1312.6114 — 第6·7节
  2. [R2] Holden, D., Saito, J., & Komura, T. (2016). A deep learning framework for character motion synthesis and editing. ACM Transactions on Graphics, 35(4), Article 138. doi:10.1145/2897824.2925975 — 第6节(动作自编码器)
  3. [R3] Hinton, G. E., & Salakhutdinov, R. R. (2006). Reducing the dimensionality of data with neural networks. Science, 313(5786), 504–507. doi:10.1126/science.1127647 — 第2节(神经网络自编码器与 PCA 的比较)
  4. [R4] Petrovich, M., Black, M. J., & Varol, G. (2021). Action-conditioned 3D human motion synthesis with Transformer VAE. ICCV 2021. arXiv:2104.05670 — 第6节
  5. [R5] Pearson, K. (1901). On lines and planes of closest fit to systems of points in space. Philosophical Magazine, 2(11), 559–572. — 第2节(主成分分析的起点)

E-3 图片与数字的来源

  • 场景插图(编码漏斗、解码与性能提升、文本–动作匹配)是作者亲手绘制的像素画
  • 第2~4·6节的编码器·解码器直接使用了代码 1 计算出的平均场景和16个方向(32位浮点数)
  • 第2·4·5·6节下方的表格是实际运行代码 1·2 的结果。画面中的抖动和生成结果是在浏览器中用同样的方法重新抽取的,所以数字略有不同
  • 第3节的旋钮外号,是作者观察各方向中变化大的关节·时间段后起的

E-4 注释

  • [注] 旋钮(潜变量) — 这是本系列对潜变量(latent variable)的通俗比喻,指转动它时整个数据会一起变化的少数几个数字。英文讲解中也常把潜在空间的各个维度比喻为“knob(旋钮)”“dial(拨盘)”“slider(滑块)”。论文中的正式术语是潜变量,在 5-3 中从数据里找到的每个旋钮就是主成分(principal component)。与真正的旋钮不同,一个旋钮上可能混杂多种含义。

教师指南

这是写给讲师、在职培训(OJT)负责人和辅导老师的教学指南。时间只是预估,请根据实际课堂调整。

对象学完5-1·5-2的大学生·职场人士。处理传感器·视频·日志等规模大、噪声多的数据的从业者
预备知识5-2的“动作是表格”与生成器评分、向量的内积(相同位置相乘再相加)
学习目标① 用漏斗图解释编码器·解码器和瓶颈 k 的含义 ② 举例说明折叠再展开分别如何用于去除抖动·遮挡复原·少量数据学习·生成 ③ 说明线性编码器的局限以及需要 VAE 的原因
预计时间阅读35~45分钟 · 动画演示25分钟 · Colab 实践30分钟(代码 1 10分钟,代码 2 运行1分钟 + 解读19分钟)

三种教学方案

讲授型 50 分钟

以概念为主

导入5分钟(第1节,5-2的作业)→ 第2节 减小漏斗 k 12分钟 → 第3节 转动旋钮10分钟 → 第4节 抖动·遮挡8分钟 → 第5·6节 读表格10分钟 → 练习题5分钟。

在职 OJT 90 分钟

侧重数据压缩应用

第2节15分钟 → 讨论我们的数据(传感器、日志)的“数字个数”与“真正独立的数字个数”15分钟 → 用第4·5节讲解去噪·少量正确答案学习的案例20分钟 → 把我们的数据放进代码 1 中30分钟 → 第7节总结局限10分钟。

1 对 1 辅导

分层推进

入门者只看第2·4节。中级者先手动跟踪代码 1 的 encode·decode,再画出 Vt[0],确认第3节的旋钮 1 为什么是“结束时的位置”。

各节教学要点

节停下来提问操作提示
2 漏斗“需要几个数字,扔出动作才看起来像扔出?”把 k 按 1 → 3 → 8 逐步调高,观察右边的结果
3 潜在地图“没人告诉它,为什么同类会聚在一起?”选一个红点(扔出),把旋钮 1 转到 −2σ
4 抖动·遮挡“漏斗如何区分抖动和动作?”同时打开 σ = 0.05 和手肘遮挡
5 乱扔检测“为什么 k = 8 不如 k = 16?”先读表格中25个那一行
6 生成“E 比 D 少知道什么?又在哪方面做得不如 D?”点击“重新生成”,查看手腕最大速度一栏

常见误解 Top 5

误解正确解释要展示的场景
压缩会减少信息,因此性能会下降如果丢掉的主要是噪声,反而会变好。去除抖动、少量数据学习就是例子第4节、第5节
k越大越好k大了连抖动也会装进去;k小了会漏掉重要的细小动作。要根据目的来选择第2节表格的 k = 32,第5节的 k = 8
每个潜在数字都有人能理解的含义方向由数据决定,没有名字。外号是人事后加上的解读第3节表格
自编码器必须是神经网络最简单的线性自编码器做的事与 PCA 相同。神经网络还能表达弯曲的关系第2节下方的讲解
从潜在空间随便抽一个点,都能得到像样的动作只有在训练数据附近才是这样。让这个空间变得均匀,正是 VAE 的工作第3节 ±2σ 以外,第6节

练习题(点击展开解析)

Q1. 把1,196个数字以 k = 16 折叠,压缩比是多少?此时保留了多少动作?

1,196 ÷ 16 = 74.75,约74.8倍。代码 1 中解释方差为99.80%。

Q2. 有两个方向 v₁ = (1, 0, 0)、v₂ = (0, 1, 0),平均为0时,把 x = (3, −2, 0.4) 以 k = 2 折叠再展开,结果是什么?

编码器:z = (x·v₁, x·v₂) = (3, −2)。解码器:3v₁ − 2v₂ = (3, −2, 0)。第三个值0.4不落在这两个方向上,所以消失了。这就是“抖动被去除”的原理。

Q3. 用“肩膀和手腕的中点”凑合补上被遮挡的手肘,为什么会出错?解码器还多知道些什么?

手肘是弯曲的,所以位于中点外侧。解码器利用从600个场景中学到的“这种姿势下手肘通常在这里”的关系(16个方向),与其他可见关节一起拟合。代码 1 中误差从0.0230降到了0.0108。

Q4. 制作编码器时并没有看乱扔·正常的正确答案,为什么乱扔检测还是变好了?

编码器只学习了动作的结构(哪些部位一起动),把1,288个数字变成了16个数字的摘要。摘要噪声少、数字少,所以即使带正确答案的场景只有150个,简单的分类器也不会迷失方向。

Q5. 生成器 E 的手腕最大速度为1.76,为什么低于训练数据(2.55)?

因为它是在潜在空间中扔出动作的平均值附近抽样,而解码器只是把各个方向直线相加。时机各有差异的快速挥动,无法用少数几个直线方向来表示,于是被抹平了。需要非线性解码器或处理时间轴的模型。

Colab 作业

基础

在代码 1 中,把遮挡的关节从右手肘换成左膝(9号 → 10号关节),并把遮挡区间从21帧延长到40帧。用表格报告“用解码器补全”的误差如何变化。

挑战

制作训练中没有的动作“摔倒”(在 pose 函数中把 lean 增大到1.4的场景),测量它的重建误差比六类场景大多少。并给出阈值,提出能否用重建误差做出“第一次见到的动作”警报。

难度调整与延伸学习

入门者只用第2节的 k 按钮和第4节的三幅图,也能领会“折叠再展开就能过滤”
进阶把代码 1 的线性编码器换成 Keras 自编码器(1,196 → 64 → 16 → 64 → 1,196),比较重建误差和生成器 E 的手腕速度
下一篇5-4 从词语到动作 — 把语言也变成同一张地图上的点

任务 5-3 完成!

你已经读完了《5-3 编码器·解码器》篇。研究室成员们各说一句,为你做个总结。

把一叠火柴人卡片放进漏斗,发光的胶囊从漏斗下方落下,其他火柴人举着胶囊盖章的六个场景
博士
博士通过折叠再展开,我们得到了三样东西。
  • 1,196个数字 → 16个,动作保留99.8%
  • 去除抖动,补全空缺
  • 用少量正确答案检测,无需旋钮就能生成
助手
助手旋钮 1 竟然是“往哪里走开”,而且是数据自己找到的,太神奇了!
果蝇研究员
果蝇研究员接下来是语言。把“挥手”这个词放到同一张地图上看看吧。