当前位置: 首页 > news >正文

【深度强化学习】置信域策略优化(TRPO)

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 ) = E A ∼ π ( ⋅ ∣ 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 ) = E S [ 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(θ),因为 S S S A A A都被期望掉了所以 J ( θ ) J(\theta) J(θ)只取决于 θ \theta θ

3. 置信域策略优化

3.1 策略学习的目标函数

trust region policy optimization, TRPO是一种策略学习方法,巧妙地结合了置信域的迭代优化方法——对目标函数做了一个方便迭代的等价形式 V π ( s ) = E A ∼ π ( ⋅ ∣ s ; θ ) [ Q π ( s , A ) ] = ∑ a ∈ A π ( a ∣ s ; θ ) ⋅ Q π ( s , a ) = ∑ a ∈ A π ( a ∣ s ; θ now ) π ( a ∣ s ; θ ) π ( a ∣ s ; θ now ) ⋅ Q π ( s , a ) = E A ∼ π ( ⋅ ∣ 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 ( θ ) = E S [ E A ∼ π ( ⋅ ∣ S ; θ ) [ Q π ( S , A ) ] ] ⇒ J ( θ ∣ θ now ) = E S [ E A ∼ π ( ⋅ ∣ 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 ) = 1 n ∑ t = 1 n π ( a t ∣ s t ; θ ) π ( a t ∣ s t ; θ now ) ⋅ u t \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_t L~(θθnow)=n1t=1nπ(atst;θnow)π(atst;θ)ut其中, { ( s j , a j , r j , s j + 1 ) } j = 1 n \{(s_j,a_j,r_j,s_{j+1})\}_{j=1}^n {(sj,aj,rj,sj+1)}j=1n是用旧策略 π ( a t ∣ s t ; θ now ) \pi(a_t|s_t;\theta_{\text{now}}) π(atst;θnow)生成的轨迹,是对策略分布的近似。 u t = r t + γ ⋅ r t + 1 + γ 2 ⋅ r t + 2 + ⋅ ⋅ ⋅ + γ n − t ⋅ r n u_t=r_t+\gamma· r_{t+1}+\gamma^2·r_{t+2}+···+\gamma^{n-t}·r_n ut=rt+γrt+1+γ2rt+2+⋅⋅⋅+γntrn折扣回报,是对 Q π ( s t ∣ a t ; θ ) ( s t , a t ) 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 . 1 t ∑ i = 1 t KL [ π ( ⋅ ∣ s i ; θ now ) ∣ ∣ π ( ⋅ ∣ s i ; θ ) ] ≤ Δ \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 ( θ ) = E S [ E A ∼ π ( ⋅ ∣ 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)]]没什么区别,只是把对 S S S A A A这两重期望合并成一重对策略 π θ \pi_{\theta} πθ的期望。实际当中常用基于 π θ \pi_{\theta} πθ的折扣回报来替代动作价值函数: J ( θ ) = E π θ [ ∑ t = 0 ∞ γ t r ( s t , a t ) ] J(\theta)=\mathbb E_{\pi_{\theta}}[\sum_{t=0}^{\infty}\gamma^t r(s_t,a_t)] J(θ)=Eπθ[t=0γtr(st,at)]

相关文章:

  • Python的那些事第二十五篇:高效Web开发与扩展应用实践FastAPI
  • 【操作系统】操作系统概述
  • vue3 子组件属性响应性丢失分析总结(四)
  • TMS320F28335二次bootloader在线IAP升级
  • 在windows10上,部署DeepSeek模型在本地电脑
  • 【钱包】【WEB3】【Flutter】一组助记词如何推导多个账号钱包
  • Unity 淡入淡出
  • agent和android怎么结合:健康助手,旅游助手,学习助手
  • 【插入排序】Insert_Sort
  • 电机控制::软件架构::微型软件架构
  • 基于开源Odoo、SKF Phoenix API与IMAX-8数采网关的圆织机设备智慧运维实施方案 ——以某纺织集团圆织机设备管理场景为例
  • I²C简介
  • OSPF协议五种网络类型中DR和BDR选举说明
  • Linux内核实时机制4 - 实时改造优化 - PREEMPT_RT方案
  • Linux学习笔记之深入理解进程调度
  • 3、cadence从零开始让一个VCO起振——如何调频
  • 复现log4j2的jndi注入成功反弹shell
  • SQL进阶技巧:如何统计用户跨端消费行为?
  • (leetcode 1749 前缀和)1749. 任意子数组和的绝对值的最大值
  • 【嵌入式Linux应用开发基础】进程实战开发
  • 印度证实印巴已同意停火
  • 海航回应“男团粉丝为追星堵住机舱通道”:已紧急阻止
  • 印度32座机场暂停民用航班运营,印称在边境多处发现无人机
  • 上海:企业招用高校毕业生可享受1500元/人一次性扩岗补助
  • 七大交响乐团“神仙斗法”,时代交响在上海奏出时代新声
  • 国家主席习近平同普京总统签署关于进一步深化中俄新时代全面战略协作伙伴关系的联合声明