GAN-DQN
本期介绍一项来自麦吉尔大学的有趣工作,它拓展了分布强化学习在深度学习框架下的应用,提出了一个十分有趣的深度强化学习框架:GAN+DQN。文章表明,GAN-DQN对于高度复杂的强化学习任务尤其有效,在最终控制效果以及减小回报值方差方面都有长足的改进。在这里先放出结果图供诸君一览,领略一下GAN-DQN的优势:
从结果上看,可知GAN-DQN在收敛速度上并没有优势,甚至有着一些劣势,然而其在控制效果与结果方差却有很大优势。其实,GAN-DQN的收敛速度慢可以预想的到,因为GAN的训练本身就十分困难,再将其应用到强化学习环境中,其训练难度可想而知。俗话说有得必有失,GAN-DQN虽然训练困难,但其提出对于提升深度强化学习的性能依然有着重要意义。
理论基础
按照惯例,我们首先要阐述一下GAN-DQN的基础:
- 强化学习与分布强化学习
- GAN
1. 强化学习与分布强化学习
关于RL与DRL在这里不过多阐述,有兴趣可以参考我的博客分布强化学习。
2.对抗生成网络(GAN)
2014,由GoodFellow提出的GAN在深度学习领域掀起了一场革命,GAN采用了零和博弈的思想,通过对抗的方式来学习样本分布。GAN的思想可以用一个比喻来简单阐述:一个假钞贩子不断提高印制假钞的技术,尽量让警察辨别不出假钞的真伪,而警察努力提高自己的辨别能力来区分真钞与假钞,两者之间为一个零和博弈,通过博弈过程的不断进行,最后达到一个纳什均衡,即警察分别不出假钞贩子制造的钞票是真是伪。类比到GAN中,假钞贩子就是一个生成器(G),而警察就是一个判别器(D),G不断地改进网络参数产生假的样本分布,而D不断的更新网络来提高辨别真假样本分布的能力,通过不断交替更新,最终G能学习到真实的样本分布,关于收敛性GoodFellow给出了一套完整的理论证明。
接下来具体说说GAN的结构与训练方法:
GAN由一个生成器(G)与一个判别器(D)组成。G的任务是将一个高维噪声空间映射到一个输入空间X,空间X分布为,即。D对每个输入来自真实样本分布的概率继续打分,即。经典的GAN采用JS散度作为损失函数,而Wasserstein GAN采用1-Wasserstein度量作为损失函数,GAN-DQN中使用了带有梯度惩罚的变体损失:
关于GAN这块,我日后会专门写一篇介绍,包括其变体及应用。
动机
介绍完理论知识,你们有没发现GAN的结构与actor-critic结构十分类似,都是存在两个网络结构,并且其中一个网络结构依靠另一个网路给出的信息来进行网路更新。因此,很自然地,可以在强化学习中应用GAN博弈的思想:生成器网络的目标是最优动作值分布的真实样本(即估计);为判别器的目标是区别真实样本与G产生的样本。
算法
总的算法框架如下:
算法的基本框架与DQN类似,只是在动作选择这一步,G接受噪声与一个状态s作为输入,根据当前对于的估计,针对每个动作a输出一个样本G(z|(s,a))。然后根据选择最大化样本的动作a*。其他与DQN基本一致,其中损失函数为:
值得注意的一点是,在进行动作选择时,GAN-DQN算法并不存在探索率,这是由于探索策略已经内化在生成模型中。
收敛性
纵然GAN-DQN的想法是如此的美好,但是现实却很骨感。GAN-DQN的收敛性无法得到保障,其不稳定性来源于两方面:1.由于非线性函数逼近,DQN本身的收敛就不容易。再加上2.GAN的收敛很困难,这就导致的GAN-DQN的训练极其困难,需要精心的调参以及一点运气。
写在最后
GAN-DQN是一种强大的深度强化学习算法,围绕它,未来的工作将会集中在解决其训练稳定性问题以及拓展GAN到其他深度强化学习上。
最后附上论文地址GAN-DQN。