论文笔记--Unsupervised (Meta) RL

【论文笔记--Unsupervised (Meta) RL】
无监督的(元)强化学习总结

  • DIAYN
    • Key Idea
    • Formulation
  • UML
  • (Off-Policy) DADS
    • Key Idea:
      • off-policy版本
      • Planning using skill-dynamic
  • DDL
    • Key Idea:
      • distance evaluation
      • policy improvement

DIAYN 全名‘Diversity Is All You Need: Learning skills without a reward function’。关键词:learning skills without reward function; pretrained skills for downstream tasks; hierarchically to solve tasks;
一句话总结核心思想:通过无监督(无奖励信号)的方法学习有用的skills作为一种有效的预训练机制来克服RL中的探索和样本效率问题。
Key Idea 学习目标:由于未知reward function,目标不能再是传统的最大化累计奖励回报,而是要求学习的所有skills相互之间有区别性,同时所有skills共同探索大部分状态空间。具体来说,我们想训练一些skills,这些skills能覆盖绝大多数可能的行为(比如跑、跳、走,而不是单一动作)。这样针对一个任务时,如果’跑‘这个行为无用,那么其他skills下表现的行为,如“走”,“跳”等就和之前的行为具有差异性,因此可能更有用处。
注意:这里的skills的可判别性与最大化多样性是不同的。每一个skill对应一个隐条件策略 π ( a ∣ s , z ) \pi(a|s,z) π(a∣s,z),隐变量 z z z就是skill的语义意义。轻微的状态上的差异就可以导致skills是可判别的(后面会说到,skill指定访问状态),却不能说明 π ( a ∣ s , z ) \pi(a|s,z) π(a∣s,z)是多样性的。所以我们的要学习的skills目标就是既可判别,又多样性。
Formulation 智能体的策略的学习可以分为两个阶段,DIAYN主要是无监督阶段学习有用的skills,使这些skills在有了task reward后的监督阶段能更容易地最大化累计奖励回报这一监督信号。
目标函数基于以下思想:
  1. 想让skill指定智能体访问的状态,这样不同的skills就访问不同的states,从而达到可判别性;
  2. 第一条中用states而不是actions判别skills,因为外部观察者看不到不影响环境的动作(状态不同肉眼可见,动作不同肉眼未必可见),也就无法判别动作是否不同,即skills是否不同;
  3. 为了提高探索性,同时促进skills的多样性,通过学习尽可能随机action的skills;
这样具备高熵(多样性)且具有可判别性的skills,不同的skills之间探索不同部分的状态空间,这样就避免由于动作随机性导致进入无法区分的状态。所以利用信息论概念和以上思想,目标函数满足:
  • 最大化状态空间 S S S和skills的互信息: I ( S ; Z ) I(S; Z) I(S; Z)(针对上述第一条),也就是说我们可以从状态推断skill;
  • (针对上述第二条)最大化 I ( S ; Z ) I(S; Z) I(S; Z)的同时,确保不是用动作来区分skills,(已知 S S S的条件下)最小化 A A A和skills之间的互信息: I ( A ; Z ∣ S ) I(A; Z|S) I(A; Z∣S);
  • (针对上述第三条)通过最大熵策略强迫skills保持多样性,同时将所有skillsπ ( a ∣ s , z ) \pi(a|s,z) π(a∣s,z)关于先验 p ( z ) p(z) p(z)的期望看做一个混合策略 π ( a ∣ s ) = E z ~ p ( z ) [ π ( a ∣ s , z ) ] \pi(a|s)=\mathbb{E}_{z\sim p(z)}[\pi (a|s,z)] π(a∣s)=Ez~p(z)?[π(a∣s,z)],那么通过最大化混合策略的熵 H [ A ∣ S ] \mathcal{H}[A|S] H[A∣S]来保证skills的多样性。
所以最终的目标公式化:
F ( θ ) = I ( S ; Z ) + H [ A ∣ S ] ? I ( A ; Z ∣ S ) = ( H [ Z ] ? H [ Z ∣ S ] ) + H [ A ∣ S ] ? ( H [ A ∣ S ] ? H [ A ∣ S , Z ] ) = H [ Z ] ? H [ Z ∣ S ] + H [ A ∣ S , Z ] \begin{aligned} \mathcal{F}(\theta)&=I(S; Z)+\mathcal{H}[A|S]-I(A; Z|S)\\ &=(\mathcal{H}[Z]-\mathcal{H}[Z|S])+\mathcal{H}[A|S]-(\mathcal{H}[A|S]-\mathcal{H}[A|S,Z])\\ &=\mathcal{H}[Z]-\mathcal{H}[Z|S]+\mathcal{H}[A|S,Z] \end{aligned} F(θ)?=I(S; Z)+H[A∣S]?I(A; Z∣S)=(H[Z]?H[Z∣S])+H[A∣S]?(H[A∣S]?H[A∣S,Z])=H[Z]?H[Z∣S]+H[A∣S,Z]?
其中 θ \theta θ是策略参数。上式第一项要求先验 p ( Z ) p(Z) p(Z)的熵最大,取均匀分布保证熵最大;第二项要求条件熵 H [ Z ∣ S ] \mathcal{H}[Z|S] H[Z∣S]尽可能小,也就是说 Z Z Z和 S S S的相关性要大,已知 S S S的3条件下 Z Z Z的不确定性小,即给定状态容易推断skill;第三项则是保证skill策略的多样性,最大熵;由于里面涉及到 p ( z ∣ s ) p(z|s) p(z∣s)不好计算,用一个推断网络 q ? ( z ∣ s ) q_\phi(z|s) q??(z∣s)估计这个后验。那么得到目标函数的一个下界:
F ( θ ) = H [ Z ] ? H [ Z ∣ S ] + H [ A ∣ S , Z ] = H [ A ∣ S , Z ] + E z ~ p ( z ) , s ~ π ( z ) [ log ? p ( z ∣ s ) ] ? E z ~ p ( z ) [ log ? p ( z ) ] ≥ H [ A ∣ S , Z ] + E z ~ p ( z ) , s ~ π ( z ) [ log ? q ? ( z ∣ s ) ? log ? p ( z ) ] = G ( θ , ? ) \begin{aligned} \mathcal{F}(\theta)&=\mathcal{H}[Z]-\mathcal{H}[Z|S]+\mathcal{H}[A|S,Z]\\ &=\mathcal{H}[A|S,Z]+\mathbb{E}_{z\sim p(z),s\sim\pi(z)}[\log p(z|s)]-\mathbb{E}_{z\sim p(z)}[\log p(z)]\\ &\geq \mathcal{H}[A|S,Z]+\mathbb{E}_{z\sim p(z),s\sim\pi(z)}[\log q_\phi(z|s)-\log p(z)]=\mathcal{G}(\theta,\phi)\\ \end{aligned} F(θ)?=H[Z]?H[Z∣S]+H[A∣S,Z]=H[A∣S,Z]+Ez~p(z),s~π(z)?[logp(z∣s)]?Ez~p(z)?[logp(z)]≥H[A∣S,Z]+Ez~p(z),s~π(z)?[logq??(z∣s)?logp(z)]=G(θ,?)?观察上式,第一项 H [ A ∣ S , Z ] \mathcal{H}[A|S,Z] H[A∣S,Z]就是策略熵,后面一项就可以看做是强化学习的伪奖励信号:
r z ( s , a ) = log ? q ? ( z ∣ s ) ? log ? p ( z ) r_z(s,a)=\log q_\phi(z|s)-\log p(z) rz?(s,a)=logq??(z∣s)?logp(z)这样加上熵系数 α \alpha α,目标函数 F ( θ ) \mathcal{F}(\theta) F(θ)就是SAC算法的目标函数。所以原文就是使用SAC来学习skill。
UML 论文全名’Unsupervised Meta-Learning for Reinforcement Learning‘
一句话总结就是利用上面的DIAYN+MAML进行元学习,先用DIAYN学习判别器 q ? q_\phi q??,然后利用多个不同的采样 z z z训练MAML的元策略。
(Off-Policy) DADS 第一篇论文全名’Dynamic-Aware Unsupervised Discovery of Skills‘.简称DADS,在此基础上作者提出一种off-policy版本的DADS,提高了学习效率。
Key Idea: 从DIAYN算法目标函数看,其实最后核心就是最大化一个互信息 I ( S ; Z ) I(S; Z) I(S; Z),和一个条件策略最大熵 H ( A ∣ S , Z ) \mathcal{H}(A|S,Z) H(A∣S,Z)。而条件策略最大熵可以放在SAC这种算法框架下解决。DADS关注的是第一部分互信息与状态转移矩阵model的联系。即:
I ( S ′ ; Z ∣ S ) I(S'; Z|S) I(S′; Z∣S)与DIAYN中学习一个特定行为策略探索不同部分的状态空间不同,DADS是针对不同行为学习不同环境model,从而使每个特定行为只在一个小范围的状态空间执行动作。除了DIAYN中的skill策略 π ( a ∣ s , z ) \pi(a|s,z) π(a∣s,z),这里还定义了一个’skill-dynamics‘: q ( s ′ ∣ s , z ) q(s'|s,z) q(s′∣s,z),来预测给定真实模型 p p p和不同的skill情况下,从状态 s s s转移到 s ′ s' s′的概率。
上述的互信息目标可以化简为:
I ( s ′ ; z ∣ s ) = H ( z ∣ s ) ? H ( z ∣ s ′ , s ) = H ( s ′ ∣ s ) ? H ( s ′ ∣ s , z ) \begin{aligned} I(s'; z|s)&=\mathcal{H}(z|s)-\mathcal{H}(z|s',s)\\ &=\mathcal{H}(s'|s)-\mathcal{H}(s'|s,z) \end{aligned} I(s′; z∣s)?=H(z∣s)?H(z∣s′,s)=H(s′∣s)?H(s′∣s,z)?这里面上面的变形理解为给定一个transition从 s → s ′ s\rightarrow s' s→s′,我们能知道多少关于 z z z的信息。下面的变形理解为最大化真实环境transition的多样性( H ( s ′ ∣ s ) \mathcal{H}(s'|s) H(s′∣s)),同时最大化 z z z和 s ′ s' s′的共享信息量( ? H ( s ′ ∣ z , s ) -\mathcal{H}(s'|z,s) ?H(s′∣z,s))。所以优化这个目标就可以看做是在给定skill隐变量 z z z的情况下,使得transition可预测;同时编码一个多样性的skill变量 z z z(也即是transition多样性)。这里选择下面的化简,因为可以和skill-dynamic联系上,方便后面的model-based control。那么就可以进一步的化简得到目标互信息的变分下界:
I ( s ′ ; z ∣ s ) = E z , s , s ′ ~ p [ log ? p ( s ′ ∣ s , z ) p ( s ′ , s ) ] ≥ E z , s , s ′ ~ p [ log ? q ? ( s ′ ∣ s , z ) p ( s ′ , s ) ] \begin{aligned} I(s'; z|s)&=\mathbb{E}_{z,s,s'\sim p}\left[\log\frac{p(s'|s,z)}{p(s',s)}\right]\\ &\geq\mathbb{E}_{z,s,s'\sim p}\left[\log\frac{q_\phi(s'|s,z)}{p(s',s)}\right]\\ \end{aligned} I(s′; z∣s)?=Ez,s,s′~p?[logp(s′,s)p(s′∣s,z)?]≥Ez,s,s′~p?[logp(s′,s)q??(s′∣s,z)?]?这里的联合分布 p ( z , s , s ′ ) = p ( z ) p ( s ∣ z ) p ( s ′ ∣ s , z ) p(z,s,s')=p(z)p(s|z)p(s'|s,z) p(z,s,s′)=p(z)p(s∣z)p(s′∣s,z),其中的 p ( s ∣ z ) p(s|z) p(s∣z)是skill策略 π ( a ∣ s , z ) \pi(a|s,z) π(a∣s,z)下的稳态分布,而 p ( s ′ ∣ s , z ) = ∫ p ( s ′ ∣ s , a ) π ( a ∣ s , z ) d a p(s'|s,z)=\int p(s'|s,a)\pi(a|s,z)da p(s′∣s,z)=∫p(s′∣s,a)π(a∣s,z)da,这个积分很难求,所以用一个变分函数 q ? q_\phi q??来估计。
到这里就和DIAYN的优化类似了(DIAYN中的 s s s换成 s ′ ∣ s s'|s s′∣s),优化 ? \phi ?即最大化似然函数 E p ( z , s , s ′ ) [ log ? q ? ( s ′ ∣ s , z ) ] \mathbb{E}_{p(z,s,s')}[\log q_\phi(s'|s,z)] Ep(z,s,s′)?[logq??(s′∣s,z)];优化条件策略则构建一个伪奖励信号:
r z ( s , a , s ′ ) = log ? q ? ( s ′ ∣ s , z ) ? log ? p ( s ′ ∣ s ) r_z(s,a,s')=\log q_\phi(s'|s,z)-\log p(s'|s) rz?(s,a,s′)=logq??(s′∣s,z)?logp(s′∣s)这里多了个不好计算的 log ? p ( s ′ ∣ s ) \log p(s'|s) logp(s′∣s),所以对其进行估计: p ( s ′ ∣ s ) = ∫ p ( s ′ ∣ s , z ) p ( z ∣ s ) d z ≈ ∫ q ? ( s ′ ∣ s , z ) p ( z ) d z ≈ 1 L ∑ i = 1 L q ? ( s ′ ∣ s , z i ) p(s'|s)=\int p(s'|s,z)p(z|s)dz\approx\int q_\phi(s'|s,z)p(z)dz\approx\frac{1}{L}\sum^L_{i=1}q_\phi(s'|s,z_i) p(s′∣s)=∫p(s′∣s,z)p(z∣s)dz≈∫q??(s′∣s,z)p(z)dz≈L1?∑i=1L?q??(s′∣s,zi?),带入上式,有:
r z ( s , a , s ′ ) = log ? q ? ( s ′ ∣ s , z ) ∑ i = 1 L q ? ( s ′ ∣ s , z i ) + log ? L r_z(s,a,s')=\log\frac{q_\phi(s'|s,z)}{\sum^L_{i=1}q_\phi(s'|s,z_i)}+\log L rz?(s,a,s′)=log∑i=1L?q??(s′∣s,zi?)q??(s′∣s,z)?+logL到这里后面的东西就和DIYAN差不多了,训练的时候仍然使用最大熵策略。
off-policy版本
在此基础上作者在另一篇论文’Emergent Real-world Robotic Skills via Unsupervised Off-policy RL‘提出一种off-policy改进方法,大大提高训练效率和效果。其核心就是在训练skill-dynamic模型参数 ? \phi ?的时候引入off-policy数据,回顾优化的最大似然目标:
J ( q ? ) = E z , s , s ′ ~ p [ log ? q ? ( s ′ ∣ s , z ) ] = ∫ p ( z ) p ( s ∣ z ) p ( s ′ ∣ s , z ) log ? q ? ( s ′ ∣ s , z ) d z d s d s ′ = ∫ p ( z ) p ( s ∣ z ) π ( a ∣ s , z ) p ( s ′ ∣ s , a ) log ? q ? ( s ′ ∣ s , z ) d z d s d s ′ \begin{aligned} J(q_\phi) &= \mathbb{E}_{z,s,s'\sim p}[\log q_\phi(s'|s,z)]\\ &=\int p(z)p(s|z)p(s'|s,z)\log q_\phi(s'|s,z)dzdsds'\\ &=\int p(z)p(s|z)\pi(a|s,z)p(s'|s,a)\log q_\phi(s'|s,z)dzdsds'\\ \end{aligned} J(q??)?=Ez,s,s′~p?[logq??(s′∣s,z)]=∫p(z)p(s∣z)p(s′∣s,z)logq??(s′∣s,z)dzdsds′=∫p(z)p(s∣z)π(a∣s,z)p(s′∣s,a)logq??(s′∣s,z)dzdsds′?现在我们假设使用behavior policy的off-policy数据来训练这个目标函数,那么对应的联合分布可表示为 p π c ( z , s , s ′ ) = ∫ p ( z ) p c ( s ∣ z ) π c ( a ∣ s , z ) p ( s ′ ∣ s , a ) d a p^{\pi_c}(z,s,s')=\int p(z)p_c(s|z)\pi_c(a|s,z)p(s'|s,a)da pπc?(z,s,s′)=∫p(z)pc?(s∣z)πc?(a∣s,z)p(s′∣s,a)da那么上式改写为:
J ( q ? ) = ∫ p ( z ) p c ( s ∣ z ) π c ( a ∣ s , z ) p ( s ′ ∣ s , a ) p ( s ∣ z ) π ( a ∣ s , z ) p c ( s ∣ z ) π c ( a ∣ s , z ) log ? q ? ( s ′ ∣ s , z ) d z d s d a d s ′ = E z , s , a , s ′ ~ p π c [ p ( s ∣ z ) π ( a ∣ s , z ) p c ( s ∣ z ) π c ( a ∣ s , z ) log ? q ? ( s ′ ∣ s , z ) ] \begin{aligned} J(q_\phi) &=\int p(z)p_c(s|z)\pi_c(a|s,z)p(s'|s,a)\frac{p(s|z)\pi(a|s,z)}{p_c(s|z)\pi_c(a|s,z)}\log q_\phi(s'|s,z)dzdsdads'\\ &=\mathbb{E}_{z,s,a,s'\sim p^{\pi_c}}\left[\frac{p(s|z)\pi(a|s,z)}{p_c(s|z)\pi_c(a|s,z)}\log q_\phi(s'|s,z)\right] \end{aligned} J(q??)?=∫p(z)pc?(s∣z)πc?(a∣s,z)p(s′∣s,a)pc?(s∣z)πc?(a∣s,z)p(s∣z)π(a∣s,z)?logq??(s′∣s,z)dzdsdads′=Ez,s,a,s′~pπc??[pc?(s∣z)πc?(a∣s,z)p(s∣z)π(a∣s,z)?logq??(s′∣s,z)]?利用重要性采样的方法使用off-policy数据,那么导数为:
? ? J ( q ? ) = E [ p ( s ∣ z ) π ( a ∣ s , z ) p c ( s ∣ z ) π c ( a ∣ s , z ) ? ? log ? q ? ( s ′ ∣ s , z ) ] ? 1 B q ∑ i = 1 B q [ π ( a i ∣ s i , z i ) π c ( a i ∣ s i , z i ) ? ? log ? q ? ( s ′ ∣ s , z ) ] ? 1 B q ∑ i = 1 B q [ w i ? ? log ? q ? ( s ′ ∣ s , z ) ] \begin{aligned} \nabla_\phi J(q_\phi) &=\mathbb{E}\left[\frac{p(s|z)\pi(a|s,z)}{p_c(s|z)\pi_c(a|s,z)}\nabla_\phi \log q_\phi(s'|s,z)\right]\\ &\simeq\frac{1}{B_q}\sum^{B_q}_{i=1}\left[\frac{\pi(a_i|s_i,z_i)}{\pi_c(a_i|s_i,z_i)}\nabla_\phi \log q_\phi(s'|s,z)\right]\\ &\simeq\frac{1}{B_q}\sum^{B_q}_{i=1}\left[w_i\nabla_\phi \log q_\phi(s'|s,z)\right]\\ \end{aligned} ???J(q??)?=E[pc?(s∣z)πc?(a∣s,z)p(s∣z)π(a∣s,z)????logq??(s′∣s,z)]?Bq?1?i=1∑Bq??[πc?(ai?∣si?,zi?)π(ai?∣si?,zi?)????logq??(s′∣s,z)]?Bq?1?i=1∑Bq??[wi????logq??(s′∣s,z)]?这里忽略难解的 p ( s ∣ z ) p c ( s ∣ z ) \frac{p(s|z)}{p_c(s|z)} pc?(s∣z)p(s∣z)?,并且利用clipping系数 w i = c l i p ( π ( a i ∣ s i , z i ) π c ( a i ∣ s i , z i ) , 1 α , α ) w_i=clip(\frac{\pi(a_i|s_i,z_i)}{\pi_c(a_i|s_i,z_i)},\frac{1}{\alpha},\alpha) wi?=clip(πc?(ai?∣si?,zi?)π(ai?∣si?,zi?)?,α1?,α).
Planning using skill-dynamic
分层决策,上层用planning方法(CEM)规划出下一步的skill-dynamic,然后根据skill-dynamic对应的condition策略进行下层的动作选择。
DDL 论文全称’Dynamic Distance Learning for Semi-Supervised and Unsupervised skill discovery‘
仍然是无监督(直接的奖励信号)的强化学习,但实际上和DIAYN和DADS一样,仍然要学习一个奖励函数提供强化学习算法需要的奖励或反馈(强化)信号。
Key Idea: 只针对goal-reaching任务,学习一个dynamic distance function去生成有效的reward shaping代替人为设计的奖励函数。所以整个的算法可以分为两大部分,即Distance evaluation和Policy Improvement。
distance evaluation
实际上dynamic distance functiond ψ π ( s , s ′ ) d^\pi_\psi(s,s') dψπ?(s,s′)是用来量化两个状态之间transition的步数(距离)的函数,那么这个函数模型的训练用一种自监督回归的方法来拟合数据。
首先定义一个和策略有关的dynamical distanced π ( s i , s j ) d^\pi(s_i, s_j) dπ(si?,sj?),它代表在策略 π \pi π下从状态 s i s_i si?转移到 s j s_j sj?的平均步数。在一个轨迹内两种状态之间的距离就定义为:
d π ( s , s ′ ) = E π ~ π ∣ s i = s , s j = s ′ , j ≥ i [ ∑ t = 1 j ? 1 γ t ? i c ( s t , s t + 1 ) ] d^\pi(s,s')=\mathbb{E}_{\pi\sim\pi|s_i=s,s_j=s',j\geq i}[\sum^{j-1}_{t=1}\gamma^{t-i}c(s_t, s_{t+1})] dπ(s,s′)=Eπ~π∣si?=s,sj?=s′,j≥i?[t=1∑j?1?γt?ic(st?,st+1?)]这里其实也算是人为的设计状态之间距离定义,但不是直接设计距离函数。 c ( s t , s t + 1 ) c(s_t,s_{t+1}) c(st?,st+1?)定义为二值奖励函数,如果满足条件 s t = s , s t + 1 = s ′ s_t=s,s_{t+1}=s' st?=s,st+1?=s′则距离为0,否则为1。通常在有限长度的轨迹中,选择 γ = 1 \gamma=1 γ=1,那么上面的距离就是 j ? i j-i j?i。
这里需要注意的几个点:这里定义的并不是真实的距离空间中距离,因为不满足三角不等式;同时直接是 j ? i j-i j?i难道不考虑这之间还要连续的 < s , s ′ >对吗?个人觉得可能是针对连续状态空间的话,这种情况基本不存在,所以就简化了。
有了这个距离定义的话就可以对每个轨迹中的状态对进行’标注‘,然后进行监督回归学习,目标函数:
L d ( ψ ) = 1 2 = E π ~ ρ π , i ~ [ 0 , T ] , j ~ [ i , T ] [ ( d ψ π ( s i , s j ) ? ( j ? i ) ) 2 ] \mathcal{L}_d(\psi)=\frac{1}{2}=\mathbb{E}_{\pi\sim\rho_\pi,i\sim[0,T],j\sim[i,T]}\left[(d^\pi_{\psi}(s_i,s_j)-(j-i))^2\right] Ld?(ψ)=21?=Eπ~ρπ?,i~[0,T],j~[i,T]?[(dψπ?(si?,sj?)?(j?i))2]由于距离函数是一个和策略有关的量,所以这种方法的一个劣势就是只能用on-policy数据进行训练距离函数,但是他只是用来生成奖励信号的,所以策略的学习仍然可以用off-policy的方法,所以并不会减慢学习。
policy improvement
定义参数化策略 π ? \pi_\phi π??,以到达 g g g为目标,用上一步学到的距离函数作为奖励函数来优化策略。原则上可以利用贪婪法,一步一步的通过选择最小化距离函数的动作来逼急目标。但是这未免太信赖学习到的距离函数了。所以将距离看做负奖励,应用强化学习方法最小化到达目标路径的累计距离:
L π ( ? ) = E τ ~ ρ π [ ∑ t = 0 ∞ γ t d ψ π ( s t , g ) ] \mathcal{L}_\pi(\phi)=\mathbb{E}_{\tau\sim\rho_\pi}\left[\sum^\infty_{t=0}\gamma^t d^\pi_\psi(s_t, g)\right] Lπ?(?)=Eτ~ρπ??[t=0∑∞?γtdψπ?(st?,g)]文中作者提到使用的是确定型环境,并且使用累积距离的方法比单步贪婪法更好的效果。

    推荐阅读