Fisher's Blog

Sein heißt Werden
Leben heißt Lernen

0%

一般环境的动作空间是有界的,但由于策略是个分布,如高斯分布,是无界的,所以我们需要对动作进行 squashing 挤压。\(\tanh\) 是一个可逆函数,值域在 \((-1,1)\) 之间,非常适合用来达到我们的目的。

换句话说,一个 squashed 后的与状态独立的高斯策略应该是 \(\mathbf{a}=\tanh \left(\mathbf{b}_{\phi}(\mathbf{s})+\mathbf{A}_{\phi}(\mathbf{s}) \epsilon\right)\) ,其中 \(\epsilon \sim \mathcal{N}(0, I)\)\(\mathbf{b}\) 是可训练的偏差,\(\mathbf{A}\) 是可训练的满秩矩阵,一般来说是对角全为正数的对角矩阵。我们可以将两个函数的转换简写成:\(\mathbf{a}=\left(f_{2} \circ f_{1}\right)(\epsilon)\) ,其中 \(\mathbf{z}=f_{1}(\epsilon) \triangleq b(\mathbf{s})+A(\mathbf{s}) \epsilon\)\(\mathbf{a}=f_{2}(\mathbf{z}) \triangleq \tanh (\mathbf{z})\)

Soft actor-critic 需要我们计算动作的 log-likelihood 值,因为 \(f_1\)\(f_2\) 都是可逆的,所以我们可以应用如下定理:对于任意可逆函数 \(\mathbf{z}^{(i)}=f_{i}\left(\mathbf{z}^{(i-1)}\right)\) ,我们有

\[ \begin{align} \mathrm{z}^{(N)}=\left(f_{N} \circ \cdots \circ f_{1}\right)\left(\mathrm{z}^{0}\right) & \Leftrightarrow \\ \log p\left(\mathrm{z}^{(N)}\right) &= \log p\left(\mathrm{z}^{(0)}\right)-\sum_{i=1}^{N} \log \left|\operatorname{det}\left(\frac{d f_{i}\left(\mathrm{z}^{(i-1)}\right)}{d \mathrm{z}^{(i-1)}}\right)\right| \end{align} \]

其中 \(\frac{d f_{i}(\mathbf{z})}{d \mathbf{z}}\)\(f_i\) 的雅可比矩阵。

在实际开发中,对于 \(\tanh\) ,雅可比矩阵是对角为 \(\frac{d \tanh \left(z_{i}\right)}{d z_{i}}=1-\tanh ^{2}\left(z_{i}\right)\) 的对角矩阵,因此我们有: \[ \log \left|\operatorname{det}\left(\frac{d f_{2}(\mathbf{z})}{d \mathbf{z}}\right)\right|=\sum_{i=1}^{|\mathcal{A}|} \log \left(1-\tanh ^{2}\left(z_{i}\right)\right) \] 即: \[ \pi(\mathbf{a} | \mathbf{s})=\mu(\mathbf{z} | \mathbf{s})\left|\operatorname{det}\left(\frac{\mathrm{da}}{\mathrm{dz}}\right)\right|^{-1} \]

\[ \log \pi(\mathbf{a} | \mathbf{s})=\log \mu(\mathbf{z} | \mathbf{s})-\sum_{i=1}^{|\mathcal{A}|} \log \left(1-\tanh ^{2}\left(z_{i}\right)\right) \]

本文翻译自 Natural Gradient Descent, Agustinus Kristiadi.

假设我们现在有一个概率模型 \(p(x|\theta)\) ,我们希望通过最大化似然函数来找到最优的参数 \(\theta\),也就是最小化损失函数 \(\mathcal{L}(\theta)\) ,即负的似然函数。 一般用来解决优化问题的方法是使用梯度下降法,我们根据 \(-\nabla \mathcal{L}(\theta)\) 的方向来使参数向前走一步,这个方向是 \(\theta\) 在参数空间中最陡峭的方向。可以用如下公式表示: \[ \frac{-\nabla_\theta \mathcal{L}(\theta)}{\lVert \nabla_\theta \mathcal{L}(\theta) \rVert} = \lim_{\epsilon \to 0} \frac{1}{\epsilon} \mathop{\text{arg min}}_{\text{ s.t. } \lVert d \rVert \leq \epsilon} \mathcal{L}(\theta + d) \, . \] 意思就是要去选取一个向量 \(d\) ,使得新参数 \(\theta +d\) 在参数 \(\theta\) 的距离为 \(\epsilon\) 的范围内,并能最小化损失。注意我们在描述这个范围的时候用的是欧几里得范数,因此梯度下降取决于参数空间(parameter space)的欧几里得几何。

但如果我们的目标是使损失函数最小(使似然性最大化),那么很自然地,我们会在所有可能的似然性空间中让参数向前走一步。 由于似然函数本身是概率分布,因此我们可以将其称为分布空间(distribution space) 。 因此,在该分布空间而不是参数空间中采用最陡的下降方向是有意义的。

那么我们应该在该空间中使用哪个度量/距离呢?一个流行的选择是 KL 散度。

阅读全文 »

本文翻译自 Understanding Variational Autoencoders (VAEs), Joseph Rocca, Sep 24, 2019

这篇文章里,我们主要介绍一种深度生成模型:Variational Autoencoders (VAEs)。概括地说,VAE 就是一个自动编码器(autoencoder),但它编码后的分布在训练阶段需要被正则化,以此让它的隐空间(latent space)有足够好的性质来使我们生成新的数据。另外,用 variational 这个词是因为该方法与正则化和统计学中的变分推断有关。

阅读全文 »

本文翻译自 Understanding the Variational Lower Bound, Xitong Yang, September 13, 2017

变分贝叶斯(Variational Bayesian (VB))是一类非常受欢迎的统计类机器学习方法。VB 非常有用的一个特性是推断优化的二元性:我们可以将统计推断问题(从一个随机变量的值推断出另一种随机变量的值)作为优化问题(找到参变量的值来最小化某些目标函数)。另外,variational lower bound ,也被称作 evidence lower bound (ELBO),在 VB 的推导中起了非常重要的作用。在这篇文章中,我们主要介绍有关 variational lower bound 的最基础的知识,有助于理解与 “hard attention” 机制有关的论文。

阅读全文 »

DeepMind 在 Distributed Prioritized Experience Replay 的基础上增加了 RNN 的支持,于是形成了本文要介绍的论文 Recurrent Experience Replay in Distributed Reinforcement Learning 。论文主要讨论了由于使用经验池机制产生参数滞后 (parameter lag) 现象而导致的表征漂移 (representational drift) 和 RNN 隐藏状态滞后 (recurrent state staleness) 问题,这两个问题在分布式学习中更加显著。

阅读全文 »

深度强化学习在一系列任务中取得了显着的成功,从机器人的连续控制问题到 Go 和 Atari 等游戏。 但到目前为止,深度强化学习的发展在这些领域中仅局限于单个任务,每个智能体需要对每个任务进行单独的调整和训练。

DeepMind 开发了一套新的训练环境,DMLab-30,在具有相同的动作空间和图像状态环境中进行各种各样的挑战。

而 DeepMind 在 Impala: Scalable distributed deep-rl with importance weighted actor-learner architectures 论文中,只用一个智能体在多个任务上进行学习。为了训练智能体在多任务上获得更好的效果,需要大吞吐量并能有效利用每个数据点。 为此,DeepMind 开发了一种新的,高度可扩展的分布式体系结构,称为 Importance Weighted Actor-Learner Architecture,它使用一种称为 V-trace 的 off-policy 校正算法。

阅读全文 »

卡耐基梅隆大学、加利福尼亚大学伯克利分校和 Google Brain 尝试了一种新的 Meta Learning 方法: Diversity is all you need: Learning skills without a reward function ,它能让智能体在没有外部奖励的情况下,通过最大熵策略来最大化一个信息论里的目标函数,以此学习到有用的技能 (skills) 。在一系列机器人模拟的任务中,智能体可以在无监督的情况下学习到各种技能,比如行走、跳。

阅读全文 »

无模型的深度强化学习 (model-free deep reinforcement learning) 算法尽管非常多,效果也不错,但由于异策略采样与神经网络这种高维非线性函数近似的结合,使得 DRL 一直会有两个非常大的问题:采样复杂度大、对超参数非常敏感。在 Soft Actor-Critic Algorithms and Applications 论文中,伯克利与 Google Brain 联合提出了 Soft Actor-Critic,一种基于最大熵强化学习框架的异策略 actor-critic 算法。SAC 非常的稳定,可以在不同初始权重的情况下得到取得相同的性能。SAC 有三个显著的特点:

  1. 策略与值函数分离的 actor-critic 框架
  2. 异策略采样可以更有效地复用历史采集到的数据
  3. 熵的最大化可以让算法更稳定,同时还能鼓励探索,找到多个都是最优的 near-optimal 行为。

最大熵强化学习可以参考 Reinforcement Learning with Deep Energy-Based PoliciesSoft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor 实际上最先提出了 SAC 算法,但本篇论文在此基础上做了一定的修改,尤其是改进了对 temperature hyperparmeter 敏感的问题。完整代码可见 https://github.com/BlueFisher/RL-SAC-with-Unity.

阅读全文 »