6

事后经验回放 Hindsight Experience Reply

 2 years ago
source link: https://gyh75520.github.io/2018/03/22/Hindsight_Experience_Reply/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

事后经验回放 Hindsight Experience Reply

2018-03-22

提出一种新的经验回放方法,能够在稀疏且binary reward 环境中训练 RL 算法。

人类在学习的时候,很多情况下不能完全也不需要完全达到自己特定的目标,才能学到特定的经验和技术。人类在学习的时侯,可能会尝试不同的手段和方法来做一件事,虽然可能这个方法在特定的任务上T不奏效,但这样的方法可能完成了其他的任务T’,当你下次需要做个任务T’时,你可以用这些经验来完成。比如在一个射击靶子游戏中,靶子随机出现某个位置,射中reward = 0 否则为 -1 。你可能很多都枪射歪了,这对强化学习来说,这些样本学不到任何有用的经验。但是如果把射歪的位置看成靶子的位置,这对强化学习来说就是一个有用的样本。将射歪的位置看成靶子的位置,相当于设置了一个新的 Goal。

所以基于上面的思路,如果我们的目的是做一类比较接近的goal的话,或者我们能构造出与当前goal比较接近的一系列goal的话,我们就有可能利用另外的goal来衡量policy在环境中的trajectory 的好坏,虽然在大部分的goal中这个轨迹可能是比较差的,但是如果我们的goal是要达到 s_n 的话,那么这个policy其实好的。然后利用这个trajectory来进行学习,这里值得注意一下,我个人的理解是:对于这些goal需要具有一定的联系(内在的相似性),这样这个trajectory训练出来的效果才有可能对于完成另外goal有帮助。,>

所以既然感觉有点浪费,就会想要利用起来,这部分也就是HER做的事情:如果我们能够知道r(s, a, g)的话,那么对于上面采样出来的 ττ 中的 (s, a, r(a, s, g), s’, g) ,我们可以选择不同的goal,让这里面的reward变成1,就是意味着:这个transition tuples能够有效地帮助这个goal进行学习。那么replay buffer中reward为1的transition tuples数目就得到了一定的提升,可能就能够有效地帮助agent学习。

下面是HER的算法,简单地解释一下就是:利用当前policy在环境中交互获得trajectory ττ ,然后将 (s, a, r(a, s, g), s’, g) 存储在replay buffer中,然后再挑选一些其他的goal对这个trajectory ττ 中的g和r做修改,然后存储在replay buffer中,之后就是普通的基于replay buffer算法中常见的从buffer中sample,然后训练等过程中。

下面是HER的算法,简单地解释一下就是:利用当前policy在环境中交互获得 trajectory ττ ,然后将 (s, a, r(a, s, g), s’, g) 存储在 replay buffer 中,然后再挑选一些其他的 goal 对这个 trajectory ττ 中的 g 和 r 做修改,然后存储在r eplay buffer 中,之后就是普通的基于replay buffer 算法中常见的从 buffer 中 sample,然后训练等过程中。

p_1

那么关于如果挑选其他的goal就是一项很玄学的地方了,在论文里面提出了几种不同的方法:

final — goal corresponding to the final state in each episode
future — replay with k random states which come from the same episode as the transition being replayed and were observed after it
episode — replay with k random states coming from the same episode as the transition being replayed
random — replay with k random states encountered so far in the whole training procedure

这里有三种任务:

  • Pushing. 把物体推到指定的位置
  • Sliding. 推动物体,使它滑动到某个位置
  • Pick-and-place. 拿起物体,移动到空中的某个位置

在这个环境中:

  • Reward:在没有到到达goal时,都是-1,到达goal时候为0
  • Goal:为在空间中随机生成的位置(所以我感觉这也是有效的一点)
  • Observations:gripper(机器手)在这个空间中的绝对位置,需要推动物体object和goal相对gripper的相对位置

HER目前看上去局限很多(当然也就是改进的地方)。比如这里就直接假设reward和goal可以直接控制的,但是很多情况下并不是,可能我们就是要实现固定的几个goal,而且不知道这里面的reward,同样goal之间的关系可能不是特别紧密,那么HER该怎么用呢?(基本假设都出现了问题)

另外就是这里实验的设计,goal变了,其实导致了 (s,a,r, s’, g) 中 s 的改变(s 和 goal 进行拼接),这个s里面是会体现goal的,但是很多时候,我们无法直接修改s,比如玩video game。

最后,HER 是和 Off-Policy 的 RL 算法进行结合,原因是:On-Policy 中 Q 值的更新用的 s‘ 是确定的,我们选择其他的goal的时候,无法及时更新到 s‘||新goal 的 Q 值。Off-Policy 中的 max 操作 可以保证我们更新到新的 Q 值。

REF: Andrychowicz M, Wolski F, Ray A, et al. Hindsight Experience Replay[J]. 2017.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK