强化学习论文笔记 (1)

TRPO

  • 摘要: 找到更新参数的方法使得期望效用不减(策略梯度若学习率选择不好更新后可能效用更低)
  • 效用函数 η ( π ) = E s 0 , s 1... ( ∑ t = 0 ∞ γ t R ( s t ) ) \eta(\pi)=E_{s0,s1...}(\sum_{t=0}^\infty\gamma^tR(s_t)) η(π)=Es0,s1...(t=0γtR(st))
  • 引理: η ( π ′ ) = η ( π ) + E s , a ∼ π ′ ( ∑ t = 0 ∞ γ t A π ( s t , a t ) ) \eta(\pi')=\eta(\pi)+E_{s,a\sim\pi'}(\sum_{t=0}^\infty\gamma^tA_\pi(s_t,a_t)) η(π)=η(π)+Es,aπ(t=0γtAπ(st,at))
    • 其中 π ′ \pi' π代表新策略、 π \pi π代表旧策略、 A π ( s t , a t ) A_\pi(s_t,a_t) Aπ(st,at)是旧策略下的优势函数、 E s , a ∼ π ′ E_{s,a\sim\pi'} Es,aπ代表动作取值服从新策略
    • 直观理解: 优势函数代表第一步走 a t a_t at(此处 a t a_t at服从 π ′ \pi' π)比第一步走a(a服从 π \pi π)要多赚多少
    • 所以 π ′ \pi' π的期望效益= π \pi π的期望效益+ ∑ \sum 第n步走 a t ∼ π ′ a_t\sim\pi' atπ比第n步走 a ∼ π a\sim\pi aπ要多赚多少
    • 按PG思想可以改写为 : η ( π ′ ) = η ( π ) + ∑ s d π ′ ( s ) ∑ a π ′ ( a ∣ s ) A π ( s , a ) \eta(\pi')=\eta(\pi)+\sum_s d_{\pi'}(s)\sum_a\pi'(a|s)A_\pi(s,a) η(π)=η(π)+sdπ(s)aπ(as)Aπ(s,a)
    • 其中 d π ′ ( s ) d_\pi'(s) dπ(s)代表在马可夫链稳定的条件下,以策略 π ′ \pi' π进行游戏,状态s出现的概率
  • 改进: L π ( π ′ ) = η ( π ) + ∑ s d π ( s ) ∑ a π ′ ( a ∣ s ) A π ( s , a ) L_\pi(\pi')=\eta(\pi)+\sum_s d_{\pi}(s)\sum_a\pi'(a|s)A_\pi(s,a) Lπ(π)=η(π)+sdπ(s)aπ(as)Aπ(s,a)
    • d π ′ d_{\pi'} dπ改为 d π d_\pi dπ,原因是我们没有 π ′ \pi' π( π ′ \pi' π代表更新后的策略)、且 π \pi π π ′ \pi' π相差不大所以可近似
    • 其中 { L θ 0 ( θ 0 ) = η ( θ 0 ) ∇ L θ 0 ( θ ) ∣ θ = θ 0 = ∇ η ( θ ) ∣ θ = θ 0 \begin{cases} L_{\theta_0}(\theta_0)=\eta(\theta_0)\\ \nabla L_{\theta_0}(\theta)|_{\theta=\theta_0}=\nabla\eta(\theta)|_{\theta=\theta_0}\\ \end{cases} {Lθ0(θ0)=η(θ0)Lθ0(θ)θ=θ0=η(θ)θ=θ0,在 θ \theta θ-> θ 0 \theta_0 θ0处成立,所以优化L等价于优化 η ( π ′ ) \eta(\pi') η(π)
  • 不等式: η ( π ′ ) ≥ L π ( π ′ ) − C 常 数 ⋅ D K L m a x ( π , π ′ ) \eta(\pi')\ge L_\pi(\pi')-C_{常数}\cdot D_{KL}^{max}(\pi,\pi') η(π)Lπ(π)CDKLmax(π,π)
    • 可以证明每回合 m a x i m i z e M i ( π ) = L π i ( π ) − C ⋅ D K L m a x ( π i , π ) maximize M_i(\pi) = L_{\pi_i}(\pi)-C\cdot D_{KL}^{max}(\pi_i,\pi) maximizeMi(π)=Lπi(π)CDKLmax(πi,π) 将使效用函数不减,即 η ( π i + 1 ) − η ( π i ) ≥ 0 \eta(\pi_{i+1})-\eta(\pi_i) \ge 0 η(πi+1)η(πi)0,证明如下
    • η ( π i + 1 ) ≥ M i ( π i + 1 ) \eta(\pi_{i+1})\ge M_i(\pi_{i+1}) η(πi+1)Mi(πi+1) η ( π i ) = M i ( π i ) \eta(\pi_{i})= M_i(\pi_{i}) η(πi)=Mi(πi)、所以 η ( π i + 1 ) − η ( π i ) ≥ M i ( π i + 1 ) − M i ( π i ) ≥ 0 \eta(\pi_{i+1})-\eta(\pi_{i})\ge M_i(\pi_{i+1})-M_i(\pi_{i})\ge0 η(πi+1)η(πi)Mi(πi+1)Mi(πi)0、第二个等号成立因为最大化后的 M i M_i Mi肯定 ≥ \ge M i M_i Mi
    • 不直接优化 η \eta η,而从M下手,采用的是MM优化思想(参考网站2)
  • 优化公式: { m a x i m i z e   L θ o l d s u b j e c t   t o   D K L ˉ ( θ , θ o l d ) ≤ δ \begin{cases} maximize\space L_{\theta_{old}}\\ subject\space to\space \bar{D_{KL}}(\theta,\theta_{old})\le\delta \end{cases} {maximize Lθoldsubject to DKLˉ(θ,θold)δ
    • 上文给出理论上可行的优化方法(即最大化M),但由于M存在常数项C,将导致每次更新步长很小,从MM优化思想来理解,常数项大导致M难以逼近 η \eta η,从而每次移动步长不大
    • 因此我们需要限制 D K L m a x D_{KL}^{max} DKLmax的大小,使得常数项不要太大
    • 但求max需要遍历 θ \theta θ的所有状态空间(无法实现),因此使用平均取代最大
  • MC实现: { m a x i m i z e   E s ∼ θ o l d , a ∼ q ( π θ n e w ( a ∣ s ) q ( a ∣ s ) Q θ o l d ( s , a ) ) s u b j e c t   t o   E s ∼ θ o l d ( D K L ( θ o l d , θ n e w ) ) ≤ δ \begin{cases} maximize\space E_{s\sim\theta_{old},a\sim q}(\frac{\pi_{\theta_{new}}(a|s)}{q(a|s)}Q_{\theta_{old}}(s,a))\\ subject\space to\space E_{s\sim\theta_{old}}({D_{KL}}(\theta_{old},\theta_{new}))\le\delta \end{cases} {maximize Esθold,aq(q(as)πθnew(as)Qθold(s,a))subject to Esθold(DKL(θold,θnew))δ
    • 此部份用MC方法确定L表达式
    • L π ( π ′ ) = η ( π ) + ∑ s d π ( s ) ∑ a π ′ ( a ∣ s ) A π ( s , a ) L_\pi(\pi')=\eta(\pi)+\sum_s d_{\pi}(s)\sum_a\pi'(a|s)A_\pi(s,a) Lπ(π)=η(π)+sdπ(s)aπ(as)Aπ(s,a)
    • 第一项是常数不管、 ∑ s d π ( s ) \sum_s d_{\pi}(s) sdπ(s)可以换成 E s ∼ θ o l d E_{s\sim\theta_{old}} Esθold、优势函数可以换成Q函数(A与Q差一个常数项可以不管)、 ∑ a π ′ ( a ∣ s ) Q π ( s , a ) \sum_a\pi'(a|s)Q_\pi(s,a) aπ(as)Qπ(s,a)经过服从q的重要性采样变为 E a ∼ q ( π θ n e w ( a ∣ s ) q ( a ∣ s ) Q θ o l d ( s , a ) ) E_{a\sim q}(\frac{\pi_{\theta_{new}}(a|s)}{q(a|s)}Q_{\theta_{old}}(s,a)) Eaq(q(as)πθnew(as)Qθold(s,a))
    • 重要性采样: E x ∼ p ( f ( x ) ) = E x ∼ q ( p ( x ) q ( x ) f ( x ) ) E_{x\sim p}(f(x))=E_{x\sim q}(\frac{p(x)}{q(x)}f(x)) Exp(f(x))=Exq(q(x)p(x)f(x)) (证明见网站6)
  • 采样法
    • single-path : 按照 π θ o l d \pi_{\theta_{old}} πθold采样多个轨迹、用 ∑ γ n R n \sum\gamma^nR_n γnRn计算Q函数值
    • vine : 先踩多个轨迹、在指定n个点生成k个roll-out、大幅降低方差、适用于可reset环境
  • 参考网站: 1 2 3 4 5 6

PPO

  • 摘要: 数据可重复训练、是on-policy的policy-base算法
  • 现有算法问题
    • deep Q-learning (value-base): 难以处理连续动作空间
    • vanilla (policy-base) : on-policy+MC 导致数据利用率极低
    • TRPO (policy-base) : 复杂、不支持dropout, para-share等网络结构(为啥??)
  • TRPO改进版: m a x i m i z e   E s ( π θ n e w ( a ∣ s ) π θ o l d ( a ∣ s ) A t − β ⋅ K L ( π θ o l d , π θ n e w ) ) maximize\space E_s(\frac{\pi_{\theta_{new}}(a|s)}{\pi_{\theta_{old}}(a|s)}A_t-\beta\cdot KL(\pi_{\theta_{old}},\pi_{\theta_{new}})) maximize Es(πθold(as)πθnew(as)AtβKL(πθold,πθnew))
    • 把subject_to改为减号(惩罚项)、难以找到超参 β \beta β对于所有任务都有效、因此不建议采用
  • 替代的效用函数
    • 如果对r偏离1的距离没有限制,将引发过大的更新
    • TRPO原本的函数 : L C P I ( θ ) = E t ( π θ n e w ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) A t ) L^{CPI}(\theta)=E_t(\frac{\pi_{\theta_{new}}(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}A_t) LCPI(θ)=Et(πθold(atst)πθnew(atst)At)、梯度: E t ( π θ n e w ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) A t ∇ log ⁡ p θ n e w ( a t ∣ s t ) ) E_t(\frac{\pi_{\theta_{new}}(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}A_t\nabla\log p_{\theta_{new}}(a_t|s_t)) Et(πθold(atst)πθnew(atst)Atlogpθnew(atst))
    • PPO版函数 : L C L I P ( θ ) = E s ( m i n ( r , g ) ⋅ A t ) ) L^{CLIP}(\theta)=E_s(min(r,g)\cdot A_t)) LCLIP(θ)=Es(min(r,g)At))、其中 r = π θ n e w ( a ∣ s ) π θ o l d ( a ∣ s ) A t r=\frac{\pi_{\theta_{new}}(a|s)}{\pi_{\theta_{old}}(a|s)}A_t r=πθold(as)πθnew(as)At g = { ( 1 + ϵ ) A t ,   A > 0 ( 1 − ϵ ) A t ,   A < 0 g=\begin{cases}(1+\epsilon)A_t,\space A>0\\ (1-\epsilon)A_t,\space A<0\\ \end{cases} g={(1+ϵ)At, A>0(1ϵ)At, A<0
    • 自适应KL惩罚 : L K L P E N ( θ ) = E s ( r A t − β ⋅ K L ( θ , θ ′ ) ) L^{KLPEN}(\theta)=E_s(rA_t-\beta\cdot KL(\theta, \theta')) LKLPEN(θ)=Es(rAtβKL(θ,θ)) 、当KL散度过大时减小 β \beta β、此法效果差
    • 期望是对整个轨迹取,也就是若这个轨迹所采的点r跟1差带多,我就不用这个轨迹
  • AC版效用函数
    • AC含有价值函数与策略函数,效用函数+误差构成loss_function
    • L = E s ( L C L I P ( θ ) − c 1 L V F + c 2 S ) L=E_s(L^{CLIP}(\theta)-c_1 L^{VF}+c_2 S) L=Es(LCLIP(θ)c1LVF+c2S)、其中 L V F L^{VF} LVF是基于 T D λ TD_\lambda TDλ的误差、S是交叉熵(提高搜索能力)
  • 参考网站: 1 2

SAC

  • 概述 : off-policy, maximum_entropy, automatically tune temperature
  • 思路 :
    • 本文解决两个问题 : sample-efficiency 与 hyper-parameter(temperature)
    • on-policy算法sample-efficiency太差,需要使用off-policy。policy-base算法更新方式必为on-policy、因此此处需要使用Q-learning这个体系的算法以达到off-policy的目的
    • soft Q-learning在连续动作空间表现不佳、因此需要引入SAC的方法
    • 其中,在SAC方法使用了最大熵、这一惩罚项依赖于reward的大小、引入超参temperature以控制此项与原梯度的比率
  • 相关工作
    • actor-critic相关 : 基本都是用到on-policy更新方式、本文提出off-policy AC
    • off-policy相关 : 虽然有actor与critic两个网络,但具体实现方式与AC彼此迭代更新思想不同。如DDPG把actor与critic的更新在一次反向传导中完成(梯度一路从critic传到actor)、如此强耦合导致训练的不稳定。又如soft-Q目标是先找到 Q ∗ Q^* Q,然后用 Q ∗ Q^* Q生成policy、并没有彼此迭代更新。
  • Maximum_entropy
    • 形式 : π ∗ = a r g m a x π ∑ t E ( R t + α H ( π t ) ) \pi^*=argmax_\pi\sum_t E(R_t+\alpha H(\pi_t)) π=argmaxπtE(Rt+αH(πt))、其中 α \alpha α是温度系数
    • 好处 : 避免探索无用动作、多动作回报相似都可以探索
  • 价值函数
    • 更新形式 : Q ( s t , a t ) = R ( s t , a t ) + γ E s t + 1 ( V ( s t + 1 ) ) Q(s_t,a_t) = R(s_t,a_t) + \gamma Es_{_{t+1}}(V(s_{t+1})) Q(st,at)=R(st,at)+γEst+1(V(st+1)) 、可证明如此迭代能够收敛到 Q ∗ Q^* Q
    • 其中 : V ( s t ) = E a t [   Q ( s t + 1 , a t + 1 ) − α log ⁡ ( a t ∣ s t )   ] V(s_t) = E_{a_t}[\space Q(s_{t+1},a_{t+1})-\alpha \log(a_t|s_t)\space ] V(st)=Eat[ Q(st+1,at+1)αlog(atst) ]
  • 策略函数
    • π n e w = a r g m a x π ′ ∈ Π D K L ( π ′ ( ⋅ ∣ s t ) , exp ⁡ ( 1 α Q o l d π ( s t , ⋅ ) ) Z o l d π ) \pi_{new}=argmax_{_{\pi'\in\Pi}} D_{KL} (\pi'(\cdot|s_t), \frac{\exp(\frac{1}{\alpha}Q^\pi_{old}(s_t,\cdot))}{Z^{\pi}_{old}}) πnew=argmaxπΠDKL(π(st),Zoldπexp(α1Qoldπ(st,)))
    • 其中 π ′ \pi' π是满足高斯分布的函数、 π n e w \pi_{new} πnew Π \Pi Π中与 exp ⁡ ( 1 α Q o l d π ( s t , ⋅ ) ) Z o l d π \frac{\exp(\frac{1}{\alpha}Q^\pi_{old}(s_t,\cdot))}{Z^{\pi}_{old}} Zoldπexp(α1Qoldπ(st,))KL距离最接近的高斯函数
    • 其中 exp ⁡ ( 1 α Q o l d π ( s t , ⋅ ) ) Z o l d π \frac{\exp(\frac{1}{\alpha}Q^\pi_{old}(s_t,\cdot))}{Z^{\pi}_{old}} Zoldπexp(α1Qoldπ(st,))是利用policy_evaluation后的价值函数得到的基于能量的多峰策略分布(soft代表以e为底)、其中Z为归一化参数
    • 可以证明 Q π n e w ≥ Q π o l d Q^{\pi_{new}}\ge Q^{\pi_{old}} QπnewQπold、因此反复进行evaluation, improve可以收敛到最佳
  • 损失函数
    • { J Q ( θ ) = E s , a [ Q ( s t , a t ) − R ( s t , a t ) − γ E s t + 1 [ Q θ ˉ ( s t + 1 , a t + 1 ) − α log ⁡ π ϕ ( a t + 1 ∣ s t + 1 ) ] ] 2 J π ( ϕ ) = E s , a [ α log ⁡ π ( a t ∣ s t ) − Q θ ( s t , a t ) + Z o l d π ] \begin{cases} J_Q(\theta)=E_{s,a}[Q(s_t,a_t)-R(s_t,a_t)-\gamma E_{s_{t+1}}[Q_{\bar\theta}(s_{t+1},a_{t+1})-\alpha\log\pi_\phi(a_{t+1}|s_{t+1})]]^2 \\ J_\pi(\phi)=E_{s,a}[\alpha\log\pi(a_t|s_t)-Q_\theta(s_t,a_t)+Z^\pi_{old}] \end{cases} {JQ(θ)=Es,a[Q(st,at)R(st,at)γEst+1[Qθˉ(st+1,at+1)αlogπϕ(at+1st+1)]]2Jπ(ϕ)=Es,a[αlogπ(atst)Qθ(st,at)+Zoldπ]
    • { ∇ J Q ( θ ) = ∇ Q ( s t , a t ) [ Q ( s t , a t ) − R ( s t , a t ) − γ Q θ ˉ ( s t + 1 , a t + 1 ) + γ α log ⁡ π ϕ ( a t + 1 ∣ s t + 1 ) ] ∇ ϕ J π ( ϕ ) = ∇ ϕ α log ⁡ π ( a t ∣ s t ) − ∇ f [ Q θ ( s t , f ϕ ) − α log ⁡ π ( f ϕ ∣ s t ) ] ∇ ϕ f ϕ ( ϵ , s ) \begin{cases} \nabla J_Q(\theta)=\nabla Q(s_t,a_t)[Q(s_t,a_t)-R(s_t,a_t)-\gamma Q_{\bar\theta}(s_{t+1},a_{t+1})+ \gamma\alpha \log\pi_\phi(a_{t+1}|s_{t+1})] \\ \nabla_\phi J_\pi(\phi)=\nabla_\phi \alpha\log\pi(a_t|s_t) - \nabla_f[Q_\theta(s_t,f_\phi)-\alpha\log\pi(f_\phi|s_t)]\nabla_\phi f_\phi(\epsilon,s) \end{cases} {JQ(θ)=Q(st,at)[Q(st,at)R(st,at)γQθˉ(st+1,at+1)+γαlogπϕ(at+1st+1)]ϕJπ(ϕ)=ϕαlogπ(atst)f[Qθ(st,fϕ)αlogπ(fϕst)]ϕfϕ(ϵ,s)
    • 其中 Q θ ˉ Q_{\bar\theta} Qθˉ代表target网络、采取软更新,即 Q t + 1 = γ Q t ′ + ( 1 − γ ) Q t Q_{t+1}=\gamma Q_t' + (1-\gamma)Q_t Qt+1=γQt+(1γ)Qt
    • 其中 f ϕ ( ϵ , s ) f_\phi(\epsilon,s) fϕ(ϵ,s)代表采样函数, π \pi π网络输出 μ , σ \mu,\sigma μ,σ,还需要采样(将导致不可反向传播),因此引入 ϵ \epsilon ϵ(不可训练的随机变量),令 a = μ + ϵ σ a=\mu+\epsilon\sigma a=μ+ϵσ使反向传播可行,称为Re-parameterization技巧
    • 其中用高斯分布近似基于能量的多峰分布是因为,tractable的分布族才能使用re-parameterize技巧追踪梯度,选高斯是因为简单
  • 自适应 α \alpha α
    • 奖励R与熵的比率会因为任务不同、策略升级而变化,需要自适应 α \alpha α
    • m a x   E ( Q − α log ⁡ π ) max\space E(Q-\alpha\log\pi) max E(Qαlogπ) 问题变为 m a x   E ( r ) ,   s . t   E ( − log ⁡ π ) > H 0 max\space E(r),\space s.t\space E(-\log\pi)>H_0 max E(r), s.t E(logπ)>H0
  • 类似拉格朗日乘子法
    • h ( π ) = E ( − log ⁡ π ) − H 0 h(\pi)=E(-\log\pi)-H_0 h(π)=E(logπ)H0, f ( π ) = { E ( R ) ,   h ( π ) ≥ 0 − ∞ ,   h ( π ) ≤ 0 f(\pi)=\begin{cases} E(R),\space h(\pi)\ge0 \\ -\infty,\space h(\pi)\le0 \end{cases} f(π)={E(R), h(π)0, h(π)0
    • 构造函数 : L ( π , α ) = f ( π ) + α h ( π ) L(\pi,\alpha) = f(\pi) + \alpha h(\pi) L(π,α)=f(π)+αh(π)
    • 可以发现 : f ( π ) = m i n α ≥ 0 L ( π , α ) f(\pi)=min_{\alpha\ge0} L(\pi,\alpha) f(π)=minα0L(π,α)、其中 α = { 0 ,   h ≥ 0 − ∞ , h < 0 \alpha=\begin{cases} 0,\space h\ge0 \\-\infty,h<0 \end{cases} α={0, h0,h<0
    • 因此 : max ⁡ π f ( π ) = m a x π m i n α ≥ 0 L ( π , α ) \max_\pi f(\pi)=max_\pi min_{\alpha\ge 0}L(\pi,\alpha) maxπf(π)=maxπminα0L(π,α)
    • 因此 : max ⁡ π E π ( R ) = m i n α ≥ 0 m a x π   E π ( R − α log ⁡ π − α H 0 ) \max_\pi E_\pi(R)= min_{\alpha\ge 0}max_\pi\space E_\pi(R-\alpha\log\pi-\alpha H_0) maxπEπ(R)=minα0maxπ Eπ(RαlogπαH0)
  • **更新公式 : **
    • 依次算出 : { π ′ = a r g m a x π   E π ( R − α log ⁡ π − α H 0 ) α ′ = a r g m i n α ≥ 0   E π ( α log ⁡ π ′ − α H 0 ) \begin{cases} \pi'=argmax_\pi\space E_\pi(R-\alpha\log\pi-\alpha H_0) \\ \alpha'=argmin_{\alpha\ge 0}\space E_\pi(\alpha\log\pi'-\alpha H_0) \end{cases} {π=argmaxπ Eπ(RαlogπαH0)α=argminα0 Eπ(αlogπαH0)
    • 因此 : Q ( s t , a t ) = E ( R t ) + E [ Q θ ˉ ( s t + 1 , a t + 1 ) − α ′ log ⁡ π ′ ( a t ∣ s t ) ] Q(s_t,a_t) = E(R_t) + E[Q_{\bar\theta}(s_{t+1},a_{t+1})-\alpha'\log\pi'(a_t|s_t)] Q(st,at)=E(Rt)+E[Qθˉ(st+1,at+1)αlogπ(atst)]
    • 经推导可知t,t-1时刻公式相同因此可用动态规划迭代求解到收敛
  • 参考网站 : 1 2 3 4

DRQ

  • 思想: 将数据增强用在强化学习中有降低方差的效果(与传统监督学习的数据增强操作上有所差异)

RND

  • 概述 : 外在奖励 e t e_t et + + + 好奇心奖励 i t i_t it

    加入好奇心奖励(exploration_bonus)能鼓励探索、本文能在增加极少计算量的情况下获取良好的好奇心奖励、使模型能避开对无用的随机场景的探索(如随机环境)、专注于探索有用的新场景

  • 相关工作:

    • 计数,让 i t = 1 / n t i_t=1/n_t it=1/nt i t = 1 / n t i_t=1/\sqrt n_t it=1/n t,其中 n t n_t nt是造访过的历史次数。在连续场境下,可以把 n t n_t nt推广为造访次数的密度
    • 预测误差,用类似model-base的transition函数的预测误差来表示 i t i_t it
    • 理论依据,神经网络对训练集内的数据有较低的loss、因此可以用预测误差代表状态是否新颖、实验: 在手写数字识别网络中,数据集有很多0很少1,随着网络看过的1增多其误差单调递减、成功验证预测误差与造访次数的负相关性
  • 核心算法 : target-network f f f 与 predictor-network f ^ \hat f f^

    • 随机初始化 f f f参数、从此不再更新
    • f ^ θ \hat f_\theta f^θ参数是可训练的、损失函数 L = ∣ f ( x ) − f ^ θ ( x ) ∣ 2 L=|f(x)-\hat f_\theta(x)|^2 L=f(x)f^θ(x)2
    • f , f ^ f,\hat f f,f^把输入从空间O映射到相同的特征空间 R k R^k Rk中,并随着训练过程使得两者距离尽量小
    • 只用一次前向传播就能得到 i t i_t it、不增加太多开销
    • 与知识蒸馏关联 : 可以把 f f f看作教师模型,学生 f ^ \hat f f^需要尽可能的去拟合 f f f的输出值、只能说执行的过程是相同的,但并不是传统意义上的蒸馏(目的不同: 完成了类似计数的功能)
  • 预测误差来自四个方面

    • 网络没看过这个状态,导致预测误差大
    • 环境具有随机性、无法精确预测
    • 模型选择不对、可能是模型表现能力不足、映射后的特征空间不匹配、缺乏关键输入信息等
    • 优化过程中预测效果不显著
    • 我们希望保留第一个误差来源、尽可能减少2,3,4造成的误差
  • 降低不必要误差

    • 环境具有随机性: 我们可以用预测误差减少的量,而非误差的绝对值来刻画好奇心奖励,但这样需要增加很大的计算量。如果使用绝对误差,可能因为环境的随机性导致某个状态永远无法预测正确、进而agent被卡在这个状态中
    • 环境具有随机性: 选用确定性的目标网络(神经网络)、就能获得确定性的输出,我们不尝试去学习model-base中的transition函数(因为它具有随机性)、而引入本文提出的方法(即使用 f , f ^ f,\hat f f,f^的误差)
    • 模型选择不对: 目标网络与预测网络选用结构相同网络、保证表达能力相同且映射后的特征空间匹配
  • 训练细节

    • 好奇心奖励在game_over后不应该被置零、否则会变得胆小
    • 外在奖励在game_over后应该被置零、否则会选择在起点附近搜索小奖励然后自杀如此循环
    • 好奇心奖励 γ \gamma γ应该 < \lt <外在奖励 γ \gamma γ。综上、为了让两者能够使用不同的更新方法应该维护两个 V V V函数、然后相加,称为n_head
    • 由于目标网络不训练、需要正则化输入s的大小、避免目标因为受输入影响
  • 与model-base区别

    • model-base需要得到函数 f f f,能把 s , a s,a s,a映射到 s ′ s' s、对于随机性游戏难以精准预测、用此误差作为好奇心奖励可能导致智能体被困在具随机性的步骤中 (如在两个房间的边缘来回走动)
    • RND可以理解为类似计数器、他只负责把 s s s映射到 v v v (计数器的次数)、跟 s ′ s' s没有关系
  • 参考网站: 1 2

A3C

GAE

  • 方差与误差对结果影响 : 高方差(单步动作效益难以体现)、高误差(可能导致不收敛)

  • 思路 :

    • 从传统PG方法出发、依次引入 γ , λ \gamma,\lambda γ,λ两个参数在方差与误差间取舍
    • γ \gamma γ : 是传统方法中的折扣因子,此处视之为减小方差的参数
    • λ \lambda λ : 沿用了 T D ( λ ) TD(\lambda) TD(λ)中的思想,在TD与MC中取得折衷方案(也就是在方差与误差中取舍)
    • 从reward-shaping角度出发重新看待GAE
  • 传统的PG算法

    • g = E [ ∑ t Ψ π ∇ θ log ⁡ π θ ( a t ∣ s t ) ] g = E[\sum_t \Psi^\pi \nabla_\theta\log\pi_\theta(a_t|s_t)] g=E[tΨπθlogπθ(atst)]

    • 其中 Ψ π \Psi^\pi Ψπ可取以下值(注意此处用的是无折扣奖励)

      ∑ t = 0 ∞ r t \sum_{t=0}^\infty r_t t=0rt Q π ( s t , a t ) Q^\pi(s_t,a_t) Qπ(st,at) ∑ t ′ = t ∞ [ r t ′ − b ( s t ) ] \sum_{t'=t}^\infty[r_{t'}-b(s_t)] t=t[rtb(st)]
      ∑ t ′ = t ∞ r t ′ \sum_{t'=t}^\infty r_{t'} t=trt A π ( s t , a t ) A^\pi(s_t,a_t) Aπ(st,at) r t + V π ( s t + 1 ) − V π ( s t ) r_t+V^\pi(s_{t+1})-V^\pi(s_t) rt+Vπ(st+1)Vπ(st)
  • 引入 γ \gamma γ因子

    • 其中 A π A^\pi Aπ是所有表达式中方差最小的,以下着重讨论
    • 原公式 : V π ( s t ) = E a   t : ∞ s   t + 1 : ∞ ( ∑ l r t + l )   ;   Q π ( s t , a t ) = E a   t + 1 : ∞ s   t + 1 : ∞ ( ∑ l r t + l )   ;   A π = Q π − V π V^\pi(s_t)=E^{s\space t+1:\infty}_{a\space t:\infty}(\sum_l r_{t+l})\space;\space Q^\pi(s_t,a_t)=E^{s\space t+1:\infty}_{a\space t+1:\infty}(\sum_l r_{t+l})\space ;\space A^\pi=Q^\pi-V^\pi Vπ(st)=Ea t:s t+1:(lrt+l) ; Qπ(st,at)=Ea t+1:s t+1:(lrt+l) ; Aπ=QπVπ
    • 引入后 : V π , γ = E a   t : ∞ s   t + 1 : ∞ ( ∑ l γ l r t + l )   ;   Q π , γ = E a   t + 1 : ∞ s   t + 1 : ∞ ( ∑ l γ l r t + l )   ;   A π = Q π − V π V^{\pi,\gamma}=E^{s\space t+1:\infty}_{a\space t:\infty}(\sum_l \gamma^l r_{t+l})\space;\space Q^{\pi,\gamma}=E^{s\space t+1:\infty}_{a\space t+1:\infty}(\sum_l \gamma^l r_{t+l})\space ;\space A^\pi=Q^\pi-V^\pi Vπ,γ=Ea t:s t+1:(lγlrt+l) ; Qπ,γ=Ea t+1:s t+1:(lγlrt+l) ; Aπ=QπVπ
    • 可以发现 V π , γ , Q π , γ V^{\pi,\gamma},Q^{\pi,\gamma} Vπ,γ,Qπ,γ相较于 V π , Q π V^\pi,Q^\pi Vπ,Qπ是有偏的( E ( V ) ≠ E ( V γ ) ) E(V)\neq E(V^\gamma)) E(V)=E(Vγ)),引入 γ \gamma γ将产生误差
    • 引入 γ \gamma γ后,未来收益(不确定性高)指数衰减,因此方差降低
  • γ − j u s t \gamma-just γjust

    • A ^ \hat A A^ γ − j u s t \gamma-just γjust,则代表 A ^ \hat A A^是折扣奖励梯度的无偏估计,即 E [ A ^ ∇ log ⁡ π ( a ∣ s ) ] = E [ A π , γ ∇ log ⁡ π ( a ∣ s ) ] E[\hat A\nabla\log\pi(a|s)]=E[A^{\pi,\gamma}\nabla\log\pi(a|s)] E[A^logπ(as)]=E[Aπ,γlogπ(as)]

    • 注意上面是指梯度的无偏估计,因此可引入一个不影响梯度的函数 b b b使得 A ^ \hat A A^仍是 γ − j u s t \gamma-just γjust A ^ \hat A A^可取以下值

      ∑ l = 0 ∞ γ l r t + l \sum_{l=0}^\infty \gamma^lr_{t+l} l=0γlrt+l A π , γ ( s t , a t ) A^{\pi,\gamma}(s_t,a_t) Aπ,γ(st,at)
      Q π , γ ( s t , a t ) Q^{\pi,\gamma}(s_t,a_t) Qπ,γ(st,at) r t + γ V π , γ ( s t + 1 ) − V π , γ ( s t ) r_t+\gamma V^{\pi,\gamma}(s_{t+1})-V^{\pi,\gamma}(s_t) rt+γVπ,γ(st+1)Vπ,γ(st)
  • A ^ t ( k ) \hat A_t^{(k)} A^t(k)

    • 定义 : δ t = r t + γ V ( s t + 1 ) − V ( s t ) \delta_t=r_t+\gamma V(s_{t+1})-V(s_t) δt=rt+γV(st+1)V(st)

    • A ^ t ( 1 ) = δ t = r t + γ V ( s t + 1 ) − V ( s t ) \hat A_t^{(1)}=\delta_t=r_t+\gamma V(s_{t+1})-V(s_t) A^t(1)=δt=rt+γV(st+1)V(st)

      A ^ t ( 2 ) = δ t + γ δ t + 1 = r t + γ r t + 1 + γ 2 V ( s t + 2 ) − V ( s t ) \hat A_t^{(2)}=\delta_t+\gamma\delta_{t+1}=r_t+\gamma r_{t+1}+\gamma^2 V(s_{t+2})-V(s_t) A^t(2)=δt+γδt+1=rt+γrt+1+γ2V(st+2)V(st)

      A ^ t ( k ) = ∑ l γ l δ t + l = r t + γ r t + 1 + γ 2 r t + 2 . . . + γ k V ( s t + k ) − V ( s t ) \hat A_t^{(k)}=\sum_l\gamma^l\delta_{t+l}=r_t+\gamma r_{t+1}+\gamma^2r_{t+2}...+\gamma^k V(s_{t+k})-V(s_t) A^t(k)=lγlδt+l=rt+γrt+1+γ2rt+2...+γkV(st+k)V(st)

    • 其中 A ^ t ( 1 ) \hat A_t^{(1)} A^t(1) γ − j u s t \gamma-just γjust的条件是 V ( s ) = V π , γ ( s ) V(s)=V^{\pi,\gamma}(s) V(s)=Vπ,γ(s)。但对于 A ^ t ( k ) \hat A_t^{(k)} A^t(k)来说当 k → ∞ k\rightarrow\infty k时不管 V ( s ) V(s) V(s)是啥都是 γ − j u s t \gamma-just γjust了,因为此时 γ k V ( s t + k ) \gamma^kV(s_{t+k}) γkV(st+k)非常小、 V ( s t ) V(s_t) V(st)对梯度没有影响

  • 引入 λ \lambda λ因子

    • 类似 T D ( λ ) TD(\lambda) TD(λ)引入 λ \lambda λ因子,在MC与TD中找到平衡,( T D ( λ ) TD(\lambda) TD(λ)是对 V V V操作此处是对 A A A操作)

    • 最终得到 A ^ G A E ( λ , γ ) = ( 1 − λ ) ( A ^ t ( 1 ) + λ A ^ t ( 2 ) + λ 2 A ^ t ( 3 ) . . . ) = ∑ l ( λ γ ) l δ t + l V \hat A^{GAE(\lambda,\gamma)}=(1-\lambda)(\hat A_t^{(1)}+\lambda\hat A_t^{(2)}+\lambda^2\hat A_t^{(3)}...)=\sum_l(\lambda\gamma)^l\delta_{t+l}^V A^GAE(λ,γ)=(1λ)(A^t(1)+λA^t(2)+λ2A^t(3)...)=l(λγ)lδt+lV

    • T D TD TD : G A E ( γ , 0 ) : r t + γ V ( s t + 1 ) − V ( s t ) GAE(\gamma,0): r_t+\gamma V(s_{t+1})-V(s_t) GAE(γ,0):rt+γV(st+1)V(st) 、只有当 V = V γ , π V=V^{\gamma,\pi} V=Vγ,π时才是 γ − j u s t \gamma-just γjust (unbias)

      M C : G A E ( γ , 1 ) : ∑ l γ l r t + 1 − V ( s t ) MC : GAE(\gamma,1) : \sum_l \gamma^lr_{t+1}-V(s_t) MC:GAE(γ,1):lγlrt+1V(st) γ − j u s t \gamma-just γjust但是高方差(因为是MC)

  • γ \gamma γ λ \lambda λ的关系

    • γ \gamma γ决定 V γ , π V^{\gamma,\pi} Vγ,π是不是无偏的、若有偏将引入误差
    • λ \lambda λ决定MC与TD的程度、当 γ = 1 , λ < 1 \gamma=1,\lambda<1 γ=1,λ<1时不引入误差、但当 γ < 1 , λ < 1 \gamma<1,\lambda<1 γ<1,λ<1时将引入误差、实验证明 λ \lambda λ取值可以比 γ \gamma γ来的小
  • 参考网站 : 1 2

D2R2

  • 概述: RNN网络的初始输入是本文重点探讨问题。

    某些环境不满足MDP特性、RNN被引入来解决此类POMDP问题,分布式RL导致必须使用经验回放、经验回放将导致rnn_state初始状态有偏进而影响训练效果,比较四种rnn_state初始值的获取方法,分析误差来源,最终结合两种方法以达到最好效果

  • RNN

    • 在观测o与全局状态s不相同时,环境不满足MDP性,变为POMDP
    • 在o不满足MDP时 Q ( o , a ) Q(o,a) Q(o,a)估计是不准确的,因此需要把o映射到s(s满足MDP)后求 Q ( s , a ) Q(s,a) Q(s,a)才能降低误差
    • RNN网络完成的就是这样的一个映射,即 ( o , h ) → s (o,h) \rightarrow s (o,h)s
  • Baseline:

    • Ape-X : 分布式架构、priority_buffer、n-steps return、double network、dueling network、4 frame-stacking (以获取时间序列上的信息) 、并未使用RNN作为网络结构、D2R2=Ape-X + RNN
    • IMPALA : 分布式架构,replay_buffer采用FIFO、每个数据只被使用一次、用重要性采样解决延迟问题(因为数据最多被用一次所以偏差不大)、roll_out时保存episode的rnn_state初始状态、训练时以之初始化rnn_state
  • rnn_state初始状态获取方法

    • 法一: 记录整个轨迹、可以得到真实的rnn_state。无偏但存储与计算量大、数据相关性高导致训练可能不稳定

    • 法二: 每个batch的rnn_state初始值设为零。可以降低各个batch之间的相关性、有偏的初始值导致RNN网络无法有效利用历史信息、Q函数降低对历史信息的依赖(失去引入RNN的初衷)

    • 法三: roll_out时储存rnn_state初始值,训练时以之初始化。可能因为训练与roll_out的policy不同而引入误差(称为representational drift, recurrent state staleness)

    • burn-in: buffer中的前m个数据不用来训练只用来得到初始rnn_state

  • Q-value discrepancy

    • 为量化初始rnn_state误差,引入 Δ Q \Delta Q ΔQ。比较roll_out时rnn_state的真实初始值与训练时初始值的差值
    • 定义: Δ Q = ∑ i ( q ( h ^ t + i , θ ^ ) − q ( h t + i , θ ^ ) ) 2 ∣ m a x a , j   q ( h ^ t + j , θ ^ ) ∣ \Delta Q = \frac{\sqrt{\sum_i(q(\hat h_{t+i}, \hat\theta)-q(h_{t+i}, \hat\theta))^2}}{|max_{_{a,j}}\space q(\hat h_{t+j},\hat\theta)|} ΔQ=maxa,j q(h^t+j,θ^)i(q(h^t+i,θ^)q(ht+i,θ^))2 其中 h ^ , θ ^ \hat h,\hat\theta h^,θ^代表训练时的rnn_state与模型参数、h代表roll_out时的rnn_state、 Δ Q \Delta Q ΔQ越大初始化rnn_state对于 h i h_i hi的负面影响越大
    • 注意此处着重讨论rnn_state初始值对 h i h_i hi的影响,因此都使用 θ ^ \hat\theta θ^,这样相较 θ \theta θ来说是有偏的、但这样的偏差来源类似于没做off-policy-correction所导致的误差,不在此处讨论范围可以不考虑
  • 实验与结论

    • 法三 Δ Q \Delta Q ΔQ小于法二、且法二在 i i i很小的时候误差更大(证明burn-in的合理性)
    • 法四避免模型在 i i i很小时被错误更新、实验证明可以提升性能 (避免错误更新能增加模型对RNN的依赖)
    • 随着rnn所使用的轨迹长度减小,性能单调下降,证明RNN的有效性。且发现在非POMDP场景引入RNN也能有效提升性能
    • 最终方法: 结合法三与法四、最小化rnn_state初始值引入的误差
  • 参考网站: 1 2

PopArt

核心论文 : Multi-task Deep Reinforcement Learning with PopArt
  • 思路:
    • 需要训练一个策略能同时解决多个相似任务(动作与状态空间部份共享),采用平行训练多任务方法,这种同时训练的方法将导致各个任务竞争资源,因此需要确保各个任务获得的奖励相同
    • 传统缩放奖励方法与问题
      • 手动选取缩放倍数 : 每个任务都不相同手选不现实、随策略性能提升、获取奖励逐渐增加、缩放倍数应该随之调整
      • clipping(限制过大的奖励) : 将导致reward反映的是奖励的频率而非大小
      • PopArt可以标准化奖励、使各个任务的奖励大小与频率被归一化 (见前身论文)
  • 多任务训练实现细节
    • 使用AC架构、Critic输入包含任务id、Actor不包含,也就是智能体在训练时能够知道所要解决的任务但在测试时需要直接从观测中分辨所处场景
    • 具体来说actor与critic更新公式分别如下、注意critic在n个任务时有n个输出、而actor总是输出联合动作分布(符合上一条所述内容)。更新则是一个任务一个任务地更新( i = 0 , 1 , . . . , n i=0,1,...,n i=0,1,...,n)。
      • Δ θ ∝ [ G t v , i − μ i σ i − n i ( S t ) ] ∇ θ n θ i ( S t ) \Delta\theta\propto[\frac{G_t^{v,i}-\mu_i}{\sigma_i}-n^i(S_t)]\nabla_{_\theta} n^i_\theta(S_t) Δθ[σiGtv,iμini(St)]θnθi(St)
      • Δ η ∝ [ G t π , i − μ i σ i − n i ( S t ) ] ∇ η log ⁡ π η ( A ∣ S ) \Delta\eta\propto[\frac{G_t^{\pi,i}-\mu_i}{\sigma_i}-n^i(S_t)]\nabla_{_\eta}\log\pi_\eta(A|S) Δη[σiGtπ,iμini(St)]ηlogπη(AS)
    • IMPALA架构(有中心learner与并行actor、刚好可以让每个任务作为一个actor)
前身论文 : learning values across many orders of magnitude
  • 思路: 引入两组独立更新参数 Σ , μ \Sigma,\mu Σ,μ W , b W,b W,b,使得奖励 Y Y Y标准化为 Y ^ \hat Y Y^,且 Y Y Y Y ^ \hat Y Y^的对应关系在梯度更新后不改变

  • POP : 为所有输入保存标准化前的输出 :

    • 如果归一化参数不断在变,将导致拟合的目标不断改变、难以收敛
    • 标准化输出 : Y ^ = Σ − 1 ( Y − μ ) \hat Y = \Sigma^{-1}(Y-\mu) Y^=Σ1(Yμ)、原输入 : Y = f θ , Σ , μ , W , b ( x ) = Σ k x k ( W k x m h m x 1 + b k x 1 ) + μ k x 1 Y=f_{_{\theta,\Sigma,\mu,W,b}}(x) = \Sigma_{_{kxk}}(W_{_{kxm}}h_{_{mx1}}+b_{_{kx1}})+\mu_{_{kx1}} Y=fθ,Σ,μ,W,b(x)=Σkxk(Wkxmhmx1+bkx1)+μkx1、推导如下
    • 我们希望学到权重 Σ \Sigma Σ以及 μ \mu μ、使得Y被归一化,由于 Y ^ = Σ − 1 ( Y − μ ) \hat Y = \Sigma^{-1}(Y-\mu) Y^=Σ1(Yμ)所以 Y = Σ Y ^ + μ Y = \Sigma\hat Y + \mu Y=ΣY^+μ,如果直接这样反向传播会出问题,也就是假设 Y ^ 1 = Σ 1 − 1 ( Y 1 − μ 1 ) \hat Y_1 = \Sigma_1^{-1}(Y_1-\mu_1) Y^1=Σ11(Y1μ1),那么权重更新后我们得到 Y ^ 1 ≠ Σ 2 − 1 ( Y 1 − μ 2 ) \hat Y_1\neq\Sigma_2^{-1}(Y_1-\mu_2) Y^1=Σ21(Y1μ2)也就是需要拟合的目标在变化,将导致不收敛
    • 为了让 Y ^ 1 = Σ 2 − 1 ( Y 1 − μ 2 ) \hat Y_1=\Sigma_2^{-1}(Y_1-\mu_2) Y^1=Σ21(Y1μ2)。我们把标准化后输出 Y ^ \hat Y Y^改写成 W h + b Wh+b Wh+b可得 Y = Σ ( W h + b ) + μ Y =\Sigma(Wh+b)+\mu Y=Σ(Wh+b)+μ、其中 W h + b Wh+b Wh+b可以看做多加一层全连接层。我们规定 Σ \Sigma Σ μ \mu μ更新时 W W W b b b也要相应的进行更新使得 Y Y Y Y ^ \hat Y Y^的关系保持因此得到如下公式
    • W n e w = Σ n e w − 1 Σ W W_{new}=\Sigma_{new}^{-1}\Sigma W Wnew=Σnew1ΣW 以及 b n e w = Σ n e w − 1 ( Σ b + μ − μ n e w ) b_{new}=\Sigma^{-1}_{new}(\Sigma b+\mu-\mu_{new}) bnew=Σnew1(Σb+μμnew)
  • ART 标准化 :

    • 使用指数下降的滚动平均 : { E t + 1 ( Y ) = ( 1 − β ) E t ( Y ) + β Y t + 1 E t + 1 ( Y 2 ) = ( 1 − β ) E t ( Y 2 ) + β Y t + 1 2 σ = E t + 1 ( Y 2 ) − E t + 1 ( Y ) 2 \begin{cases} E_{_{t+1}}(Y)=(1-\beta)E_{_t}(Y)+\beta Y_{t+1}\\ E_{_{t+1}}(Y^2)=(1-\beta)E_{_t}(Y^2)+\beta Y^2_{t+1}\\\sigma = E_{_{t+1}}(Y^2)-E_{_{t+1}}(Y)^2 \end{cases} Et+1(Y)=(1β)Et(Y)+βYt+1Et+1(Y2)=(1β)Et(Y2)+βYt+12σ=Et+1(Y2)Et+1(Y)2
    • 需要注意 β \beta β不能太小,否则当 Y t + 1 Y^{t+1} Yt+1很大时滚动平均变化不大、 Σ , μ \Sigma,\mu Σ,μ变化不大导致 W , b W,b W,b变化不大、造成误差 δ \delta δ很大影响更新步长
    • s 1 − β β ≥ Y − μ σ ≥ − s 1 − β β s\sqrt{\frac{1-\beta}{\beta}}\ge\frac{Y-\mu}{\sigma}\ge-s\sqrt{\frac{1-\beta}{\beta}} sβ1β σYμsβ1β 、其中s是一常数
    • 由上面不等式可以推出在给定 β \beta β的条件下,误差(正比于Y)被限制在一定范围、可通过调s跟 β \beta β完成scaling
  • Normalized-SGD

    • 接下来提出一种与POPART等效的更新算法
    • Y = W Y ^ θ + b Y=W\hat Y_\theta+b Y=WY^θ+b、更新 θ \theta θ的公式改为 θ \theta θ<- θ − α J ( Σ − 1 W ) T ( Σ − 1 δ ) \theta-\alpha J(\Sigma^{-1}W)^T(\Sigma^{-1}\delta) θαJ(Σ1W)T(Σ1δ)其他正常
    • 其中 Σ \Sigma Σ是滚动方差、因为 W , δ W,\delta W,δ都与Y的Scale成正比因此 Y ^ θ \hat Y_\theta Y^θ的更新会与scale成平方的关系是我们不乐见的。因此需要在更新 θ \theta θ时除以方差将他消除
  • 小结:

    • POPART : Y = Σ ( W Y ^ + b ) + μ Y =\Sigma(W\hat Y+b)+\mu Y=Σ(WY^+b)+μ、更新 Σ , μ \Sigma,\mu Σ,μ、相应调整 W , b W,b W,b、标准化更新 W Y ^ + b W\hat Y+b WY^+b
    • Nor-SGD : Y = W Y ^ θ + b Y=W\hat Y_\theta+b Y=WY^θ+b、正常更新 W , b W,b W,b、标准化更新 Y ^ \hat Y Y^
    • 其中POPART的标准化更新是指 δ = ( W Y ^ + b ) − Σ − 1 ( Y t − μ ) \delta=(W\hat Y+b)-\Sigma^{-1}(Y_t-\mu) δ=(WY^+b)Σ1(Ytμ)、N-SGD没有 Σ , μ \Sigma,\mu Σ,μ所以标准化更新改为对权重与偏差的标准化,即 θ \theta θ-> θ − α J ( Σ − 1 W ) T ( Σ − 1 δ ) \theta-\alpha J(\Sigma^{-1}W)^T(\Sigma^{-1}\delta) θαJ(Σ1W)T(Σ1δ)
    • N-SGD正常更新W,b = POPART中标准化更新W,b + 相应调整W,b
    • 论文中的思路 : Σ , μ \Sigma,\mu Σ,μ是一个网络、 W Y ^ + b W\hat Y+b WY^+b是一个网络、前者负责缩放后者负责拟合、两者更新方式不同且独立运行、为了让缩放不影响拟合(不改变 Y , Y ^ Y,\hat Y Y,Y^的关系)、需要做出相应调整
  • 参考网站 : 1

Go-Explore

  • detachment : 不再对某块区域进行探索、可能是太久没去被遗忘

    derailment : 无法回到想要某个状态 (高 ϵ \epsilon ϵ导致到达状态概率低、低 ϵ \epsilon ϵ导致探索不足)

  • 从archive拿出一个暂态、从这个状态开始探索、把探索得到的新状态加入archive。archive可视为边界的存储器、可以防止detachment。状态空间太高维archive会太大、在此用降采样计数降低维数、每个cell只存储一个状态(最短路径)

  • 探索只需要在边界探索、但你要保证线走到边界、so first return(到边界) and explore。 ϵ − g r e e d y \epsilon-greedy ϵgreedy方法可能derailment(到不了边界)

  • 可以利用domain_specific的知识来构建archive、对原本的RL算法无任何影响。IM方法难加domain_specific奖励。例如: 如果将水平像素差距不大的两帧画面称为邻居、则没有邻居的画面有较高的概率是边界(应该多选他)

  • policy-base比restored state的方式更有效、探索时可以用policy而非随机动作增加效率

  • sticky-action比no-ops效果差

  • archive中cell的选取与该状态被访问的次数负相关

  • policy-base: 应该更多的选取造访次数少的cell、需要确保能够回到该状态以及在回到该状态的过程中也能够探索。

QMIX

摘要 : 中心化训练(引入状态s)、分布式执行(只用观察o)、中心Q是个体Q的非线性叠加

  • Independent Q-learning : 分开训练、A是B的环境、环境在变容易不收敛、某些情况效果好

    centralized learning : 把所有人的状态与动作合并造成数据高维(不支持超多智能体)、中心化训练难以分布式执行(执行时无s只有o)、COMA使用AC框架(只能on-policy)、

    Centralized Training with Decentralized Execution : 中心训练确保收敛、分布执行确保可执行性

  • VDN(QMIX前身)

    • credit assignment问题 : 共用Q导致虚假奖励(奖励可能来自队友)、惰性智能体问题 -> 训练各自Q解决之

    • 核心假设 : Q ( ( h 1 , . . h d ) , ( a 1 , . . . a d ) ) = ∑ 1 d Q i ( h i , a i ) Q((h_1,..h_d),(a_1,...a_d))=\sum_1^d Q_i(h_i,a_i) Q((h1,..hd),(a1,...ad))=1dQi(hi,ai)

      其中d是智能体数、h是历史序列信息、此处 Q i Q_i Qi不是价值函数(即不用去逼近 ∑ γ n R \sum\gamma^n R γnR )

    • VDN的问题 : 线性叠加限制了函数表达能力、未使用全局状态s

  • 只要满足 a r g m a x Q t o t a l = ( a r g m a x Q 1 . . . a r g m a x Q n ) argmaxQ_{total}=\begin{pmatrix} argmaxQ_1\\ ...\\ argmaxQ_n \end{pmatrix} argmaxQtotal=argmaxQ1...argmaxQn、或等价表示 d Q t o t a l d Q i ≥ 0 \frac{dQ_{total}}{dQ_i}\ge0 dQidQtotal0,就能中心训练分布执行(训练多个单体Q后、monotonically求和)。VDN用线性表现能力差、因此QMIX用权重为正的MLP增加表现能力。

  • 单体效用函数 : Q i ( τ i , a i , i ) Q_i(\tau^i, a_i, i) Qi(τi,ai,i)、其中i代表第i个智能体、 τ \tau τ代表智能体的历史观测与动作、使用DRQN(RNN网络结构)、使用权重共享(即每个智能体共用同一个网络、只是网络输入含有id)

  • 参数网络(hypernetwork) : 输入整体状态s输出网络参数W、输出前过一个激活函数确保参数是非负的、不把s作为输入而搞了个这是因为s没有如上 Q i Q_i Qi Q t o t a l Q_{total} Qtotal同向的限制增加表达能力

  • 总体效用函数 : L ( θ ) = ∑ i = 1 b ( R + γ max ⁡ u ′ Q ( τ ′ , s ′ , u ′ , θ ′ ) − Q ( τ , s , u , θ ) ) L(\theta)=\sum_{i=1}^b(R+\gamma\max_{u'} Q(\tau', s',u',\theta')-Q(\tau, s,u,\theta)) L(θ)=i=1b(R+γmaxuQ(τ,s,u,θ)Q(τ,s,u,θ))、其中u是所有人的动作、s是所有人的状态、 θ ′ \theta' θ是目标网络参数

  • 参考网站: 1 2 3

CDS

  • 参考网站 : 1

MAPPO

  • 摘要 : 中心化训练、以PPO方法、提出五种tips,是一篇创新性低技巧性强的文章

  • 相关工作:

    • 中心学习+执行(缺点:只能合作)、分布学习+执行(缺点:可能不收敛)、中心学习分布执行(COMA)、值分解(QMIX)
    • 目前单智能体 : off-policy(SAC等)胜过on-policy(PPO等)
  • 核心算法

    • actor更新: L ( θ ) = E [ ∑ k m i n ( r θ ( k ) A ( k ) , c l i p ( r θ ( k ) , 1 − ϵ , 1 + ϵ ) A ( k ) ) ] L(\theta)=E[\sum_kmin(r_\theta^{(k)}A^{(k)},clip(r_\theta^{(k)},1-\epsilon,1+\epsilon)A^{(k)})] L(θ)=E[kmin(rθ(k)A(k),clip(rθ(k),1ϵ,1+ϵ)A(k))]、其中 r θ ( k ) = π θ ( a ∣ o ) π θ o l d ( a ∣ o ) r_\theta^{(k)}=\frac{\pi_\theta(a|o)}{\pi_{\theta_{old}}(a|o)} rθ(k)=πθold(ao)πθ(ao)
  • critic更新: critic更新: L ( ϕ ) = E [ ∑ k m a x ( [ V ϕ ( s ) − R ^ ] 2 , ( c l i p [ V ϕ ( s ) , V ϕ o l d ( s ) − ϵ , V ϕ o l d ( s ) + ϵ ] − R ^ ) 2 ] L(\phi)=E[\sum_kmax([V_\phi(s)-\hat R]^2,(clip[V_\phi(s),V_{\phi_{old}}(s)-\epsilon,V_{\phi_{old}}(s)+\epsilon]-\hat R)^2] L(ϕ)=E[kmax([Vϕ(s)R^]2,(clip[Vϕ(s),Vϕold(s)ϵ,Vϕold(s)+ϵ]R^)2]

    • 网络结构: 输入观测 -> BASE(CNN/MLP) -> COMMON(MLP) -> RNN(需要输入上个rnn_state) -> ACTOR/CRITIC(MLP) -> 输出动作或值函数(此处需要做额外处理如采样或PopArt等)
  • RNN网络: 在每个轨迹的起始rnn-state为零,而后上个输出是下个输入

  • tips:

    • Value-normalization : PopArt用滚动平均与方差来归一化输出值
    • Agent-Specific Global State : 既含有全局又有局部信息的状态s作为中心化critic输入会更有效。如果直接拼接o得到s会因为维度爆炸而无法收敛。如果只使用全局信息s而不包含局部信息可能会导致重要的局部信息缺失,若s挑选错误反而效果会更糟。
    • Data-usage : PPO属于on-policy算法,在使用重要性采样后可以稍稍往off-policy靠,因此传统PPO通常能够重复利用数据10次左右。但经实验证明,在MAPPO中数据无法使用多次,否则效果会变遭,推测是环境不稳定的原因。此外,MAPPO引入的方差比单智能体大的多,因此大的batch-size对MAPPO来说效果会更好
    • Action-mask : 无效动作在前向与反向传播时置零
    • Death-mask : 死了不该继续学、否则将引入误差。智能体死亡后,输入的s全部置零,但保留id-one-hot
  • 参考网站: 1 2

COMA

  • counterfactual multi-agent policy gradients

  • 现有的问题与结决方案

    • local_observation : 可解决联合观测空间太高维、partial_observation、communication_constrain
    • centralized_critic : 可获取全局信息以指导actor
    • counterfactual_baseline : 可解决联合奖励对中心化critic的credit_assignment问题、若对于中心化critic分别设计reward、可能导致无法合作
    • efficient critic representation : 函数逼近取代模拟器计算counterfactual_baseline(更快 : 可在一个batch内完成计算)、可以不用考虑默认动作
  • Independent Actor-Critic

    • 独自训练(使用 u a u^a ua而非 u u u来训练)、共享参数(总共只有AC各一个)、缺少全局信息(无法合作)

    • 中心化critic : Q ( τ a , u a ) Q(\tau^a,u^a) Q(τa,ua)

      可得 A ( τ a , u a ) = Q ( τ a , u a ) − V ( τ a ) = Q ( τ a , u a ) − ∑ u a π ( u a ∣ τ a ) Q ( τ a , u a ) A(\tau^a,u^a)=Q(\tau^a,u^a)-V(\tau^a)=Q(\tau^a,u^a)-\sum_{u^a}\pi(u^a|\tau^a)Q(\tau^a,u^a) A(τa,ua)=Q(τa,ua)V(τa)=Q(τa,ua)uaπ(uaτa)Q(τa,ua)

  • 中心化critic

    • 原始的策略迭代 : ∇ log ⁡ π ( u a ∣ τ a ) A ( u a , τ a ) \nabla\log\pi(u^a|\tau^a)A(u^a,\tau^a) logπ(uaτa)A(ua,τa) 、共训练n次
    • 使用s的策略迭代 : ∇ log ⁡ π ( u ∣ τ a ) A ( u , s ) \nabla\log\pi(u|\tau^a)A(u,s) logπ(uτa)A(u,s)、共训练1次
    • 有credit_assignment问题,即共享reward导致无法确定单独动作 u a u^a ua带来的收益(可能他人在探索你在利用会导致reward含有极大噪声)
  • counterfactual_baseline

    • 为每个agent定做reward : D a = r ( s , u ) − r ( s , ( u − a , c a ) ) D^a=r(s,u)-r(s,(u^{-a},c^a)) Da=r(s,u)r(s,(ua,ca))
      • 其中 c a c^a ca是智能体a默认动作
      • r ( s , ( u − a , c a ) ) r(s,(u^{-a},c^a)) r(s,(ua,ca))代表 a g e n t a agent_a agenta使用默认动作 c a c^a ca其余agent使用动作 u − a u^{-a} ua所能获得的收益
    • a r g m a x ( D a ) argmax(D^a) argmax(Da)可以同时 a r g m a x   r ( s , u ) argmax\space r(s,u) argmax r(s,u)、因为 r ( s , ( u − a , c a ) ) r(s,(u^{-a},c^a)) r(s,(ua,ca)) u a u^a ua无关可视为常量
    • 问题 : c a c^a ca无法确定、 r ( s , ( u − a , c a ) ) r(s,(u^{-a},c^a)) r(s,(ua,ca))需要与环境交互获取
  • 与优势函数联系

    • 优势函数 : A ( s , a ) = Q ( s , a ) − ∑ a ′ π ( a ′ ∣ s ) Q ( s , a ′ ) A(s,a)=Q(s,a)-\sum_{a'}\pi(a'|s)Q(s,a') A(s,a)=Q(s,a)aπ(as)Q(s,a)、这里s,a是单智能体情况下的状态与动作
    • COMA : D a ( s , u ) = Q ( s , u ) − ∑ u ′ a π a ( u ′ a ∣ τ a ) Q ( s , ( u − a , u ′ a ) ) D^a(s,u)=Q(s,u)-\sum_{u'^a}\pi^a(u'^a|\tau^a)Q(s,(u^{-a},u'^a)) Da(s,u)=Q(s,u)uaπa(uaτa)Q(s,(ua,ua))
    • 可以发现COMA是单智能体优势函数在多智能体领域的一种推广
    • ∑ u ′ a π a ( u ′ a ∣ τ a ) Q ( s , ( u − a , u ′ a ) ) \sum_{u'^a}\pi^a(u'^a|\tau^a)Q(s,(u^{-a},u'^a)) uaπa(uaτa)Q(s,(ua,ua))巧妙地避开了 r ( s , ( u − a , c a ) ) r(s,(u^{-a},c^a)) r(s,(ua,ca))的模拟与 c a c^a ca的选取
    • ∑ u ′ a π a ( u ′ a ∣ τ a ) Q ( s , ( u − a , u ′ a ) ) \sum_{u'^a}\pi^a(u'^a|\tau^a)Q(s,(u^{-a},u'^a)) uaπa(uaτa)Q(s,(ua,ua))虽然与策略有关,但梯度期望为零因此可以作为baseline (后面会证)
  • efficient critic representation

    • Q ( s , u ) Q(s,u) Q(s,u) 输出维度(joint-action-space)有 U n U^n Un维、其中U是动作空间、n是智能体数
    • 将网络改为输入 u − a u^{-a} ua输出 Q ( s , ( u − a , u ′ a 1 , 2... , n ) ) Q(s,(u^{-a},u'^{a_{1,2...,n}})) Q(s,(ua,ua1,2...,n))、输出维度降到 U U U维(指数级下降)
  • 补充说明

    • 连续动作空间 : 可以使用MC方法扩展、或用高斯分布近似等
    • 收敛性 : 由前人工作知当 g = E ( ∇ log ⁡ π ( a ∣ s ) Q ( s , a ) ) g=E(\nabla\log\pi(a|s)Q(s,a)) g=E(logπ(as)Q(s,a)) π \pi π可微时能保证收敛
    • 因此此处需要证明 E ( ∑ a ∇ log ⁡ π a ( u a ∣ τ a ) b ( s , u − a ) ) = 0 E(\sum_a\nabla\log\pi^a(u^a|\tau^a)b(s,u^{-a}))=0 E(alogπa(uaτa)b(s,ua))=0才能让上式中g式成立、其中 b ( s , u − a ) = ∑ u ′ a π a ( u ′ a ∣ τ a ) Q ( s , ( u − a , u ′ a ) ) b(s,u^{-a})=\sum_{u'^a}\pi^a(u'^a|\tau^a)Q(s,(u^{-a},u'^a)) b(s,ua)=uaπa(uaτa)Q(s,(ua,ua))、证明见论文
  • 参考网站 : 1

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值