全名‘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中的探索和样本效率问题。
学习目标:由于未知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目标就是既可判别,又多样性。
智能体的策略的学习可以分为两个阶段,DIAYN主要是无监督阶段学习有用的skills,使这些skills在有了task reward后的监督阶段能更容易地最大化累计奖励回报这一监督信号。
目标函数基于以下思想:
这样具备高熵(多样性)且具有可判别性的skills,不同的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。
论文全名’Unsupervised Meta-Learning for Reinforcement Learning‘
一句话总结就是利用上面的DIAYN+MAML进行元学习,先用DIAYN学习判别器 q ϕ q_\phi qϕ,然后利用多个不同的采样 z z z训练MAML的元策略。
第一篇论文全名’Dynamic-Aware Unsupervised Discovery of Skills‘.简称DADS,在此基础上作者提出一种off-policy版本的DADS,提高了学习效率。
从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=1Lqϕ(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=1Lqϕ(s′∣s,zi)qϕ(s′∣s,z)+logL到这里后面的东西就和DIYAN差不多了,训练的时候仍然使用最大熵策略。
在此基础上作者在另一篇论文’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)]≃Bq1i=1∑Bq[πc(ai∣si,zi)π(ai∣si,zi)∇ϕlogqϕ(s′∣s,z)]≃Bq1i=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方法(CEM)规划出下一步的skill-dynamic,然后根据skill-dynamic对应的condition策略进行下层的动作选择。
论文全称’Dynamic Distance Learning for Semi-Supervised and Unsupervised skill discovery‘
仍然是无监督(直接的奖励信号)的强化学习,但实际上和DIAYN和DADS一样,仍然要学习一个奖励函数提供强化学习算法需要的奖励或反馈(强化)信号。
只针对goal-reaching任务,学习一个dynamic distance function去生成有效的reward shaping代替人为设计的奖励函数。所以整个的算法可以分为两大部分,即Distance evaluation和Policy Improvement。
实际上dynamic distance function d ψ π ( s , s ′ ) d^\pi_\psi(s,s') dψπ(s,s′)是用来量化两个状态之间transition的步数(距离)的函数,那么这个函数模型的训练用一种自监督回归的方法来拟合数据。
首先定义一个和策略有关的dynamical distance d π ( 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 ′ > <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的方法,所以并不会减慢学习。
定义参数化策略 π ϕ \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)]文中作者提到使用的是确定型环境,并且使用累积距离的方法比单步贪婪法更好的效果。