-
我也表示很困惑!
-
Unity ML-agents 我前段时间也在研究,发现它的架构包裹得较为复杂,也是感觉很头疼。它搞得这么复杂主要是为了将多智能体训练和 selfplay 等也兼容到这个框架里面。我个人阅读以后做了些笔记,首先是参数设置方面。可以参考我的这篇笔记。上面有详细讲了 ppo 算法的参数设置问题。
关于如何修改代码,我这边不建议你直接上手改他的代码,因为他的架构极为复杂。如果你仅仅是处于学习使用的目的,或者单纯想学习 ppo 的架构。更加建议你看 openai baseline 的 ppo 实现,那个要更加清楚一些,虽然工程化很糟糕。
但你如果是需要在 unity mlagents 的源码上进行二次开发,那么下面这些 tips 或许对你有用。
首先,实现 ppo 本身的那些更新策略和网络并不难,你只要查看 ml-agents/mlagents/trainers/ppo/trainer.py 这一个文件就能明白了。process_trajectory 主要是处理收集到的 trajectories,然后计算 gae。
然后就是下面的 update policy 函数,这边其实从 194 行开始到函数结束,就是我们常见的 ppo 的一个实现。如果你看过 openai baseline 的实现,就不难看懂这部分。你可以先去研究一下。下面的 create policy 就是创建你的 actor 和 critic 网络的地方。要修改网络架构就朝着这个方向看就行了。 另外也可以看一下同一路径下面的 optimizer_torch.py,里面主要是用来调用的各种 evaluate 和 get action 函数。
当然,上面的流程看似简单,但是是忽略了最大的问题就是收集数据上面的。这个方面恰恰是各个框架实现起来最复杂的地方。训练流程的控制和数据收集,代码主要在 trainer_controller.py 里面。
总之,如果你只想了解 ppo 算法流程,rlchina 的代码库是个不错的上手途径。这篇 medium 上的文章详细的引导了你怎么实现一个 ppo,也可以参考下。不过 rlchina 的库我也看过,似乎没有 gae 的模块。所以建议你还是把 opeanai baseline 的 ppo 实现看一下。 差不多就这些吧。有问题再交流赞 👍
-
Unity ML-agents 我前段时间也在研究,发现它的架构包裹得较为复杂,也是感觉很头疼。它搞得这么复杂主要是为了将多智能体训练和 selfplay 等也兼容到这个框架里面。我个人阅读以后做了些笔记,首先是参数设置方面。可以参考我的这篇笔记。上面有详细讲了 ppo 算法的参数设置问题。
关于如何修改代码,我这边不建议你直接上手改他的代码,因为他的架构极为复杂。如果你仅仅是处于学习使用的目的,或者单纯想学习 ppo 的架构。更加建议你看 openai baseline 的 ppo 实现,那个要更加清楚一些,虽然工程化很糟糕。
但你如果是需要在 unity mlagents 的源码上进行二次开发,那么下面这些 tips 或许对你有用。
首先,实现 ppo 本身的那些更新策略和网络并不难,你只要查看 ml-agents/mlagents/trainers/ppo/trainer.py 这一个文件就能明白了。process_trajectory 主要是处理收集到的 trajectories,然后计算 gae。
然后就是下面的 update policy 函数,这边其实从 194 行开始到函数结束,就是我们常见的 ppo 的一个实现。如果你看过 openai baseline 的实现,就不难看懂这部分。你可以先去研究一下。下面的 create policy 就是创建你的 actor 和 critic 网络的地方。要修改网络架构就朝着这个方向看就行了。 另外也可以看一下同一路径下面的 optimizer_torch.py,里面主要是用来调用的各种 evaluate 和 get action 函数。
当然,上面的流程看似简单,但是是忽略了最大的问题就是收集数据上面的。这个方面恰恰是各个框架实现起来最复杂的地方。训练流程的控制和数据收集,代码主要在 trainer_controller.py 里面。
总之,如果你只想了解 ppo 算法流程,rlchina 的代码库是个不错的上手途径。这篇 medium 上的文章详细的引导了你怎么实现一个 ppo,也可以参考下。不过 rlchina 的库我也看过,似乎没有 gae 的模块。所以建议你还是把 opeanai baseline 的 ppo 实现看一下。 差不多就这些吧。有问题再交流ML-agents各种文件确实复杂XD,难得大佬有清晰的理解 我如果再有一些问题还需要请教 谢谢!👍 -
Unity ML-agents 我前段时间也在研究,发现它的架构包裹得较为复杂,也是感觉很头疼。它搞得这么复杂主要是为了将多智能体训练和 selfplay 等也兼容到这个框架里面。我个人阅读以后做了些笔记,首先是参数设置方面。可以参考我的这篇笔记。上面有详细讲了 ppo 算法的参数设置问题。
关于如何修改代码,我这边不建议你直接上手改他的代码,因为他的架构极为复杂。如果你仅仅是处于学习使用的目的,或者单纯想学习 ppo 的架构。更加建议你看 openai baseline 的 ppo 实现,那个要更加清楚一些,虽然工程化很糟糕。
但你如果是需要在 unity mlagents 的源码上进行二次开发,那么下面这些 tips 或许对你有用。
首先,实现 ppo 本身的那些更新策略和网络并不难,你只要查看 ml-agents/mlagents/trainers/ppo/trainer.py 这一个文件就能明白了。process_trajectory 主要是处理收集到的 trajectories,然后计算 gae。
然后就是下面的 update policy 函数,这边其实从 194 行开始到函数结束,就是我们常见的 ppo 的一个实现。如果你看过 openai baseline 的实现,就不难看懂这部分。你可以先去研究一下。下面的 create policy 就是创建你的 actor 和 critic 网络的地方。要修改网络架构就朝着这个方向看就行了。 另外也可以看一下同一路径下面的 optimizer_torch.py,里面主要是用来调用的各种 evaluate 和 get action 函数。
当然,上面的流程看似简单,但是是忽略了最大的问题就是收集数据上面的。这个方面恰恰是各个框架实现起来最复杂的地方。训练流程的控制和数据收集,代码主要在 trainer_controller.py 里面。
总之,如果你只想了解 ppo 算法流程,rlchina 的代码库是个不错的上手途径。这篇 medium 上的文章详细的引导了你怎么实现一个 ppo,也可以参考下。不过 rlchina 的库我也看过,似乎没有 gae 的模块。所以建议你还是把 opeanai baseline 的 ppo 实现看一下。 差不多就这些吧。有问题再交流 -
好的明白,可以看一下咱们及第的代码库 https://github.com/jidiai/ai_lib/tree/master/examples/algo/ppo ,源代码相对的更友好点,关于 PPO 的接口也好理解;还有关于 PPO 的文档介绍 http://www.jidiai.cn/ppo :)
谢谢 :D
-
你好,谢谢你的回答
在 Unity 官方的仓库里只给出了所有的代码文件,而没有一些关于其 PPO 算法在代码中实现过程的帮助文档,也就是说想要理解它所采用的 PPO 算法需要去阅读源码本身,整个项目的源码让我短时间内在理解上遇到了困难
另外,及第平台非常棒,谢谢!
好的明白,可以看一下咱们及第的代码库 https://github.com/jidiai/ai_lib/tree/master/examples/algo/ppo ,源代码相对的更友好点,关于 PPO 的接口也好理解;还有关于 PPO 的文档介绍 http://www.jidiai.cn/ppo :)
-
顶一下!有同样的困惑,支持!
-
1.你别光把具体问题写在回复里,主帖也改一下,然后等大佬回答
2.第二个问题好像比较简单,有 rlchina 推荐的 jidiai 啦,清华的 tianshou 啦,等等,大家继续补充~好的,谢谢
-
https://github.com/Unity-Technologies/ml-agents/tree/main/ml-agents/mlagents/trainers/ppo 你大概找的是这个吧我猜。 第二个问题就像 vinbo 讲的咱们自己的测试平台 Jidi: http://www.jidiai.cn/homepage
你好,谢谢你的回答
在 Unity 官方的仓库里只给出了所有的代码文件,而没有一些关于其 PPO 算法在代码中实现过程的帮助文档,也就是说想要理解它所采用的 PPO 算法需要去阅读源码本身,整个项目的源码让我短时间内在理解上遇到了困难
另外,及第平台非常棒,谢谢!
-
你好,其实我主要想问的是 ML-agents 当中 PPO 算法具体输入、具体数据处理、输出都分别在工具包中哪些文件中体现的,目前我感觉这方面的资料比较少;
还有一个问题,算法的仿真平台除了 gym & Unity,还有哪些可供方便的验证各种算法的平台呢?
希望有大佬解答/抱拳
https://github.com/Unity-Technologies/ml-agents/tree/main/ml-agents/mlagents/trainers/ppo 你大概找的是这个吧我猜。 第二个问题就像 vinbo 讲的咱们自己的测试平台 Jidi: http://www.jidiai.cn/homepage
-
你好,其实我主要想问的是 ML-agents 当中 PPO 算法具体输入、具体数据处理、输出都分别在工具包中哪些文件中体现的,目前我感觉这方面的资料比较少;
还有一个问题,算法的仿真平台除了 gym & Unity,还有哪些可供方便的验证各种算法的平台呢?
希望有大佬解答/抱拳
1.你别光把具体问题写在回复里,主帖也改一下,然后等大佬回答
2.第二个问题好像比较简单,有 rlchina 推荐的 jidiai 啦,清华的 tianshou 啦,等等,大家继续补充~ -
视频不错,谢谢。
另外,你的问题,需要再具体一点才可能得到回答吧你好,其实我主要想问的是 ML-agents 当中 PPO 算法具体输入、具体数据处理、输出都分别在工具包中哪些文件中体现的,目前我感觉这方面的资料比较少;
还有一个问题,算法的仿真平台除了 gym & Unity,还有哪些可供方便的验证各种算法的平台呢?
希望有大佬解答/抱拳
-
视频不错,谢谢。
另外,你的问题,需要再具体一点才可能得到回答吧
daydayup
一份伏特加,加一点青柠,姜汁,啤酒,最重要的是,还有一点爱
评论(13)
请
登录后发表观点