【深度强化学习】置信域策略优化(TRPO)
1. 置信域方法
置信域方法是数值优化领域中的一类经典算法。几乎所有的数值优化算法都在做这样的迭代,只不过方法略有不同:
θnew←Update(Data;θnow)\theta_{\text{new}}\leftarrow \text{Update}(\text{Data};\theta_{\text{now}})θnew←Update(Data;θnow)而置信域方法首先用到一个置信域的概念:
N(θnow)={θ∣∣∣θ−θnow∣∣2≤Δ}\mathcal{N}(\theta_{\text{now}})=\left\{\theta \Big | ||\theta-\theta_{\text{now}}||_2\leq \Delta \right\}N(θnow)={θ
∣∣θ−θnow∣∣2≤Δ}在这个置信域内,我们构造的函数能够很接近优化目标:L(θ∣θnow)很接近J(θ),∀θ∈N(θnow)L(\theta|\theta_{\text{now}})很接近J(\theta),\quad \forall \theta\in \mathcal{N}(\theta_{\text{now}})L(θ∣θnow)很接近J(θ),∀θ∈N(θnow)这样一来我就可以在我构造的函数范围内做优化:θnew=arg maxθ∈N(θnow)L(θ∣θnow)\theta_{\text{new}}=\argmax_{\theta\in\mathcal{N}(\theta_{\text{now}})}L(\theta|\theta_{\text{now}})θnew=θ∈N(θnow)argmaxL(θ∣θnow)逐次迭代即可实现对一个复杂目标的优化。
2. 策略优化
有了策略网络π(a∣s;θ)\pi(a|s;\theta)π(a∣s;θ),以及基于该策略的对当前状态的每一个动作的未来期望回报函数——动作价值函数Qπ(s,a)Q_{\pi}(s,a)Qπ(s,a),我们就可以得到,能够计算出当前状态价值的状态价值函数Vπ(s)=∑a∈Aπ(a∣s;θ)⋅Qπ(s,a)=EA∼π(⋅∣s;θ)[Qπ(s,A)]V_{\pi}(s)=\sum_{a\in \mathcal A}\pi(a|s;\theta)·Q_{\pi}(s,a)=\mathbb E_{A\sim\pi(·|s;\theta)}[Q_{\pi}(s,A)]Vπ(s)=∑a∈Aπ(a∣s;θ)⋅Qπ(s,a)=EA∼π(⋅∣s;θ)[Qπ(s,A)],当一个策略的马尔可夫链运行达到稳态的时候,会有一个状态的稳态分布ν(s)\nu(s)ν(s),那么一个策略越好,它的状态价值函数的期望——策略学习的目标函数∑s∈Sν(s)Vπ(s)=ES[Vπ(S)]=J(θ)\sum_{s\in S}\nu(s)V_{\pi}(s)=\mathbb E_S[V_{\pi}(S)]=J(\theta)∑s∈Sν(s)Vπ(s)=ES[Vπ(S)]=J(θ)一定越大,所以策略学习的优化问题就是maxθJ(θ)\max_{\theta} J(\theta)maxθJ(θ),因为SSS和AAA都被期望掉了所以J(θ)J(\theta)J(θ)只取决于θ\thetaθ。
3. 置信域策略优化
3.1 策略学习的目标函数
trust region policy optimization, TRPO是一种策略学习方法,巧妙地结合了置信域的迭代优化方法——对目标函数做了一个方便迭代的等价形式:Vπ(s)=EA∼π(⋅∣s;θ)[Qπ(s,A)]=∑a∈Aπ(a∣s;θ)⋅Qπ(s,a)=∑a∈Aπ(a∣s;θnow)π(a∣s;θ)π(a∣s;θnow)⋅Qπ(s,a)=EA∼π(⋅∣s;θnow)[π(a∣s;θ)π(a∣s;θnow)⋅Qπ(s,a)]\begin{aligned}V_{\pi}(s)&=\mathbb E_{A\sim\pi(·|s;\theta)}[Q_{\pi}(s,A)]\\&=\sum_{a\in \mathcal A}\pi(a|s;\theta)·Q_{\pi}(s,a)\\&=\sum_{a\in \mathcal A}\pi(a|s;\theta_{\text{now}})\frac{\pi(a|s;\theta)}{\pi(a|s;\theta_{\text{now}})}·Q_{\pi}(s,a)\\ &=\mathbb E_{A\sim \pi(·|s;\theta_{\text{now}})}\left[\frac{\pi(a|s;\theta)}{\pi(a|s;\theta_{\text{now}})}·Q_{\pi}(s,a)\right]\end{aligned}\\ Vπ(s)=EA∼π(⋅∣s;θ)[Qπ(s,A)]=a∈A∑π(a∣s;θ)⋅Qπ(s,a)=a∈A∑π(a∣s;θnow)π(a∣s;θnow)π(a∣s;θ)⋅Qπ(s,a)=EA∼π(⋅∣s;θnow)[π(a∣s;θnow)π(a∣s;θ)⋅Qπ(s,a)]J(θ)=ES[EA∼π(⋅∣S;θ)[Qπ(S,A)]]⇒J(θ∣θnow)=ES[EA∼π(⋅∣S;θnow)[π(A∣S;θ)π(A∣S;θnow)⋅Qπ(S,A)]] \begin{aligned} &J(\theta)&=&\mathbb E_{S}\left[\mathbb E_{A\sim\pi(·|S;\theta)}[Q_{\pi}(S,A)]\right]\\ \Rightarrow &J(\theta|\theta_{\text{now}}) &=&\mathbb E_S\left[\mathbb E_{A\sim \pi(·|S;\theta_{\text{now}})}\left[\frac{\pi(A|S;\theta)}{\pi(A|S;\theta_{\text{now}})}·Q_{\pi}(S,A)\right]\right] \end{aligned}⇒J(θ)J(θ∣θnow)==ES[EA∼π(⋅∣S;θ)[Qπ(S,A)]]ES[EA∼π(⋅∣S;θnow)[π(A∣S;θnow)π(A∣S;θ)⋅Qπ(S,A)]]
3.2 做近似
可以采用蒙特卡洛近似:L~(θ∣θnow)=1n∑t=1nπ(at∣st;θ)π(at∣st;θnow)⋅ut\tilde L(\theta|\theta_{\text{now}})=\frac{1}{n}\sum_{t=1}^{n}\frac{\pi(a_t|s_t;\theta)}{\pi(a_t|s_t;\theta_{\text{now}})}·u_tL~(θ∣θnow)=n1t=1∑nπ(at∣st;θnow)π(at∣st;θ)⋅ut其中,{(sj,aj,rj,sj+1)}j=1n\{(s_j,a_j,r_j,s_{j+1})\}_{j=1}^n{(sj,aj,rj,sj+1)}j=1n是用旧策略π(at∣st;θnow)\pi(a_t|s_t;\theta_{\text{now}})π(at∣st;θnow)生成的轨迹,是对策略分布的近似。ut=rt+γ⋅rt+1+γ2⋅rt+2+⋅⋅⋅+γn−t⋅rnu_t=r_t+\gamma· r_{t+1}+\gamma^2·r_{t+2}+···+\gamma^{n-t}·r_nut=rt+γ⋅rt+1+γ2⋅rt+2+⋅⋅⋅+γn−t⋅rn为折扣回报,是对Qπ(st∣at;θ)(st,at)Q_{\pi(s_t|a_t;\theta)}(s_t,a_t)Qπ(st∣at;θ)(st,at)的近似。
3.3 最大化
这是一个参数需要在置信域内的带约束的最大化问题:maxθL~(θ∣θnow),s.t.θ∈N(θnow)\max_{\theta} \tilde L(\theta|\theta_{\text{now}}), \quad \text{s.t}.\quad\theta\in\mathcal N(\theta_{\text{now}})θmaxL~(θ∣θnow),s.t.θ∈N(θnow)置信域可以采用KL散度:maxθL~(θ∣θnow),s.t.1t∑i=1tKL[π(⋅∣si;θnow)∣∣π(⋅∣si;θ)]≤Δ\max_{\theta} \tilde L(\theta|\theta_{\text{now}}), \quad \text{s.t}.\quad\frac{1}{t}\sum_{i=1}^t\text{KL}\bigg [\pi(·|s_i;\theta_{\text{now}})||\pi(·|s_i;\theta)\bigg]\leq \DeltaθmaxL~(θ∣θnow),s.t.t1i=1∑tKL[π(⋅∣si;θnow)∣∣π(⋅∣si;θ)]≤Δ其中Δ\DeltaΔ是一个需要调整的超参数。至此,TRPO的思想讲完了。
细节说明
- 在另外一些地方,你可能会看到类似J(θ)=Eπθ[Qπθ(S,A)]J(\theta) =\mathbb E_{\pi_{\theta}}[Q_{\pi_{\theta}}(S,A)]J(θ)=Eπθ[Qπθ(S,A)]的写法,本质上这和J(θ)=ES[EA∼π(⋅∣S;θ)[Qπθ(S,A)]]J(\theta) =\mathbb E_{S}\bigg [\mathbb E_{A\sim\pi(·|S;\theta)}[Q_{\pi_{\theta}}(S,A)]\bigg]J(θ)=ES[EA∼π(⋅∣S;θ)[Qπθ(S,A)]]没什么区别,只是把对SSS和AAA这两重期望合并成一重对策略πθ\pi_{\theta}πθ的期望。实际当中常用基于πθ\pi_{\theta}πθ的折扣回报来替代动作价值函数:J(θ)=Eπθ[∑t=0∞γtr(st,at)]J(\theta)=\mathbb E_{\pi_{\theta}}[\sum_{t=0}^{\infty}\gamma^t r(s_t,a_t)]J(θ)=Eπθ[∑t=0∞γtr(st,at)]
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)