模仿学习 Imitation Learning

如果我们想让Agent来执行的某个动作,简单的演示给它看通常更加直观,而不是试错的方法来学习它。考虑我们训练医护兵NPC的示例:我们可以喂给医护兵真实世界例子的观察observations 以及 来自于游戏控制器的动作来指导医护兵的行为,而不是通过通过奖励函数间接训练医生。更具体地,在该模式中,训练期间的Brain type被设置为Player,并且控制器执行的所有动作都将被记录(除了agent观察之外)并将其发送到Python API。然后,模仿学习算法将使用来自人类玩家的这些(观察-动作)对 来学习策略。 Youtube视频链接(https://youtu.be/kpb8ZkMBFYs)需翻墙。

使用行为克隆

可以使用各种可能的模仿学习算法,其中最简单的一种是行为克隆。它的工作原理是收集教师的培训数据,然后简单地用它来直接学习策略,就像监督学习图像分类或其他传统机器学习任务一样。

  1. 为了在场景中使用模仿学习,你需要的第一件事是创建两个大脑,一个是“老师”,另一个是“学生”。 我们假设Brain对象的名称分别是“Teacher”和“Student”。

  2. 将“Teacher”Brain设置为Player模式,并正确配置输入以映射到相应的操作。确保在Brain的属性窗口中选中“Broadcast”。

  3. 设置“Student”Brain为External 模式。

  4. 把Brain赋值给希望训练的Agents(一个Agent作为老师,至少一个设置为学生)。

  5. 在config/trainer_config.yaml中,为“Student”大脑添加一个条目。 将此条目的trainer参数设置为imitation,将brain_to_imitate参数设置为Teacher大脑的名称:“Teacher”。 另外,设置batches_per_epoch,它控制每个时刻的训练量。 如果您希望长时间训练Agent,请增加max_steps选项。

  6. 使用mlagents-learn config/trainer_config.yaml --train --slow启动训练过程,并在屏幕上显示“通过按Unity Editor中的"Start training by pressing the Play button in the Unity Editor"消息时按Unity中的▶️按钮。

  7. 在Unity窗口中,通过提供您希望看到的行为的“教师演示”来控制有Teacher Brain的Agent。

  8. 观看有Student Brain的Agent开始与演示内容表现类似。

  9. 一旦学生Agent展示了所需的行为,请从命令行使用CTL + C结束培训过程。

  10. 将生成的* .bytes文件移动到Assets文件夹的TFModels子目录,并与Internal Brain一起使用。

BC Teacher Helper

我们提供了一个方便的工具——BC Teacher Helper,该组件可以添加到 Teacher Agent。

BC Teacher Helper

该工具让你使用键盘快捷键完成以下内容:

  1. 开始和停止记录经验。如果您想要与游戏进行交互但没有让agent从这些交互中学习,这非常有用。 切换它的默认命令是按键盘上的R。

2.重置训练缓冲区。这使您可以指示agent忘记其最近经验缓冲区。 如果您希望让他们快速学习新行为,这非常有用。 重置缓冲区的默认命令是按键盘上的C.

原文连接:https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Training-Imitation-Learning.md

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容

  • Unity中的强化学习 Reinforcement Learning in Unity 强化学习是一种人工智能技术...
    浪尖儿阅读 1,861评论 1 3
  • 0. 预备知识 虽然名字叫做机器学习ML,但是主要内容还是增强学习RL(或者叫强化学习)。其实并没有错,ML中主要...
    浪尖儿阅读 22,201评论 4 24
  • Agents设计 本文翻译自https://github.com/Unity-Technologies/ml-ag...
    浪尖儿阅读 6,360评论 0 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • 忽如其来的一场病 像是要为这个世界正名 这里不只有温暖如昔的春风 还有漆黑的地狱与你同行 不知是哪里发了神经 这个...
    日梦白阅读 182评论 0 1