From f35df9afa94f3dd88253a929cd248b67f1b1243a Mon Sep 17 00:00:00 2001 From: Yiyuan Yang Date: Tue, 6 Dec 2022 19:04:41 +0800 Subject: [PATCH] Add files via upload --- ...olicy Optimization via Stein’s Identity.md | 123 +++++++++++++++ ...and Policy Based Reinforcement Learning.md | 147 ++++++++++++++++++ ...ent Baselines in Reinforcement Learning.md | 62 ++++++++ 3 files changed, 332 insertions(+) create mode 100644 papers/Policy_gradient/Action-depedent Control Variates for Policy Optimization via Stein’s Identity.md create mode 100644 papers/Policy_gradient/Bridging the Gap Between Value and Policy Based Reinforcement Learning.md create mode 100644 papers/Policy_gradient/The Mirage of Action-Dependent Baselines in Reinforcement Learning.md diff --git a/papers/Policy_gradient/Action-depedent Control Variates for Policy Optimization via Stein’s Identity.md b/papers/Policy_gradient/Action-depedent Control Variates for Policy Optimization via Stein’s Identity.md new file mode 100644 index 0000000..4946486 --- /dev/null +++ b/papers/Policy_gradient/Action-depedent Control Variates for Policy Optimization via Stein’s Identity.md @@ -0,0 +1,123 @@ +## Action-depedent Control Variates for Policy Optimization via Stein's Identity + +作者:Hao Liu, Yihao Feng, Yi Mao, Dengyong Zhou, Jian Peng, Qiang Liu + +出处:ICLR 2018 + +论文链接:https://arxiv.org/abs/1710.11198 + +**亮点:提出了一种在策略梯度中降低估计量方差的方法,并建立起了一套构建基线函数的方法,可以在训练的过程中降低方差,提升样本利用率** + +### **Motivation (Why):** + +策略梯度算法在梯度估计上往往方差较大,导致训练时样本利用率较差,需要用很多的样本数据才能得到方差较小的估计量。之前在估计的时候用和状态相关的基线来降低方差,但效果并不好,这篇文章研究了用状态和动作都相关的基线来降低方差。 + +### **Main Idea (What):** + +#### **策略梯度回顾** + +**策略梯度** + +强化学习问题可以理解为一个关于环境状态 $s \in S$ 和智能体行动 $a \in A$ 的马尔可夫决策过程,在一个未知的环境下,该过程由一个转换概率 $T\left(s^{\prime} \mid s, a\right)$ 和一个奖励$r(s, a)$ 紧随在状态$s$下执行的行动 $a$。智能体的行动 $a$是由策略 $\pi(a \mid s)$ 决定的。在策略梯度方法中,我们考虑一组候选政策 $\pi_\theta(a \mid s)$,其中 $\theta$ 是参数,通过最大化预期累积奖励或收益获得最佳政策。 +$$ +J(\theta)=\mathbb{E}_{s \sim \rho_\pi, a \sim \pi(a \mid s)}[R(\tau)], +$$ + $J(\theta)$ 的梯度可以写为 +$$ +\nabla_\theta J(\theta)=\mathbb{E}_\pi\left[\nabla_\theta \log \pi(a \mid s) Q^\pi(s, a)\right], +$$ +其中 + + $$Q^\pi(s, a)=\mathbb{E}_\pi\left[\sum_{t=1}^{\infty} \gamma^{t-1} r\left(s_t, a_t\right) \mid s_1=s, a_1=a\right]$$ + +对$\nabla_\theta J(\theta)$ 估计最简单的方式就是采集很多 $\left\{\left(s_t, a_t, r_t\right)\right\}_{t=1}^n$ 样本,然后进行蒙特卡洛估计 +$$ +\hat{\nabla}_\theta J(\theta)=\frac{1}{n} \sum_{t=1}^n \gamma^{t-1} \nabla_\theta \log \pi\left(a_t \mid s_t\right) \hat{Q}^\pi\left(s_t, a_t\right), +$$ +其中 $\hat{Q}^\pi\left(s_t, a_t\right)$是$Q^\pi\left(s_t, a_t\right)$ 的估计量,比如 $\hat{Q}^\pi\left(s_t, a_t\right)=\sum_{j \geq t} \gamma^{j-t} r_j$。 + +但是这种方法估计出来的方差很多所以人们引入了控制变量来保证在期望不变的情况下降低方差 + +**控制变量**: + +在估计期望 $\mu=\mathbb{E}_\tau[g(s, a)]$ 的时候找一个方程 $f(s, a)$ 满足$\mathbb{E}_\tau[f(s, a)]=0$.。这样就可以用如下估计量来估计$\mu$ +$$ +\hat{\mu}=\frac{1}{n} \sum_{t=1}^n\left(g\left(s_t, a_t\right)-f\left(s_t, a_t\right)\right), +$$ +方差$\operatorname{var}_\tau(g-f) / n$, 期望仍为0。这里的关键问题在于要找符合要求的$f$。在以前的研究中,一般都用状态函数 $V(s)$ 的估计量或者常数来做控制变量,因为这类函数不会改变计算梯度时估计量的方差。引入控制变量后的梯度的估计量如下: +$$ +\hat{\nabla}_\theta J(\theta)=\frac{1}{n} \sum_{t=1}^n \nabla_\theta \log \pi\left(a_t \mid s_t\right) (\hat{Q}^\pi\left(s_t, a_t\right)-\phi(s_t)), +$$ +但是只用和状态相关的函数来做控制变量是无法将方差降低到0的,理想的情况我们想用一个和动作,状态都相关的函数来做控制变量。 + +#### Stein控制变量的梯度下降算法: + +通过Stein公式引入一个和动作,状态都相关的控制变量$\phi(s,a)$ ,但是在引入的过程中,维度存在一些问题,所以通过参数重新选择的技巧,扩充了维度并给出了证明,得到Stein控制变量的构建方法,最后构建了一族Stein控制变量。 + +**Stein公式** + +根据Stein公式,对于具有适当条件的 $\phi(s, a)$ 函数,可以得到, +$$ +\mathbb{E}_{\pi(a \mid s)}\left[\nabla_a \log \pi(a \mid s) \phi(s, a)+\nabla_a \phi(s, a)\right]=0, \quad \forall s +$$ +这给我们构建控制变量提供了一些思路。值得注意的是,上面公式的左边可以写作$\int \nabla_a(\pi(a \mid s) \phi(s, a)) d a$。 + +**Stein控制变量** + +上面公式左边部分的维度和估计策略梯度的维度不一样,前者是根据 $a$ 来计算的,而后者是根据 $\theta$ 我们需要在 $\nabla_a \log \pi(a \mid s)$ 和 $\nabla_\theta \log \pi(a \mid s)$ 之间构建链接,以此来通过Stein不等式得到可以用于策略梯度的控制变量。 我们通过以下方法: + +我们可以通过$a=f_\theta(s, \xi)$ 来表达 $a \sim \pi_\theta(a \mid s)$,其中 $\xi$ 是一个独立于 $\theta$ 的随机噪声。本文用$\pi(a, \xi \mid s)$来表示 $(a, \xi)$ 在给定 $s$ 上的分布。可以得到,$\pi(a \mid s)=\int \pi(a \mid s, \xi) \pi(\xi) d \xi$ 其中 $\pi(\xi)$是生成 $\xi$ 的概率密度, $\pi(a \mid s, \xi)=\delta(a-f(s, \xi))$, $\delta$是Delta函数 + +image-20221129094054025 + +上图截自论文中,定理3.1填充了前文提到的维度差距,允许我们根据Stein不等式构造控制变量。所以紧接着在公式8,9中,作者将控制变量引入策略梯度中,并给出了估计量。 + +**控制变量构建** + +在构建控制变量的时候,作者考虑了两种方法,一种是对Q函数进行估计,让$\phi(s,a)$尽可能地靠近$Q$函数,以此来降低方差,另一种是直接最小化估计量的方差。 + +### **Main Contribution (How):** + +本文研究了Stein控制变量,是一种在策略梯度中降低方差的方法,可以提升样本效率。本文所提出的方法概括了以前的几种方法,并在几个具有挑战性的RL任务中证明了其实际优势。 + +#### 算法 + +截屏2022-12-05 19.58.49 + +运用Stein控制变量的PPO算法。 + +#### 实验 + +文本将所提出来方差降低的方法与PPO和TRPO算法结合,用在连续环境MuJoco中。证明了通过使用Stein控制变量构建的基线函数,可以显著提高样本利用率,提升训练速度。 + +本文所有的实验都使用的是高斯噪声,根据前文的讨论将基线函数的形式设定为$\phi_w(s, a)=\hat{V}^\pi(s)+\psi_w(s, a)$,其中$\hat{V}^\pi$ 是对价值函数的估计,$\psi_w(s, a)$ 是一个以$w$ 为参数的函数,$w$的设置思路分别为拟合Q函数 (FitQ)和最小化方差 (MinVar)。作者在实验中尝试了 $\psi_w(s, a)$ 的形式,包括线性,二次型,全连接神经网络,实验结果如下: + +image 2022-11-29 100857 + +作者紧接着在Walker2d-v1和Hopper-v1环境下对TRPO算法进行了实验,发现所有用Stein控制变量来减小方差的算法都比以前Q-prop算法表现要好。 + +2022-11-29 101823 + +2022-11-29 101905 + +最后作者测试用Stein控制函数的PPO算法 + +![2022-11-29 103457](img/Stein6.png) + +#### 本文提出方法的优点: + +1. 可以有效降低估计量方差,提升样本利用率。 +2. 可以更灵活的构建基线函数,构建具有线性,二次型,非线性形式的基线函数。 + + + +### 个人简介 + +吴文昊,西安交通大学硕士在读,联系方式:wwhwwh05@qq.com + + + + + + + diff --git a/papers/Policy_gradient/Bridging the Gap Between Value and Policy Based Reinforcement Learning.md b/papers/Policy_gradient/Bridging the Gap Between Value and Policy Based Reinforcement Learning.md new file mode 100644 index 0000000..f78f78e --- /dev/null +++ b/papers/Policy_gradient/Bridging the Gap Between Value and Policy Based Reinforcement Learning.md @@ -0,0 +1,147 @@ +## Bridging the Gap Between Value and Policy Based Reinforcement Learning + +作者:Ofir Nachum, Mohammad Norouzi, Kelvin Xu, and Dale Schuurmans + +出处:NIPS'17, Google Brain + +论文链接:https://arxiv.org/abs/1702.08892 + +**亮点:引入熵正则化,提出了一种稳定的异策略强化学习训练方法来** + +### **Motivation (Why):** + +过往基于策略和基于价值的强化学习算法都有各自的优点和缺点,比如基于策略的算法大多是同策略算法,稳定但样本利用率低,基于价值的算法大多是异策略算法,样本利用率很高但算法不稳定。过去虽然有一些研究结合了两者的优点,但他们存在一些理论问题没有解决,所以仍留有很大的优化潜力。作者通过熵正则化研究了策略与softmax value consistency之间的关系,给出了一个稳定的基于策略的异策略强化学习算法。 + +### **Main Idea (What):** + +#### **符号设定** + +核心的思想是在动作的选取上增加一个扰动,更改优化目标 + +作者用以下形式的$O_{ER}(s,\pi)$来表示在状态 $s$ 下执行策略 $\pi$ 后所能获得的期望收益,与我们常用的Q函数$Q(s,a)$表示相同意思。 + +1 + +按照贝尔曼公式的思路,我们有对于某个特定状态的最优值函数 $V^{\circ}(s)$,和最优策略$\pi^{\circ}$,定义如下: +$$ +V^{\circ}(s)=\max _\pi O_{\mathrm{ER}}(s, \pi) \\ +\pi^{\circ}=\operatorname{argmax}_\pi O_{\mathrm{ER}}(s, \pi). +$$ +可以写成如下的迭代形式: + +![2](img/PCL2.png) + +#### 一致性分析 + +作者在本文中以一个softmax的方式研究一个状态下的最优价值函数,softmax的含义是区别于hard max,不是每个状态一定要选择价值最大的那个行动,非黑即白,而是引入熵正则项来加入一点点灰色,选择的行动是”比较软“的价值最大,同时引入熵正则项还可以防止优化过程中收敛到次优解。 + +正则化后的期望奖励有以下形式,ENT是熵(Entropy)的缩写: +$$ +O_{\mathrm{ENT}}(s, \pi)=O_{\mathrm{ER}}(s, \pi)+\tau \mathbb{H}(s, \pi), +$$ +其中 $\tau$ 是一个可调节的参数,$\mathbb{H}(s, \pi)$ 定义如下: +$$ +\mathbb{H}(s, \pi)=\sum_a \pi(a \mid s)\left[-\log \pi(a \mid s)+\gamma \mathbb{H}\left(s^{\prime}, \pi\right)\right] . +$$ +正则化后的期望奖励也可以写成如下迭代形式: +$$ +O_{\mathrm{ENT}}(s, \pi)=\sum_a \pi(a \mid s)\left[r(s, a)-\tau \log \pi(a \mid s)+\gamma O_{\mathrm{ENT}}\left(s^{\prime}, \pi\right)\right] +$$ +用$V^*(s)=\max _\pi O_{\mathrm{ENT}}(s, \pi)$来表示状态 $s$ 的软最优值, $\pi^*(a \mid s)$ 表示最优策略,代表在状态 $s$ 选择可以达到软最优值的动作。这样最优策略的动作就不是固定的了,因为引入了熵正则项来扰动最大化的过程,因为熵这一项会鼓励策略变得不稳定。作者用如下形式表示最优策略: +$$ +\pi^*(a \mid s) \propto \exp \left\{\left(r(s, a)+\gamma V^*\left(s^{\prime}\right)\right) / \tau\right\} +$$ +带入前面的式子得到 +$$ +V^*(s)=O_{\mathrm{ENT}}\left(s, \pi^*\right)=\tau \log \sum_a \exp \left\{\left(r(s, a)+\gamma V^*\left(s^{\prime}\right)\right) / \tau\right\} .\\ +Q^*(s, a)=r(s, a)+\gamma V^*\left(s^{\prime}\right)=r(s, a)+\gamma \tau \log \sum_{a^{\prime}} \exp \left(Q^*\left(s^{\prime}, a^{\prime}\right) / \tau\right) +$$ +#### 最优价值和策略之间的一致性 + +将最优策略写作如下形式 +$$ +\pi^*(a \mid s)=\frac{\exp \left\{\left(r(s, a)+\gamma V^*\left(s^{\prime}\right)\right) / \tau\right\}}{\exp \left\{V^*(s) / \tau\right\}} +$$ +两边取对数,可以得到相邻状态之间的软最优值关系 + +3 + +因为上面的定理是在相邻状态间的,可以反复利用这个公式,来得到一定间隔的两个状态之间的软最优值关系 + +4 + +接下来我们就可以依照上面的式子来进行软最优值估计和策略优化,作者同时给出了判断收敛性的定理 。 + +![5](img/PCL5.png) + +### **Main Contribution (How):** + +引入了熵正则项,可以同时优化对状态价值的估计和策略。即可以用同策略的数据去训练也可以用异策略的。在不同游戏上都超越了基线算法 + +#### 算法 + +**路径一致性算法(PCL)** + +在引入了熵正则化后,最优价值函数和最优策略之间的这个关系,可以让我们在沿着一串路径寻找最优策略的同时寻找最优价值函数。作者定义以下一致性函数 + +$$ +C\left(s_{i: i+d}, \theta, \phi\right)=-V_\phi\left(s_i\right)+\gamma^d V_\phi\left(s_{i+d}\right)+\sum_{j=0}^{d-1} \gamma^j\left[r\left(s_{i+j}, a_{i+j}\right)-\tau \log \pi_\theta\left(a_{i+j} \mid s_{i+j}\right)\right]. +$$ +其中,$s_{i: i+d} \equiv\left(s_i, a_i, \ldots, s_{i+d-1}, a_{i+d-1}, s_{i+d}\right)$ 是一个长度为 $d$ 的子轨迹。训练算法的目标是找到可以使一致性尽可能趋近于0的价值函数和策略。所以作者提出了路径一致性学习,PCL算法,优化目标可以写作如下形式。 + +$$ +O_{\mathrm{PCL}}(\theta, \phi)=\sum_{s_{i: i+d} \in E} \frac{1}{2} C\left(s_{i: i+d}, \theta, \phi\right)^2 +$$ +参数更新梯度如下, + +$$ +\begin{aligned} +\Delta \theta & =\eta_\pi C\left(s_{i: i+d}, \theta, \phi\right) \sum_{j=0}^{d-1} \gamma^j \nabla_\theta \log \pi_\theta\left(a_{i+j} \mid s_{i+j}\right) \\ +\Delta \phi & =\eta_v C\left(s_{i: i+d}, \theta, \phi\right)\left(\nabla_\phi V_\phi\left(s_i\right)-\gamma^d \nabla_\phi V_\phi\left(s_{i+d}\right)\right) +\end{aligned} +$$ +其中,PCL更新既可以用同策略采集的在线数据,也可以用回放缓存中策异略采集的离线数据。在本文中,作者是混合从这两种数据中采样来更新的。 + +**统一路径一致性算法(UPCL)** + +上述算法在找最优价值函数和最优策略的时候,是在对两个独立的模型进行优化,作者通过 Q 函数的形式,将策略和价值写进一个式子里, +$$ +\begin{aligned} +V_\rho(s) & =\tau \log \sum_a \exp \left\{Q_\rho(s, a) / \tau\right\} \\ +\pi_\rho(a \mid s) & =\exp \left\{\left(Q_\rho(s, a)-V_\rho(s)\right) / \tau\right\} +\end{aligned} +$$ +其中 $\rho$ 是这个统一模型的参数,更新方式如下: +$$ +\begin{aligned} +\Delta \rho= & \eta_\pi C\left(s_{i: i+d}, \rho\right) \sum_{j=0}^{d-1} \gamma^j \nabla_\rho \log \pi_\rho\left(a_{i+j} \mid s_{i+j}\right)+ \\ +& \eta_v C\left(s_{i: i+d}, \rho\right)\left(\nabla_\rho V_\rho\left(s_i\right)-\gamma^d \nabla_\rho V_\rho\left(s_{i+d}\right)\right) +\end{aligned} +$$ + +#### 实验 + +作者将PCL算法,UPCL算法和现有的A3C,DQN算法在几个特定任务上进行对比。 + +![6](img/PCL6.png) + +PCL算法的表现在一些任务上和A3C不相上下,在一些有挑战性的任务上超越了A3C算法。在所有的人任务上,PCL的表现都比DQN算法要好。 + +![7](img/PCL7.png) + +PCL和UPCL的训练表现对比。 + +![8](img/PCL8.png) + +在训练过程中,加入了一下比较好的专家数据的PCL-expert和PCL算法性能的对比。 + +### 个人简介 + +吴文昊,西安交通大学硕士在读,联系方式:wwhwwh05@qq.com + + + + + + + diff --git a/papers/Policy_gradient/The Mirage of Action-Dependent Baselines in Reinforcement Learning.md b/papers/Policy_gradient/The Mirage of Action-Dependent Baselines in Reinforcement Learning.md new file mode 100644 index 0000000..818721a --- /dev/null +++ b/papers/Policy_gradient/The Mirage of Action-Dependent Baselines in Reinforcement Learning.md @@ -0,0 +1,62 @@ +## The Mirage of Action-Dependent Baselines in Reinforcement Learning + +作者:George Tucker, Surya Bhupatiraju, Shixiang Gu, Richard E. Turner, Zoubin Ghahramani, Sergey Levine + +论文链接:https://arxiv.org/abs/1802.10031v3 + +**亮点:**本文对早期论文进行批评和重新评估,认为早期论文是一些实现上的技巧降低了方差,而不是真正无偏的,提出了一个地平线状态价值函数 + +### **Motivation (Why):** + +在对策略梯度估计量的方差进行分解和数值研究时,发现之前论文中降低策略梯度方差的方法并不会降低方差,这是一个预期外的发现。于是作者查阅了他们的开源代码,发现他们的实验结果是出于一些代码实现上的技巧。作者通过对方差的分析,指出了可以提升的地方,通过一个小小的改动显著的提升了算法表现。 + +### **Main Idea (What):** + +#### **方差分解** + +作者将策略梯度的方差分解为了如下形式 +$$ +\begin{aligned} +\Sigma=& \underbrace{\mathbb{E}_{s, a}\left[\operatorname{Var}_{\tau \mid s, a}(\hat{A}(s, a, \tau) \nabla \log \pi(a \mid s))\right]}_{\Sigma_\tau} \\ +&+\underbrace{\mathbb{E}_s\left[\operatorname{Var}_{a \mid s}((\hat{A}(s, a)-\phi(s, a)) \nabla \log \pi(a \mid s))\right]}_{\Sigma_a} \\ +&+\underbrace{\operatorname{Var}_s\left(\mathbb{E}_{a \mid s}[\hat{A}(s, a) \nabla \log \pi(a \mid s)]\right)}_{\Sigma_s} +\end{aligned} +$$ +作者分析策略梯度中方差的来源,是来自我们只收集了状态$s$有限多的数据,在每个状态也只做了一次行动$a$, 然后我们进行计算的时候也只用了一个样本$\tau$。 所以非常直觉地想,$\sum_{\tau}, \sum_{a}, \sum_{s}$ 分别描述了来自这三个局限的方差。其中,第二项方差$\sum_a$ 是关于基线函数的方差,也可以记为 $\sum_a^{\phi(s)}$。 当$\phi(s)$是最优的时候,$\sum_a$消失了,只剩下 $\sum_{\tau} + \sum_{s}$ 这两项。所以当 $\sum_a$ 相对其他两项很大的时候,最优的基线函数选取可以有效地降低方差,比如在环境 Cliffworld中,一个错误的动作选取可能会导致智能体摔下悬崖而得到一个很大的负数奖励,所以降低动作所带来的方差 $\sum_a$ 可以显著提升算法性能。 + +#### **方差测量** + +作者通过复现过往工作代码发现,很多声称降低了梯度估计量方差的方法实际上并没有降低方差,反而是引入了期望上的偏差,以此提升了算法的效果。 + +![截屏2022-12-05 20.40.09](img/Mirage1.png) + +无偏估计的QProp算法, 有偏估计的QProp和TRPO算法训练过程中算法性能对比。 + +### **Main Contribution (How):** + +作者提出了地平线感知函数,在原有价值函数的基础上加上了对未来价值的预测 $\sum_{i=t}^T \gamma^{i-t} \hat{r}(s_t)$。 +$$ +\hat{V}\left(s_t\right)=\left(\sum_{i=t}^T \gamma^{i-t}\right) \hat{r}\left(s_t\right)+\hat{V}^{\prime}\left(s_t\right) +$$ +截屏2022-12-05 20.50.10 + +作者将TRPO算法与地平线感知函数和其他基线函数结合,在不同的任务上对比效果。 + +#### 主要工作 + +1. 提出了一种通过更精准的价值函数或者状态相关的基线函数来降低策略梯度方差的方法,提出了考虑奖励衰退的地平线感知值函数。 +2. 作者详细研究了和状态动作相关的价值函数对方差的影响,复现了过往工作的开源代码。发现过往研究取得的方差降低是通过在代码实现时引入期望偏差来获得的,并不是真正的无偏估计 +3. 将文本所提出的地平线感知值函数,以及过往论文真正的无偏基线函数和TRPO算法结合,进行试验,发现只有引入本文所构造的基线函数性能比TRPO稍好一些,其他方法表现均不如TRPO算法。 + +作者也提出了后续的研究方向,即研究在梯度计算过程中。期望和方差之间的权衡 + +### 个人简介 + +吴文昊,西安交通大学硕士在读,联系方式:wwhwwh05@qq.com + + + + + + +