Unity3D ML-Agent-0.8.1 学习四(模仿学习)

Unity3D ML-Agent-0.8.1 学习四(模仿学习)

      • 写的目的
      • 场景设置
      • 修改配置并训练
      • 总结

写的目的

本篇介绍模仿学习,即玩家边玩,代理边学习,主要分为在线学习和离线学习,在线就是跟着师傅一起学,离线就是看是师傅录制的资料学习,我们主要讲在线学习,就是玩家边玩,AI边学习,可以实时观察学习的效果,离线学习只是记录玩家信息,产生生成一个文件,命令行学习文件即可,不多做介绍。
Unity3D ML-Agent-0.8.1 学习四(模仿学习)_第1张图片

场景设置

可以复制前面的多代理学习的场景,预制TrainingArea复制2份,分别命名为StudentTrainingAreaTeacherTrainingArea,因为我们需要有是老师带学生学习,所以需要2个预制,当然其实只需要StudentTrainingArea,因为可以多个学生一起跟一个老师学习。
在这里插入图片描述

创建1个大脑,即学生模仿学习的大脑,命名为StudentRollerBallILBrain,属性还是跟单代理一样。
Unity3D ML-Agent-0.8.1 学习四(模仿学习)_第2张图片
然后将StudentTrainingArea里的RollerAgent上的大脑换成StudentRollerBallILBrain
Unity3D ML-Agent-0.8.1 学习四(模仿学习)_第3张图片
TeacherTrainingArea里的RollerAgent上的大脑换成RollerBallPlayerBrain,即我们最开始人为操作的大脑,因为需要跟着玩家学,所以得需要人为操作。
Unity3D ML-Agent-0.8.1 学习四(模仿学习)_第4张图片
再将Academy里的广播大脑设置成刚才那两个,即他们之间可以通信了,学生可以学习老师的行为了。记得训练前Control打勾。
Unity3D ML-Agent-0.8.1 学习四(模仿学习)_第5张图片
设置完成后,如果要多代理训练,可以复制多个学生预制,感觉像做广播操一样
Unity3D ML-Agent-0.8.1 学习四(模仿学习)_第6张图片

修改配置并训练

场景设置完了之后,找到online_bc_config.yaml文件:
Unity3D ML-Agent-0.8.1 学习四(模仿学习)_第7张图片
然后添加StudentRollerBallILBrain设置,可以参考我这个

StudentRollerBallILBrain: 对应大脑的名字
    trainer: online_bc
    max_steps: 2000  
    summary_freq: 100
    brain_to_imitate: RollerBallPlayerBrain 对应老师的名字,即要模仿的对象
    batch_size: 32
    batches_per_epoch: 5
    num_layers: 4
    hidden_units: 64
    use_recurrent: false
    sequence_length: 16

最后命令行进行训练:

mlagents-learn config/online_bc_config.yaml --run-id=RollerBall-IL --train --slow     --slow 代表正常速度,方便操作

Unity3D ML-Agent-0.8.1 学习四(模仿学习)_第8张图片
可以看到效果也不错,当然取决于你的操作啦。训练完之后就是把相应的大脑换上即可看效果。

总结

模仿学习其实也不错,用于比较复杂的情况,可以先带着AI训练训练,不然AI真的摸不着头脑,瞎逛了。

例子主要文件unity3D-ml-agent-0.8.1

好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵,部分图片来自网络,侵删。

你可能感兴趣的:(强化学习,Unity3D,Ml-Agent,深度学习,Unity3D,ml-agent,强化学习,深度学习,模仿学习)