论文简要总结
智能体需要合作将家具移动到客厅的指定位置。这个任务与现有的任务不同,它要求智能体在每个时间步都必须进行协调。
模型部分
1. SYNC-policies (Synchronize Your Actions Coherently)
为了解决智能体在每个时间步都需要协调的问题,研究者提出了SYNC-policies。这种策略允许分布式智能体表达联合策略,同时使用可解释的通信。
在SYNC-policies中,智能体通过共享随机数流和共享函数来共同构建一个策略,然后从这个策略中采样动作。这意味着智能体可以同意一个策略,然后根据这个策略来选择动作。
2. CORDIAL (Coordination Loss)
为了鼓励智能体学习协调动作,研究者提出了协调损失(CORDIAL)。这种损失函数替代了传统的熵损失函数,引导智能体远离相互不兼容的动作。
CORDIAL通过增加一个损失项来鼓励智能体在动作上保持一致性,从而提高协作效率。
3. 架构
文中提到了TBONE架构,这是一个用于多智能体的通信和策略学习的架构。在这个架构中,每个智能体都有一个CNN-LSTM网络来处理输入的图像,并进行通信以形成策略。
SYNC-policies通过在TBONE架构上增加额外的线性层来实现,这些层用于计算多个策略的混合。
实验部分
1. 实验设置
模拟器:使用AI2-THOR环境进行实验,这是一个交互式的3D环境,用于视觉AI研究。
任务:FurnMove、Gridworld-FurnMove和FurnLift。FurnMove是本文提出的新任务,Gridworld-FurnMove是FurnMove的网格世界版本,FurnLift是一个现有的任务,用于比较。
数据:在30个客厅场景中进行训练、验证和测试。
训练:使用A3C算法进行训练,并结合CORDIAL损失函数。
2. 评估指标
成功率(Success)、平均步数(Ep len)、最终距离目标的距离(Final dist)、TVD(Total Variation Distance)和无效动作概率(Invalid prob)等。
3. 实验结果
SYNC-policies在FurnMove任务中的表现优于其他方法,成功率提高了25.9%。
在Gridworld-FurnMove任务中,所有方法的性能都有所提高,因为任务简化了。
在FurnLift任务中,SYNC-policies在某些指标上优于边际模型(marginal model)。
源码下载
A Cordial Sync: Going Beyond Marginal Policies for Multi-Agent Embodied Tasks
环境安装
下载好代码文件后,里面的readme特别详细,注意几点:
1.python要求3.6
2.最好使用pipenv进行安装(推荐),但是要更改其中的Pipfile,见下文的Numpy版本限制
3.数据下载不下来,点击提供的链接就可以下载
Numpy版本限制
matplotlib要求numpy版本>1.15,pipfile中没有对numpy的版本进行要求,默认安装的话会安装1.14.5,我改numpy版本好几次,都会报错存在两个版本的numpy,于是把numpy移到最后并加上版本限制。
使用pipenv --rm可以删除建立的虚拟环境。
找不到rl_base文件夹
export PYTHONPATH=$(pwd):$PYTHONPATH
该命令只在当前会话有效,如果需要永久添加到系统路径
编辑 .bashrc
文件,添加 PYTHONPATH
设置: 在文件末尾添加以下行:
export PYTHONPATH=/path/to/your/rl_base:$PYTHONPATH
git报错
在此目录下建立一个git仓库即可,在电脑安装好git的情况下,使用git init命令(可以不链接远程仓库),没有安装的可以看这篇:
ps:理论上来说把这部分注释掉应该也没问题
OpenGL版本问题
Traceback (most recent call last):
File "/home/ja/.conda/envs/ai_env/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/home/ja/.conda/envs/ai_env/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/ja/.conda/envs/ai_env/lib/python3.6/site-packages/ai2thor/controller.py", line 697, in _start_unity_thread
raise Exception("command: %s exited with %s" % (command, returncode))
Exception: command: ['/home/ja/.ai2thor/releases/thor-201909171243-Linux64/thor-201909171243-Linux64', '-screen-fullscreen', '0', '-screen-quality', '7', '-screen-width', '300', '-screen-height', '300'] exited with 1
出现这个错误的原因,是ai2thor环境,使用unity开发,对应的OpenGL版本应该在3.2以上。
查看OpenGL的版本
glxinfo | grep "OpenGL version"
如果提示没有这个命令,安装
sudo apt update
sudo apt install mesa-utils
成功页面如下:
标签:Cordial,git,policies,具身,SYNC,智能,源码,版本,FurnMove From: https://blog.csdn.net/qq_51308160/article/details/143418772