C51算法理论上用Wasserstein度量衡量两个累积分布函数间的距离证明了价值分布的可行性,但在实际算法中用KL散度对离散支持的概率进行拟合,不能作用于累积分布函数,不能保证Bellman更新收敛;且C51算法使用价值分布的若干个固定离散支持,通过调整它们的概率来构建价值分布。

而分位数回归(quantile regression)的distributional RL对此进行了改进。首先,使用了C51的“转置”,即固定若干个离散支持的均匀概率,调整离散支持的位置;引入分位数回归的思想,近似地实现了Wasserstein距离作为损失函数。

Quantile Distribution

假设\(\mathcal{Z}_Q\)是分位数分布空间,可以将它的累积概率函数均匀分为\(N\)等分,即\(\tau_0,\tau_1...,\tau_N(\tau_i=\frac{i}{N},i=0,1,..,N)\)。使用模型\(\theta:\mathcal{S}\times \mathcal{A}\to \mathbb{R}^N\)来预测分位数分布\(Z_\theta \in \mathcal{Z}_Q\),即模型\(\{\theta_i (s,a)\}\)将状态-动作对\((s,a)\)映射到均匀概率分布上。\(Z_\theta (s,a)\)的定义如下

\[Z_\theta (s,a):=\frac{1}{N}\sum_{i=1}^N \delta_{\theta_i(s,a)} \tag{1}
\]

其中,\(\delta_z\)表示在\(z\in\mathbb{R}\)处的Dirac函数

与C51算法相比,这种做法的好处:

  1. 不再受预设定的支持限制,当回报的变化范围很大时,预测更精确
  2. 取消了C51的投影步骤,避免了一些先验知识
  3. 使用分位数回归,可以近似最小化Wassertein损失,梯度下降不再有偏

Quantile Approximation

Quantile Projection

使用1-Wassertein距离对随机价值分布\(Z\in \mathcal{Z}\)到\(\mathcal{Z}_Q\)的投影进行量化:

\[\mathcal{\Pi}_{W_1}Z:={\arg\min}_{{Z_\theta}\in\mathcal{Z}_Q}W_1(Z,Z_\theta)
\]

假设\(Z_\theta\)的支持集为\(\{\theta_1,...,\theta_N \}\),那么

\[W_1(Z,Z_\theta)=\sum_{i=1}^N \int_{\tau_{i-1}}^{\tau_i} |F_Z^{-1}(w)-\theta_i|dw
\]

其中,\(\tau_i,\tau_{i-1}\in[0,1]\)论文指出,当\(F_Z^{-1}\)是逆累积分布函数时,\(F_Z^{-1}((\tau_{i-1}+\tau_i)/2)\)最小。因此,量化中点为\(\mathcal{\hat\tau_i}=\frac{\tau_{i-1}+\tau_i}{2}(1\le i\le N)\),且最小化\(W_1\)的支持\(\theta_i=F_Z^{-1}(\mathcal{\hat\tau_i})\)。如下图

【注】C51是将回报空间(横轴)均分为若干个支持,然后求Bellman算子更新后回报落在每个支持上的概率,而分位数投影是将累积概率(纵轴)分为若干个支持(图中是4个支持),然后求出对应每个支持的回报值;图中阴影部分的面积和就是1-Wasserstein误差。

Quantile Regression

建立分位数投影后,需要去近似分布的分位数函数,需要引入分位数回归损失。对于分布\(Z\)和一个给定的分位数\(\tau\),分位数函数\(F_Z^{-1}(\tau)\)的值可以通过最小化分位数回归损失得到

\[\mathcal{L}_{\text{QR}}^\tau(\theta):=\mathbb{E}_{\hat Z\sim Z}[\rho_\tau (\hat Z -\theta)],\quad \text{where} \quad \rho_\tau (u)=u(\tau-\delta_\{u<0\}),\forall u\in\mathbb{R}
\]

最终,整体的损失函数为

\[\sum_{i=1}^N \mathbb{E}_{\hat Z\sim Z}[\rho_{\hat{\tau}_i} (\hat Z -\theta)]
\]

但是,分位数回归损失在0处不平滑。论文进一步提出了quantile Huber loss:

\[\mathcal{L}_{\mathcal{K}}(u)=
\begin{cases}
& \frac{1}{2}u^2,\quad\quad\quad\quad \text{if} |u|\le \mathcal{K} \\
& \mathcal{K}(|u|-\frac{1}{2}\mathcal{K}),\,\, \text{otherwise}
\end{cases}
\]
\[\rho_{\tau}^{\mathcal{K}}(u)=|\tau-\delta_{\{u<0\}}|\mathcal{L}_{\mathcal{K}}(u)
\]

Implement

QR TD-Learning

QRTD算法(quantile regression temporal difference learning algorithm)的更新

\[\theta_i(s)\leftarrow \theta_i(s)+\alpha (\hat{\mathcal{\tau}}_i-\delta_{\{r+\gamma z^\prime < \theta_i (s) \}})
\]

\(a\sim\pi (\cdot|s),r\sim R(s,a),s^\prime\sim P(\cdot|s,a),z^\prime\sim Z_\theta(s^\prime)\)

其中,\(Z_\theta\)是由公式(1)给出的分位数分布,\(\theta_i (s)\)是状态\(s\)下\(F_{Z^\pi (s)}^{-1}(\mathcal{\hat \tau}_i)\)的估计值。

QR-DQN

QR-DQN算法伪代码

Append

1. Dirac Delta Function

\[\delta_a (x)=\delta (x-a)=0,(x\neq 0) \quad且\quad \int_{-\infty}^\infty \delta_a (x)d_x=1
\]

References

Will Dabney, Mark Rowland, Marc G. Bellemare, Rémi Munos. Distributional Reinforcement Learning with Quantile Regression. 2017.

Distributional RL

3. Distributional Reinforcement Learning with Quantile Regression的更多相关文章

  1. Distributional Reinforcement Learning with Quantile Regression

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:1710.10044v1 [cs.AI] 27 Oct 2017 In AAAI Conference on Artifici ...

  2. Statistics and Samples in Distributional Reinforcement Learning

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:1902.08102v1 [stat.ML] 21 Feb 2019 Abstract 我们通过递归估计回报分布的统计量,提供 ...

  3. 2. A Distributional Perspective on Reinforcement Learning

    本文主要研究了分布式强化学习,利用价值分布(value distribution)的思想,求出回报\(Z\)的概率分布,从而取代期望值(即\(Q\)值). Q-Learning Q-Learning的 ...

  4. [转]Introduction to Learning to Trade with Reinforcement Learning

    Introduction to Learning to Trade with Reinforcement Learning http://www.wildml.com/2018/02/introduc ...

  5. Introduction to Learning to Trade with Reinforcement Learning

    http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/ The academic ...

  6. Rainbow: Combining Improvements in Deep Reinforcement Learning

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:1710.02298v1 [cs.AI] 6 Oct 2017 (AAAI 2018) Abstract 深度强化学习社区对D ...

  7. Machine Learning Algorithms Study Notes(5)—Reinforcement Learning

    Reinforcement Learning 对于控制决策问题的解决思路:设计一个回报函数(reward function),如果learning agent(如上面的四足机器人.象棋AI程序)在决定 ...

  8. (转) Playing FPS games with deep reinforcement learning

    Playing FPS games with deep reinforcement learning 博文转自:https://blog.acolyer.org/2016/11/23/playing- ...

  9. (zhuan) Deep Reinforcement Learning Papers

    Deep Reinforcement Learning Papers A list of recent papers regarding deep reinforcement learning. Th ...

随机推荐

  1. k8s数据管理(八)

    volume 我们经常会说:容器和 Pod 是短暂的.其含义是它们的生命周期可能很短,会被频繁地销毁和创建.容器销毁时,保存在容器内部文件系统中的数据都会被清除. 为了持久化保存容器的数据,可以使用 ...

  2. 数据库SQL调优的几种方式

    1.创建索引 (1) 要尽量避免全表扫描,首先应考虑在where 及order by涉及的列上建立索引 (2) 在经常需要进行检索的字段上创建索引,一个表中的索引最好不要超过6个 2.避免在索引上使用 ...

  3. 容器云平台No.3~kubernetes使用

    今天是是第三篇,接着上一篇继续 首先,通过kubectl可以看到,三个节点都正常运行 [root@k8s-master001 ~]# kubectl get no NAME STATUS ROLES ...

  4. windows服务器中创建账号及管理相关的net命令

    本文测试环境:windows server 2012 R2 Datacenter 实例要求: 1.创建账号,加入到远程桌面组,能实现远程桌面登录 2.指定Full name .及Description ...

  5. Maven【常见知识点速查】

    文章更新时间:2020/04/10 一.为什么使用Maven这样的构建工具[why] ① 一个项目就是一个工程 如果项目非常庞大,就不适合使用package来划分模块,最好是每一个模块对应一个工程,利 ...

  6. Spring学习(六)bean装配详解之 【通过注解装配 Bean】【基础配置方式】

    通过注解装配 Bean 1.前言 优势 1.可以减少 XML 的配置,当配置项多的时候,XML配置过多会导致项目臃肿难以维护 2.功能更加强大,既能实现 XML 的功能,也提供了自动装配的功能,采用了 ...

  7. O、Θ、Ω&主定理

    1.这些是时间复杂度的.(e.g. O(n).Θ(n).Ω(n)) 主要为主定理(坏东西) 2.本质 O <= Θ = Ω >= 3.(你可以把他们都试一遍)主要用处(目前,2020-09 ...

  8. Cypress系列(53)- as() 命令详解

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 作用 起别名以供以后使用 可在 cy.g ...

  9. 干货满满!关于Pycharm远程开发

    可以在Windows中使用Pycharm编写代码,而代码的调试运行可以使用远程服务器中的python解释器. 在本地创建好工程项目(或从git上clone下代码)后,用Pycharm打开: 打开「To ...

  10. 电商订单ElasticSearch同步解决方案--使用logstash

    一.使用logstash同步订单数据(订单表和订单项表)到ElasticSearch: 1.到官网下载logstash:https://www.elastic.co/cn/downloads/logs ...