多智能体强化学习——值分解方法理论及代码组件

多智能体强化学习——值分解⽅法理论及代码组件
1.理论
值分解⽅法是⼀种主流的多智能体强化学习解决⽅案。
它使⽤集中式训练、分布式执⾏(CTDE)架构(在训练时能得到全局信息,在执⾏时只需要局部观测),解决部分可观测问题;使⽤局部动作函数以⼀定规则约束(⼀般为IGM)来拟合全局动作值函数,解决信度分配问题。
2.常见算法
①VDN
直接把局部值函数直接相加得到全局值函数
②QMIX
学习⼀个mix⽹络来作为约束,mix取绝对值⼤于0
③Qatten
通过attention机制学习约束表⽰
④QPLEX
把动作值函数分解成优势函数 + 价值函数
等等................................................
3.代码组件
以QMIX作为主要分析对象
①config 配置⽂件
python3 src/main.py --config=qmix --env-config=sc2 with env_args.map_name=2s3z
选择qmix.yaml 、sc2.yaml 并把sc2.yaml中的map_name 改成2s3z default.yaml 默认会加载
覆盖顺序 algo.yaml 会 覆盖 sc2.yaml 会覆盖 default.yaml
配置⽂件包含三块内容:algs算法配置、envs环境配置、default默认配置
1、default.yaml
主要配置了⼀些通⽤的默认属性
混凝土多孔砖
关键配置:
这两个参数默认为True,在输⼊神经⽹络inputs时会拼接上agent_id 和上⼀时刻动作。
2、sc2.yaml
环境的配置(默认不⽤sc2_beta.yaml)
注意其中也有⼀个obs_last_action  设置为False
他是在env_args下的,即是env_args.obs_last_action 不会覆盖default配置
只是环境在得到原始观测是不包含last_action
洪华美3、qmix.yaml
第⼀部分是探索 探索5w步 从1降到0.05
其他就是算法⽹络的⼀些参数
②components
格致中学
没细看 主要是⼀些动作选择的⽅式、replaybuffer之类的...
③controller
控制器,选择agent的动作
关键的函数:_build_inputs
forward
select_actions
④envs
SMAC环境接⼝
⑤learners
QMIX⽤到的是q_learner薯蓣丸加减
关键的函数:train 训练过程  loss为TD_error
如果想要改进算法,这⾥是关键的部分
⑥modules
agent⽹络、mix⽹络
⑦runners
默认⽤的是episode_runner
关键的函数:run 收集⼀个episode的样本数据英国大百科全书
还有⼀些是log函数
⑧utils
⼯具类,没细看:(
⑨main.py
运⾏⼊⼝
太阳能小屋的设计⑩run.py
真正的运⾏程序
关键函数:run_sequential  包含怎么训练、怎么eval、怎么save 流程框架单独开⼀个吧

本文发布于:2024-09-21 10:56:21,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/365996.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:子接口
标签:函数   配置   动作
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议