最近看B站时候发现机器之心上传了之前12月初的nips2020 meetup的视频,有些关于强化学习的有三个,就看了下,其中有个作者还做了这篇文章的报告,这里简单总结下。nips2020 meetup的B站链接如下:
nips2020 meetupspace.bilibili.com Multi-Task Reinforcement Learning with Soft Modularization 讲座链接www.bilibili.com
其中meetup中还邀请了南大俞扬老师做了:
强化学习与环境模型的专题报告,俞老师主要还是讲了下他们怎么使用现实数据构建更好的环境,其中有些关于滴滴和阿里项目还落地了,还是值得一看的。此外,还有华为的郝建业老师做了:
深度强化学习的挑战及落地的专题报告, 虽然郝老师题目中提到了落地,但是视频讲座中主要讲了几篇他们顶会的论文,主要是常用来比较的那几个游戏。,关于落地的干货基本没有或者很少了。
有兴趣也可以看看,扯远了,回来。
文章地址:Multi-Task Reinforcement Learning with Soft Modularization
https://arxiv.org/pdf/2003.13661.pdfarxiv.org
代码和项目ppt等主页链接:
https://rchalyang.github.io/SoftModule/assets/SoftModule.pdfrchalyang.github.io https://rchalyang.github.io/SoftModule/rchalyang.github.io
前言
文章主要是研究使用同一个网络来解决Multi-Task的问题。Multi-Task常见的有:
- 为每一个task 单独训练一个policy network, 这个可以用来作为上限对比。
- 使用同一个网络,但是状态加入a one-hot task ID作为输入。
- 另外就是使用multi-head,也就是同一个backbone,后面输出有多个head,分别代表一个task输出。
之前同时nips2020,滴滴有一篇文章Multi-Task Deep Reinforcement Learning with Knowledge Transfer for Continuous Control,链接如下:
https://arxiv.org/abs/2010.07494arxiv.org
用的就是知识蒸馏和迁移学习的方法,大致的思路就是第一种,为每一个task 单独训练一个policy network作为教师网络,然后使用这些teacher去同一个student网络,最后使用这一个student去解决Multi-Task的问题,当然还有另外一些trick,详细的可以看看滴滴的文章。
方案
这篇文章其实使用的还是一个网络解决多个task方案,达到高效率和能解决多个task。他们的方法使用下面一张图可以简要说明:
Base PolicyNetwork and RoutingNetwork
是the task embedding,也就是每个任务的one-hot,
是状态,然后使用mlp对其进行编码。PolicyNetwork每一层有n个module block,这n个 module block连接到下一层的概率由右边的RoutingNetwork来产生。这样对于每一task就可以自适应学习到不同权重,有点类似attention。
效果如下图
线颜色越深权重越大
右边
的计算方式如下
左边第ith module block计算如下
最后再加起来汇总输出,这样研究的也是连续动作。
使用的baseline方法是SAC
policy loss
learnable temperature
文章中的一个小trick就是不同的任务难易程度不一样,所以需要加权,权重人工定义的话,不好,交给网络自己学。基本思路如下:类似于SAC的temperature parameter
的参数调节。
如果一个任务的
过大的话,意味着其entropy低,这时候增加该任务对于的权重,反之就减少权重。如上面的learnable temperature式子所示,对于每一个任务都有需要学习的参数
最终归一化
加权到每一个任务的优化函数中:
实验结果
对比的baseline方案:
- Single-task SAC
- Multi-task SAC (MT-SAC)
- Multi-task multi-head SAC
- Mixture of Experts (Mix-Expert):包含了四个专家相同结构的网络和 一个 learned gating network for expert combination
先来看效果图
每一列学到的线之间的权重很像,这是因为同一列的任务很像,当然,作者在讲座中也提到,这些解释有点马后炮或者事后诸葛亮的感觉,work后就可以强行解释了哈哈。
对不同任务的 routing probabilities 做了t-sne降维可视化
也是任务很像比较接近。马后炮解释哈。
跟其他方法比,还行,不是第一就是第二。
其他的消融实验(balance应该就是实验那个不同任务自学习权重trick的作用)