1. 置信域方法

置信域方法是数值优化领域中的一类经典算法。几乎所有的数值优化算法都在做这样的迭代,只不过方法略有不同:
θnew←Update(Data;θnow)\theta_{\text{new}}\leftarrow \text{Update}(\text{Data};\theta_{\text{now}})θnewUpdate(Data;θnow)而置信域方法首先用到一个置信域的概念:
N(θnow)={θ∣∣∣θ−θnow∣∣2≤Δ}\mathcal{N}(\theta_{\text{now}})=\left\{\theta \Big | ||\theta-\theta_{\text{now}}||_2\leq \Delta \right\}N(θnow)={θ ∣∣θθnow2Δ}在这个置信域内,我们构造的函数能够很接近优化目标: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)π(as;θ),以及基于该策略的对当前状态的每一个动作的未来期望回报函数——动作价值函数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)=aAπ(as;θ)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)sSν(s)Vπ(s)=ES[Vπ(S)]=J(θ)一定越大,所以策略学习的优化问题就是max⁡θJ(θ)\max_{\theta} J(\theta)maxθJ(θ),因为SSSAAA都被期望掉了所以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)]=aAπ(as;θ)Qπ(s,a)=aAπ(as;θnow)π(as;θnow)π(as;θ)Qπ(s,a)=EAπ(s;θnow)[π(as;θnow)π(as;θ)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)[π(AS;θnow)π(AS;θ)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=1nπ(atst;θnow)π(atst;θ)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}})π(atst;θ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+γ2rt+2+⋅⋅⋅+γntrn折扣回报,是对Qπ(st∣at;θ)(st,at)Q_{\pi(s_t|a_t;\theta)}(s_t,a_t)Qπ(stat;θ)(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=1tKL[π(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)]]没什么区别,只是把对SSSAAA这两重期望合并成一重对策略πθ\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)]
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐