原论文标题是"MINEDOJO:Building Open-Ended Embodied Agents with INternet-Scale Knowledge"
在此之前,Minecraft已经被改写成了多个强化学习环境。而MINEDOJO与其他环境相比,专注于多任务和开放式结局。由于这个环境是为任务打造的,所以在使用时,需要先设定好任务内容。其中的任务可分为两种:格式化任务(Programmatic Tasks)和创造性任务(Creative Task)。
格式化任务
格式化任务由一个五元组定义:
-
其中 和 分别为用自然语言描述的任务目标和任务指导;
-
:为agent和环境的初始状态参数;
-
为判定任务是否成功的函数;
-
人为设定密集奖励函数(防止奖励太稀疏,即只有最后做出来才给分,这里会设定一些中间奖励)。
创造性任务
创造性任务只由三元组定义:。缺少了 和 ,因为“创造性”意味着没有标准答案。意味着创造性任务是真正意义上的开放式结局任务。这些任务的任务目标 一部分是在 YouTube 上根据大佬视频找的,一部分甚至是使用 GPT-3 模型生成的。也就是说,一些任务甚至是人都没有想到过的,对于这些情况又该如何设定他的奖励函数呢?这就就要引入下面一个内容——MINECLIP。
MINECLIP 借鉴了已有的 image-text CLIP model,它定义为:,输入 分别是文字目标和观测的视频,是reward,训练时使用的是文字目标以及获取到的数据视频和视频的标签
然人写不出奖励函数,那就让 AI 通过看 YouTube 视频(视频+对应的文字描述)自学。它学到了“钓鱼”这个词对应的视觉特征是什么。它完美替代了消失的 和 。当你给 Agent 一个前所未有的任务时,MINECLIP 依然能根据它在互联网上学到的知识,给 Agent 提供实时的打分
得到视频 - 文字对集后,需要将其转化为 。文章采用了直接法 (Direct) 和作差法 (Delta) 两种方式。
直接法
直接法即计算观测的视频 和目标的文字要求 ,计算出与当前观测与目标的匹配概率 。则最终的奖励为:
其中 为计算 MINECLIP 时输入的文字集数量, 即随机预测的 baseline。
作差法
直接法在应对运动目标的时候效果较好,但如果应对静止目标时可能会陷入次优解。因此改用奖励:
在静止目标问题下效果更优。
其他 trick
自模仿学习
由于奖励函数使用的是 MINECLIP,训练代价显著提高。因此为了提高训练效果,当 agent 得到一条比较好的轨迹时便记录下来,然后再定期对保存的轨迹进行采样训练,有效地提高了训练效果。
输出动作平滑
由于模型的输入是过去几帧的的视频,如果动作幅度过于剧烈,会导致输入不够平滑且失去方向性。因此,文章在使用 PPO 算法时,加入了动作平滑 loss,定义为:
其中 ∣W∣ 是输入的帧数,KL(⋅) 为 KL 散度。