强化学习的学习之路(二十七)_2021-01-27:Q-learning with continuous actions

作为一个新手,写这个强化学习-基础知识专栏是想和大家分享一下自己学习强化学习的学习历程,希望对大家能有所帮助。这个系列后面会不断更新,希望自己在2021年能保证平均每日一更的更新速度,主要是介绍强化学习的基础知识,后面也会更新强化学习的论文阅读专栏。本来是想每一篇多更新一点内容的,后面发现大家上CSDN主要是来提问的,就把很多拆分开来了(而且这样每天任务量也小一点哈哈哈哈偷懒大法)。但是我还是希望知识点能成系统,所以我在目录里面都好按章节系统地写的,而且在github上写成了书籍的形式,如果大家觉得有帮助,希望从头看的话欢迎关注我的github啊,谢谢大家!另外我还会分享深度学习-基础知识专栏以及深度学习-论文阅读专栏,很早以前就和小伙伴们花了很多精力写的,如果有对深度学习感兴趣的小伙伴也欢迎大家关注啊。大家一起互相学习啊!可能会有很多错漏,希望大家批评指正!不要高估一年的努力,也不要低估十年的积累,与君共勉!

接下来的几个博客将会分享以下有关DQN算法及其改进,包括DQN(Nature)、Double DQN、 Multi-step DQN、Pirority Replay Buffer、 Dueling DQN、DQN from Demonstrations、Distributional DQN、Noisy DQN、Q-learning with continuous actions、Rainbow、Practical tips for DQN等。

Q-learning with continuous actions

上面讲了DQN以及它的一些变体, 但是它们基本都立足于action space是discrete的,但是如果输出的action是continuous的,那么在求target value的时候取max操作就不太好进行了,在这节会介绍三类解决这个问题的方法。

  • Optimizations
    首先是基于优化的方法,自然就会想到用SGD了,但是这个 max其实是一个内循环, 使用SGD实际上会显得有些慢。而考虑到action space通常都是低维的, 所以stochastic optimization似平成为一个不错的选择。
    最简单的思路是sampling的方法, 根据某种分布从连续值中sample出若干个点, 选择它们中的最大者, 这样只要选的点越多,那么结果也就越正确。它的好处是异常简单,而且容易并行, 但是由于计算量限制,采样点数往往不足,最终效果会略差。

在这里插入图片描述

而另外还有cross-entropy method以及CMA-ES两种iterative stochastic optimization方法, 最多可以在动作空间维数为40的情况下运行。

  • Easily optimize function class
    第二大类则是引入一些容易取max的Q-function。例如在NAF(Normalized Advantage Functions)中,将网络的输出分成三部分:

img

此时max操作和argmax操作都可以用其中的head来表示:
arg ⁡ max ⁡ a Q ϕ ( s , a ) = μ ϕ ( s ) max ⁡ a Q ϕ ( s , a ) = V ϕ ( s ) \begin{array}{c} \arg \max _{a} Q_{\phi}(\mathbf{s}, \mathbf{a})=\mu_{\phi}(\mathbf{s}) \\ \max _{\mathbf{a}} Q_{\phi}(\mathbf{s}, \mathbf{a})=V_{\phi}(\mathbf{s}) \end{array} argmaxaQϕ(s,a)=μϕ(s)maxaQϕ(s,a)=Vϕ(s)
而一般的Q值则是也可以通过它们组合得到:
Q ϕ ( s , a ) = − 1 2 ( a − μ ϕ ( s ) ) T P ϕ ( s ) ( a − μ ϕ ( s ) ) + V ϕ ( s ) Q_{\phi}(\mathbf{s}, \mathbf{a})=-\frac{1}{2}\left(\mathbf{a}-\mu_{\phi}(\mathbf{s})\right)^{T} P_{\phi}(\mathbf{s})\left(\mathbf{a}-\mu_{\phi}(\mathbf{s})\right)+V_{\phi}(\mathbf{s}) Qϕ(s,a)=21(aμϕ(s))TPϕ(s)(aμϕ(s))+Vϕ(s)
这种方法的优点就是不对算法本身作出改动,没有添加inner loop的计算量, 效率保持一 致。但是由于网络需要输出多个head,表达更多语意,会降低表达能力,需要更大网络。

在这里插入图片描述

  • Approximate maximizer
    第三种方式则是DDPG的方法, 单独train一个network去fitted argmax操作:

在这里插入图片描述
在这里插入图片描述
上一篇:强化学习的学习之路(二十六)_2021-01-26: Noisy DQN
下一篇:强化学习的学习之路(二十八)_2021-01-28:Rainbow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值