强化学习经典算法笔记19:无监督策略学习算法Diversity Is All You Need
本篇介绍一个无监督框架下的策略学习算法DIAYN,全称是Diversity Is All You Need。本文是在学习了张楚珩前辈的【强化学习 77】DIAYN和知乎ID黑猫紧张的PN-23: Diversity is All Your Need (arXiv 1802)之后写成的,向他们表示感谢。
DIAYN核心要点
DIAYN可以在一个没有奖励的环境中,自适应地产生奖励函数,并且自动探索出来一些有用的技能(Skills)。训练的方法是使用最大熵策略最大化一个构造的信息论目标函数。(信息论目标函数的具体形式在下面介绍。)学习到的技能可以用于 1)作为策略学习的初始化,加速学习过程;2)作为分层强化学习的下层策略;3)用于模仿学习。
技能(Skill)的含义:
A skill is a latent-conditioned policy that alters that state of the environment in a consistent way.
如何在没有reward的任务环境上学习不仅diverse,而且有含义、有用的skill,文章提出3个key idea:
- 不同skill访问不同的states,因而skill是distinguishable的。比如跳跃和跑动这两种动作所经历的状态很可能是不一样的。
- 用states而不是actions来区分skills,因为存在多个可能的 a t a_t at可以使 s t s_t st转移到 s t + 1 s_{t+1} st+1。比如一个推箱子的任务,如果施加的力量低于一个阈值,箱子就纹丝不动,但是我们并不清楚施加的力量到底是多少。本质是因为动作 a t a_t at无法被外界观测到,而状态 s t s_t st是可以的且唯一的。
- 让skill尽可能diverse,尽可能随机的act,但始终要保持distinguishable。尽可能的随机,但不能过于随机使得两个skill无法区分开了。diversity和distinguishable是一对矛盾。
模型定义
- S S S和 A A A是状态和动作,均看做随机变量。
- Z ∼ p ( z ) Z\sim p(z) Z∼p(z)是一个隐变量,策略依赖于 Z Z Z,即 π θ ( a ∣ s , z ) \pi_{\theta}(a|s,z) πθ(a∣s,z)。
由此引出Skill的另一个含义,一个“Skill”就是一个固定向量 Z Z Z控制的策略。 - I ( X ; Y ) I(X;Y) I(X;Y)表示随机变量 X X X, Y Y Y的互信息(Mutual Information)。
H ( X ; Y ) = H ( X ) − H ( Y ∣ X ) = H ( Y ) − H ( X ∣ Y ) H(X;Y)=H(X)-H(Y|X)=H(Y)-H(X|Y) H(X;Y)=H(X)−H(Y∣X)=H(Y)−H(X∣Y)
互信息表示两个变量之间的依赖程度,互信息越大, X X X和 Y Y Y的依赖程度越高。 - H ( X ) H(X) H(X)表示信息熵。
目标函数的构造
目标函数的构造分为三步:
-
最大化状态和skill之间的互信息。
I ( S ; Z ) = H ( Z ) − H ( Z ∣ S ) I(S;Z)=H(Z)-H(Z|S) I(S;Z)=H(Z)−H(Z∣S)
这是为了实现前面所述的第一个key idea,让状态和skill尽可能一一对应。The skill should control which states the agent visits. -
在给定状态 S S S的条件下,最小化 A A A和 Z Z Z之间的互信息 I ( A ; Z ∣ S ) I(A;Z|S) I(A;Z∣S),这是为了实现第二个Key Idea,即保证真正可以用于区分不同Skill的是状态,而不是靠动作。也就是令动作 A A A和技能 Z Z Z之间尽量不相互依赖。
-
把概率分布 p ( z ) p(z) p(z)控制的所有Skill看做一个混合策略,最大化这个策略的条件熵 H ( A ∣ S )