RL论文阅读22 - MB - World_Model

RL论文阅读-World_Model

写博客一年多了,当初拍脑袋想写个博客记录一下自己的学习历程,也算不辜负青春年华。写了一堆字多的字少的水的不水的读得懂的读不懂的,这个刚好第100篇。继续坚持。

1. Tittle

RL论文阅读22 - MB - World_Model

Online 版本

2. 标签

  • model based

3. 解析

world model这篇论文属于基于模型的强化学习(MB-RL)一种。与一些其他的MB算法不同的是,world model 算法在建模时直接使用图片帧来进行过建模。该算法在模型训练好后,可以脱离实际环境,让agent使用自己学习到的模型M行进训练后再投入实际环境中,也可以得到较好的表现。文中称之为Learning inside of a Dream

图像帧的使用就会涉及到时序问题降维问题。既然我们的观察信息是图像帧,那么图像前后顺序之间的关系需要被捕捉,同时图像维度较高,如何从中间抽取有用的信息就更加重要。论文中的解决思路是使用VAE(Variational Atuoencoder)来对图像帧进行编码,从而捕捉时序信息和抽取特征信息,将图片编码成一维的latent vector(潜变量)。

3.1 结构

world model主要分为三个模块:

  • Vision(V)对图像进行成latnet vector,是一个VAE结构
  • Memory(M)模型,RNN结构
  • Controller(C)输出控制

三者关系图:

RL论文阅读22 - MB - World_Model

3.1.1 V:

RL论文阅读22 - MB - World_Model

RL论文阅读22 - MB - World_Model

在训练的时候使用 L 2 L^2 L2 距离+KL loss作为损失函数。就是规范的VAE模型。

有关VAE,请见这个博客

3.1.2 M:

图像帧经过V模型后,会被编码成一维的z向量,所以我们M模型就用来捕捉每一帧的z向量之间的关系:

RL论文阅读22 - MB - World_Model

M是一个RNN结构,用来捕捉时序特征,并且用来预测未来向量z。由于许多复杂的环境有随机性,所以RNN的输出是一个z的分布p(z),而不是deterministic那种直接生成z。上图可见,每层的RNN输出都由MDN(Mixture Density Network 混合密度网络)来处理,MDN可以输出一个呼和高斯分布,通过这个分布来采样下一个z。

在从输出的高斯分布中采样的时候,可以调整 τ \tau τ来控制model uncertainty(模型不确定性)。

关于Mixture Density Network,点击这里

对于超参数:作者在Car Racing 中使用了LSTM隐藏层宽度256, Doom task 隐藏层宽度512。5个高斯混合

3.1.3 C:

Controller 模型是三个中最简单的。并且与V,M分开训练。C的职责就是决定产生动作,并且最大化累计奖励。在论文中,Controller被设计为一个从 [ z t , h t ] [z_t,h_t] [zt,ht](这两个向量直接进行连接)到 a t a_t at的一个线性模型 。
设计的初衷就是希望大量复杂的计算都停留在V和M中,简化C

a t = W c [ z t h t ] + b c a_t = W_c [z_t h_t] + b_c at=Wc[ztht]+bc

对于C的训练,使用的是Covariance-Matrix Adaptation Evoluttion Srategy(CMA-ES)。

关于CMA-ES,点击这里

规模小的Controller的好处可以让训练算法在较小的搜索空间中集中精力在credit assignment problem,不影响world model(M)的容纳能力和表达能力。

credict assignment problem: 简单来说就是你吃了10个包子感觉饱了,到底是这里面哪个包子对你饱了这件事贡献比较大。

链接:https://www.zhihu.com/question/264978123/answer/289508531

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

A perceptron models only a single neuron’s learning, however, and although Minsky and Papert acknowledged that layers of interconnected neurons should be capable of more, they didn’t see a way to learn them. Neither did anyone else. The problem is that there’s no clear way to change the weights of the neurons in the ‘hidden’ layers to reduce the errors made by the ones in the output layer. Every hidden neuron influences the output via multiple paths, and every error has a thousand fathers. Who do you blame? Or, conversely, who gets the credit for correct outputs? This credit-assignment problem shows up whenever we try to learn a complex model and is one of the central problems in machine learning

3.2 实验

作者在分别在Car Racing和VizDoom上进行测试,都得到了很好的效果。

Car Racing

RL论文阅读22 - MB - World_Model

VizDoom中,作者直接使用训练好的M去代替实际的环境来对Controller进行训练。效果也不错

但是,也存在一些挑战:
World Model只是真实环境的概率模型,它会偶尔生产一些不符合实际客观规律的状态轨迹。例如会生成一些可能在天上飞的妖怪。因此,使用M作为我们的agent的虚拟环境时,也将M的hidden layer信息传递给Contorller,而不仅仅让controller利用玩家所能看到的外部信息。这样agent能够有效的利用隐藏层信息去最大化累计奖励。但是这种做法也有缺点 : agent很容易找到一个错误的策略来迷糊我们的M,就是在M中表现的很好,在真实环境中极差的一个对抗策略(adversarial policy,暂且翻译为对抗策略),这通常是因为模型的分布和实际的分布之间存在误差。这个原因也是许多之前的MB算法没有完全使用学习到的模型替代实际环境进行训练的原因

作者提出的方法,类似传统方法使用RNN M去一步一步预测,又有创新之处,对于Controller部分使用进化的方法,而不是传统的RL与RNN的结合,既简单又实用

这个进化的方法有待研究,原文指出这个方法类似Learning to Think(Schmidhuber, 2015a)中提出的。

作者还指出,在M中使用高斯混合模型更容易捕捉复杂的离散状态模型背后的逻辑

不同的 τ \tau τ对最终结果的影响:

增加M的超参数 τ \tau τ可以使C更难找到一个adversaril policies(对抗策略),但是,太大会使得agent很难从虚拟环境中学习到东西,所以需要人工调整。

RL论文阅读22 - MB - World_Model

对于更复杂的环境,论文中还提出了一种迭代训练的方法。即循环训练M、C

时间:2020年11月12日20:45