算法Paper reading

第17周论文阅读(2019年)

2019-04-29  本文已影响298人  d88e0445288d

Compression and Localization in Reinforcement Learning for ATARI Games

本文首次将网络压缩技术应用到强化学习中,具体解决Atari游戏问题。其值得注意的地方包括以下几点:

Generative Exploration and Exploitation

本文提出了一种新的方法 GENE 解决强化学习中稀疏 reward 问题,该方法可以与任意强化学习算法相结合。主要出发点如下 :

当人类学习如何去解决一个问题时,从来不会每次都从头开始,而是从哪里跌倒从哪里爬起来。对于已经完全熟悉的场景便不会再去探索。

具体来说,GENE 算法动态调整每个 episode 智能体的起始状态,该调整后的起始状态要么是算法生成的智能体 之前没有探索过的状态鼓励智能体探索新状态,要么是历史访问过的能够得到回报的状态(在当前策略下智能体容易从这类状态到达目标状态)鼓励智能体更加深入挖掘已有的状态。

GENE 算法包括两个经验回放缓存,\mathcal{R}_1 中存储已经访问过的状态;当智能体一旦达到目标时,就在\mathcal{R}_2 中存储智能体从开始状态到达目标状态整个状态序列中所有的状态,那么通过这两个经验回放缓存生成的状态就可以同时满足上述的两个性质。

具体来说,大致流程如下:

  1. 将状态使用 VAE 编码
  2. 采用核密度估计 KDE 估计状态分布密度
  3. 将更大的概率分配给低密度的区域
  4. 从这些低密度区域中采样并通过 VAE 解码生成调整后的初始状态

MetaGAN: An Adversarial Approach to Few-Shot Learning

归纳下本文的核心思想:采用 meta-learning + GAN 解决少样本学习问题,其中 meta-learning 部分本文没有提出新方法,只是将已有方法结合到提出的框架中,具体包括以下两种 meta-learning 方法:

训练时,对于每个小样本任务,本文采用了 (Salimans et al., 2016) 中将 GAN 应用到半监督学习问题上的建模方式。具体来说,判别器的损失函数定义如下:
\begin{aligned} \mathcal{L}_{D}^{\mathcal{T}} &=\mathcal{L}_{\text { supervised }}+\mathcal{L}_{\text { unsupervised }}, \\ \mathcal{L}_{\text { supervised }} &=\mathbb{E}_{\mathbf{x}, y \sim Q_{\mathcal{T}}} \log p_{D}(y | \mathbf{x}, y \leq N), \\ \mathcal{L}_{\text { unsupervised }} &=\mathbb{E}_{\mathbf{x} \sim Q_{\mathcal{T}}}^{u} \log p_{D}(y \leq N | \mathbf{x})+\mathbb{E}_{\mathbf{x} \sim p_{G}} \log p_{D}(N+1 | \mathbf{x}). \end{aligned}
生成器的损失函数定义如下:
L_{G}^{\mathcal{T}}(D)=-\mathbb{E}_{\mathbf{x} \sim p_{G}^{\tau}}\left[\log \left(p_{D}(y \leq N | \mathbf{x})\right)\right].
总的来说,MetaGAN的损失函数如下:
\begin{aligned} \mathcal{L}_{D} &=\max _{D} \mathbb{E}_{\mathcal{T} \sim P(\mathcal{T})} \mathcal{L}_{D}^{\mathcal{T}}, \\ \mathcal{L}_{G} &=\min _{G} \mathbb{E}_{\mathcal{T} \sim P(\mathcal{T})} \mathcal{L}_{G}^{\mathcal{T}}. \end{aligned}
上述所有损失函数中的 p_{D} 代表使用任意一种 meta-learning 算法训练出的模型。

为什么 MetaGAN 可以 work 呢?这里有一个直观的解释:考虑这样一种情况,训练集的任务只要求对猫和卡车进行准确分类,那么对于这个任务分类器提取出的特征就会比较粗糙,因为猫和卡车的差异很大。但是在现实任务中,我们要用这个分类器去区分猫和狗,这样提取出的粗糙特征就肯定不能很好的对这个任务进行很好的分类。MetaGAN不仅要求分类器能够正确区分猫和卡车,还要其能区分真正的猫的图片以及生成的假的猫的图片,这样就可以使得分类器提取出更加细致的特征。更正式来说,可以使得分类器的决策边界更加的紧凑:

boundary

Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks

MAML 这篇文章之前已经读过很多遍了,这次做一次回顾性的总结。MAML算法希望找到一个初始化参数,使得其不管在任何任务(服从与训练任务一样的分布)上只进行一步梯度下降,使得所有任务的损失函数下降的尽可能多,即最小化如下元损失函数:
\min _{\theta} \sum_{\mathcal{T}_{i} \sim p(\mathcal{T})} \mathcal{L}_{\mathcal{T}_{i}}\left(f_{\theta_{i}^{\prime}}\right)=\sum_{\mathcal{T}_{i} \sim p(\mathcal{T})} \mathcal{L}_{\mathcal{T}_{i}}\left(f_{\theta-\alpha \nabla_{\theta} \mathcal{L}_{\mathcal{T}_{i}}\left(f_{\theta}\right)}\right),
对于如上损失函数,我们直接采用梯度下降求解:
\theta \leftarrow \theta-\beta \nabla_{\theta} \sum_{\mathcal{T}_{i} \sim p(\mathcal{T})} \mathcal{L}_{\mathcal{T}_{i}}\left(f_{\theta_{i}^{\prime}}\right).
算法框架如下:

MAML

其结合少样本学习以及强化学习两个任务的具体算法框架如下:

MAML for few-shot learning and reinforcement learning

Siamese Neural Networks for One-shot Image Recognition

本文属于元学习中的度量学习方法,度量学习网络如下:

siamese network 损失函数如下:

经过度量学习之后,在进行单样本分类时,给定支撑集,通过如下方式确定测试图片的样本:

Matching Networks for One Shot Learning

本文同样属于元学习中的度量学习方法,度量学习网络结构如下:

match network

经过度量学习之后,在进行单样本分类时,给定支撑集,通过如下方式确定测试图片的样本:
c_{S}(\mathbf{x})=P(y | \mathbf{x}, S)=\sum_{i=1}^{k} a\left(\mathbf{x}, \mathbf{x}_{i}\right) y_{i}, \text { where } S=\left\{\left(\mathbf{x}_{i}, y_{i}\right)\right\}_{i=1}^{k}
其中
a\left(\mathbf{x}, \mathbf{x}_{i}\right)=\frac{\exp \left(\operatorname{cosine}\left(f(\mathbf{x}), g\left(\mathbf{x}_{i}\right)\right)\right.}{\sum_{j=1}^{k} \exp \left(\operatorname{cosine}\left(f(\mathbf{x}), g\left(\mathbf{x}_{j}\right)\right)\right.}
本文采用的嵌套方法称为 Full Contextual Embeddings (FCE),两个嵌套函数的具体形式为:

Learning to Compare: Relation Network for Few-Shot Learning

本文和 siamese network 采用的方法类似,只不过度量学习时图片之间的距离不再是嵌套向量之间的 L1 距离,而是通过一个神经网络来输出,最后也不是把问题当成一个分类问题,而是一个回归问题,相同的图片回归值为 1,不同的图片回归值为 0。具体的网络框架如下:

relation network

Prototypical Networks for Few-shot Learning

本文同样属于元学习中的度量学习方法。其定义了一个原型特征向量:
\mathbf{v}_{c}=\frac{1}{\left|S_{c}\right|} \sum_{\left(\mathbf{x}_{i}, y_{i}\right) \in S_{c}} f_{\theta}\left(\mathbf{x}_{i}\right)
即一个类别里所有图片特征向量的平均。最后通过如下方式进行类别预测:
P(y=c | \mathbf{x})=\operatorname{softmax}\left(-d_{\varphi}\left(f_{\theta}(\mathbf{x}), \mathbf{v}_{c}\right)\right)=\frac{\exp \left(-d_{\varphi}\left(f_{\theta}(\mathbf{x}), \mathbf{v}_{c}\right)\right)}{\sum_{c^{\prime} \in \mathcal{C}} \exp \left(-d_{\varphi}\left(f_{\theta}(\mathbf{x}), \mathbf{v}_{c^{\prime}}\right)\right)}

prototypical network

Meta-Learning with Memory-Augmented Neural Networks

本文属于元学习中基于模型的方法。具体来说,其采用神经图灵机 NTM 作为其主要模型,由于 NTM 具有独立的内存机构,使得其可以保存训练中学习到的信息,从而完成元学习。NTM 的核心架构主要是读写操作,图例如下:

NTM

本文为了显式地约束训练过程使得算法在训练的过程中能够去保存中间结果,在训练中对训练数据采用一步偏移的方式处理:

mann

其读策略与 NTM 类似:
\mathbf{r}_{i}=\sum_{i=1}^{N} w_{t}^{r}(i) \mathbf{M}_{t}(i), \text { where } w_{t}^{r}(i)=\operatorname{softmax}\left(\frac{\mathbf{k}_{t} \cdot \mathbf{M}_{t}(i)}{\left\|\mathbf{k}_{t}\right\| \cdot\left\|\mathbf{M}_{t}(i)\right\|}\right)
写策略采用最近最少访问 Least Recently Used Access (LRUA)
\begin{aligned} \mathbf{w}_{t}^{u} &=\gamma \mathbf{w}_{t-1}^{u}+\mathbf{w}_{t}^{r}+\mathbf{w}_{t}^{w} \\ \mathbf{w}_{t}^{r} &=\operatorname{softmax}\left(\operatorname{cosine}\left(\mathbf{k}_{t}, \mathbf{M}_{t}(i)\right)\right) \\ \mathbf{w}_{t}^{w} &=\sigma(\alpha) \mathbf{w}_{t-1}^{r}+(1-\sigma(\alpha)) \mathbf{w}_{t-1}^{l u} \\ \mathbf{w}_{t}^{l u} &=\mathbf{1}_{w_{t}^{u}(i) \leq m\left(\mathbf{w}_{t}^{u}, n\right)}, \text { where } m\left(\mathbf{w}_{t}^{u}, n\right) \text { is the } n \text { -th smallest element in vector } \mathbf{w}_{t}^{u} \text { . } \end{aligned}

Optimization as a Model for Few-Shot Learning

本文属于元学习中的基于优化的方法。具体来说,本文采用 LSTM 作为 meta-learner 的原因是因为梯度下降的形式
\theta_{t}=\theta_{t-1}-\alpha_{t} \nabla_{\theta_{t-1}} \mathcal{L}_{t}
可以用 LSTM 来表示(固定某些参数):
\begin{aligned} c_{t} &= f_{t} \odot c_{t-1}+i_{t} \odot \tilde{c}_{t} \\ &=\theta_{t-1}-\alpha_{t} \nabla_{\theta_{t-1}} \mathcal{L}_{t} \end{aligned}
但是随机梯度下降的形式可能不是最优的,我们可以把固定的参数变为可学的,即:
\begin{aligned} f_t &= \sigma(\mathbf{W}_f \cdot [\nabla_{\theta_{t-1}}\mathcal{L}_t, \mathcal{L}_t, \theta_{t-1}, f_{t-1}] + \mathbf{b}_f) & \scriptstyle{\text{; how much to forget the old value of parameters.}}\\ i_t &= \sigma(\mathbf{W}_i \cdot [\nabla_{\theta_{t-1}}\mathcal{L}_t, \mathcal{L}_t, \theta_{t-1}, i_{t-1}] + \mathbf{b}_i) & \scriptstyle{\text{; corresponding to the learning rate at time step t.}}\\ \tilde{\theta}_t &= -\nabla_{\theta_{t-1}}\mathcal{L}_t &\\ \theta_t &= f_t \odot \theta_{t-1} + i_t \odot \tilde{\theta}_t &\\ \end{aligned}
具体的网络结构如下:

LSTM

On First-Order Meta-Learning Algorithms

本文提出的 Reptile 算法是一个与 MAML 类似的十分有效但简单的元学习方法:

Reptile

本文假定所有任务的最优参数都分布在一个最优流形上,Reptile 的目标就是找到一个初始化参数能够与所有任务的最优流形距离最小:
\theta^{*}=\arg \min _{\theta} \mathbb{E}_{\tau \sim p(\tau)}\left[\frac{1}{2} \operatorname{dist}\left(\theta, \mathcal{W}_{\tau}^{*}\right)^{2}\right]

Optim

其中:
\operatorname{dist}\left(\theta, \mathcal{W}_{\tau}^{*}\right)=\operatorname{dist}\left(\theta, W_{\tau}^{*}(\theta)\right), \text { where } W_{\tau}^{*}(\theta)=\arg \min _{W \in \mathcal{W}_{\tau}^{*}} \operatorname{dist}(\theta, W)
该距离的梯度为:
\begin{aligned} \nabla_\theta[\frac{1}{2}\text{dist}(\theta, \mathcal{W}_{\tau_i}^*)^2] &= \nabla_\theta[\frac{1}{2}\text{dist}(\theta, W_{\tau_i}^*(\theta))^2] & \\ &= \nabla_\theta[\frac{1}{2}(\theta - W_{\tau_i}^*(\theta))^2] & \\ &= \theta - W_{\tau_i}^*(\theta) & \end{aligned}
采用梯度下降找到最优初始化参数:
\theta=\theta-\alpha \nabla_{\theta}\left[\frac{1}{2} \operatorname{dist}\left(\theta, \mathcal{W}_{\tau_{i}}^{*}\right)^{2}\right]=\theta-\alpha\left(\theta-W_{\tau_{i}}^{*}(\theta)\right)=(1-\alpha) \theta+\alpha W_{\tau_{i}}^{*}(\theta)
可以看到上述形式和算法框架中的一致。

Reptile 与 MAML 算法以及 MAML 算法的一阶估计算法 FOMAML 具有极其紧密的联系:

relationship

Autonomous Waypoint Generation Strategy for On-Line Navigation in Unknown Environments

本文提出一种基于强化学习(Q-Learning)的方法 AWGS 解决了在未知环境下自动生成当前位置与目标位置可达路径中的 waypoints 问题。具体来说,对于在一个未知环境中的智能体,其任务是到达某一个目标点。由于环境模型未知,智能体需要在环境中进行探索。一种思路是智能体知晓自身以及目标点的绝对位置,然后通过达到一系列不断接近目标点的中间目标点(waypoints)的方式逐步接近目标位置,最终完成任务。

下图是算法框架图:

AWGS

注意本文只关注 waypoints 的生成,至于怎样从当前位置到达 waypoints 不在本文讨论范围之内,因而直接使用了理论上最优的路径规划算法 ECAN。

下面介绍下强化学习几个最重要模块的设计,这里直接贴图:

feature state-action value function reward function

Modeling Others using Oneself in Multi-Agent Reinforcement Learning

本文提出了一种 goal-based agents modeling agents 方法 SOM。本文采用 A3C 算法作为基本算法,策略网络与值函数网络共用除最后一层外的所有参数。
\left[ \begin{array}{c}{\pi^{i}} \\ {V^{i}}\end{array}\right]=f^{i}\left(s_{\text {self}}^{i}, z_{\text {self}}^{i}, \tilde{z}_{\text {other}}^{i} ; \theta^{i}\right)
其中第一个参数代表自己的状态,第二个参数代表自己的目标(离散值,代表所有可能的目标),第三个参数代表估计的其他智能体的目标。每个智能体包含以下两个网络:
f_{\text {self}}\left(s_{\text {self}}, z_{\text {self}}, \tilde{z}_{\text {other}} ; \theta_{\text {self}}\right)
以及:
f_{\text {other}}\left(s_{\text {other}}, \tilde{z}_{\text {other}}, z_{\text {self}} ; \theta_{\text {self}}\right)
第一个网络用来进行决策, 第二个网络用来估计其他智能体的动作。具体算法框架以及系统框架如下:

SOM SOM-arch

可改进点:

上一篇 下一篇

猜你喜欢

热点阅读