Advertisement

RL论文阅读【六】Rainbow: Combining Improvements in Deep Reinforcement Learning

阅读量:

1 motivation

这篇论文可以理解为把 DQN 的很多改进都用上了,之前 Dueling DQN 其实已经把 Double DQN 和 Prioritized replay 已经用上了,除此之外,Q-learning 还有一个改进是 Multi-step,后来又有人提出了 Distributional RL 和 Noisy net。然后这篇论文的思想就是把这些改进全结合到一起,做一个全能的网络。下面就分别介绍每个具体的改进和如何结合。

2 优化算法

其中 DDQN,Dueling DQN 和 Prioritized replay 之前都介绍过就不再分别介绍了。

DDQN:<>

Dueling DQN:<>

Prioritized replay:<>

下别分别介绍其他优化:

2.1 Multi-step learning

这个优化是 Q-learning 里面就有的东西,在之前我们计算 loss 时,是用的 TD(0) 的方法,i.e. reward 加下一个状态的 Q 作为 target 和 当前的 Q 做差。这样在 Q 值计算比较准确的时候是没有太大问题的,问题是在训练初期,Q 值预测非常不准确,导致 target 计算也相当不准确,所以可以认为初期的训练效果很差,很多时间都走在错的方向了。

那么想到的改进方法就很直观了,我们直接用真实的 target 就行了,也就是从当前状态一直到终止状态的轨迹上所有的 reward 求和作为当前状态 Q 的 target,但是有太长了,所以一种比较折中的方法,就是往前多走几步,但不走到终止状态。具体如下图:

2.2 Distributional RL

原来 DQN 输出的是一个 Q 值,但是实际上,一个状态的 Q 值应该是一个分布,某些值得概率比较大,某些值得概率比较小,所以分布式 RL 的做法就是不直接输出 Q 了,而是输出一个 Q 值得分布,如输出 100 单元表示将输出范围分为 100 份,每个值得大小表示该 Q 值得概率。

这里就直说一个思想,具体的更新方式以及 loss 的定义还是看论文吧。

2.3 Noisy net

这里也是说一个思想,改正的是 \epsilon - greedy 的方法,具体的动机我没太看明白,只是说 \epsilon - greedy 的方法在很多环境中需要进行很多的探索才能找到第一个 reward,但是没说为什么用 Noisy net 能解决。

该方法就是在权值上直接乘一个噪声,使得网络输出本来就含有一定的噪声。

2.4 算法融合

首先根据 Multi-step learning,double DQN 和 Distributional RL 把 loss 函数进行了更改。

然后根据该 loss 实现了 Prioritized replay

再根据 dueling DQN 和 Distributional RL 改了网络架构

3 测试结果


由第一个图可以看出 ranbow 的确是比每个网络效果都好很多。根据第二个图,看似 double 和 dueling 帮助不是特别大,其中的原因我觉得可能是 distribution 估计了分布,可能对于过拟合会有帮助,以及对 Q 值估计应该会更准确一些,所以削弱了两者的作用。

全部评论 (0)

还没有任何评论哟~