Game-Guided Skill Discovery through Self-Play for Playable Agent Control
Seungeun Rho, Jeonghwan Kim, Xue Bin Peng, Sehoon Ha
cs.LG, cs.AI, cs.RO
2026-10-01
智能体在 1v1 游戏中自博弈学出 5-6 个离散技能,人类用按键直接操控,零训练完成新任务,成功率 84% 以上
无监督技能发现的目标是在没有任务奖励的情况下学出一组可复用的运动技能。主流方法(DIAYN、DADS、METRA)靠最大化互信息或 Wasserstein 依赖度量,让不同技能产生可区分的状态分布。麻烦在于「可区分」不等于「有意义」:智能体自由度一高,技能可以靠各种无关紧要的差别被区分开,学出来的行为人看不懂,也接不到下游任务上。已有改进路线要么用 LLM 生成状态描述做语言引导(状态空间一大就不现实),要么用参考动作数据(贵,且技能上限被数据集框死)。GGSD 想要的是一组语义清晰、人能直接当手柄用的技能。
GGSD(Game-Guided Skill Discovery)把技能发现放进 1v1 竞技游戏的自博弈里,游戏规则只定义输赢,不规定怎么赢。训练对象是一个分层策略:
几个设计都有明确动机。对手不用当前的镜像,改从历史 checkpoint 池里抽,最新的以概率 p∈[0.6,0.8] 中选,其余概率均匀分给旧版本,对手分布因此「分段平稳」,思路来自 fictitious play。低层和判别器被限制只看本体感知,这样技能语义不随对手变化,人按同一个键得到的行为才稳定,这是「可玩」的关键。高层加类别熵正则,防止塌缩到少数技能。工程上 4096 个并行环境分成 10 组、每组共享一个冻结对手,省下 GPU 显存。
最有意思的产物是 combo。技能语义是状态相关的:Franka 的单个技能只是把末端挪到桌面某个区域停住,技能之间的切换却能打出快速击球;G1 里 5→2 是后仰闪避,2→5 却借蓄力打出重拳。五六个键因此撑出远超原语数量的行为,类似格斗游戏的搓招。
四个游戏:AntSumo、AntFencing、FrankaAirHockey、G1Boxing(Unitree G1,23 个关节)。
自博弈质量:70k 更新后的最终策略,对训练全程任意 checkpoint 的胜平率都高于 50%;G1Boxing 上除对自身外,对每个历史 checkpoint 胜率超 80%。4 名人类玩家在 AntSumo 上各打 5 局,只赢下 2 局,人类胜率 10%。
语义多样性:给每个技能的 rollout 视频让 Gemini-3.6-Flash 写一句行为描述,再算描述 embedding 的两两距离。GGSD 在三种本体上都最高,Ant 和 G1 上约为最强基线(DIAYN/DADS/METRA)的 2 倍,Franka 上高 28%。
人类直接玩没见过的新任务:低层策略冻结,高层换成键盘输入,零额外训练;训练在 Isaac Lab、评测在 MuJoCo,任务里还出现训练游戏没有的墙体和方块:
| 任务 | 成功率 | 平均用时 |
| AntMaze | 100% | 82.7 s |
| AntCubePush | 100% | 62.2 s |
| G1Maze | 84% | 22.0 s |
5 名参与者(含 2 位作者)每人 5 次,上手前练习不超过 5 分钟。
附录 B 给出一个干净的分解:互信息只负责把已有行为分配到编号上,不负责让行为有意义,意义必须来自额外的行为结构。游戏规则是目前最便宜的结构来源之一,几行代码,不需要动作数据集,也不需要 LLM 全程标注。对做机器人控制的人,更实际的点在接口:训练完就是一个五六个键的手柄,人直接开,还零样本跨了任务和仿真器。跟参考动作那条线比,等于用「设计游戏」换「采集数据」。
作者自己承认的核心局限:技能库被游戏需求框死,简单游戏只逼出窄技能,G1Boxing 练不出灵巧操作。附录 A 也承认状态相关语义有度,状态分区一多,同一个键含义太多,接口就没法用了。
读下来还有几处存疑。「几行代码的游戏规则」说法偏轻,附录里每个游戏的奖励塑形(接近、朝向、关节限位、自碰撞等)是实打实的工程量;人类实验只有 5 人且 2 人是作者,84% 的 G1Maze 成功率建立在很小的样本上;基线只在语义多样性上被比较,没有让 DIAYN 或 METRA 的技能也给人玩,「可玩」优势是间接论证;多样性指标依赖 VLM 打分,换一个描述模型数字可能就变。技能可组合的前提(状态空间只有少量行为分区)目前是观察结果,不是训练保证。