一、前言
TRPO(Trust Region Policy Optimization)

二、策略梯度学习步长
回顾一下策略梯度的目标公式:
J(θ)=Eτ∼πθ[R(τ)]J(theta) = mathbb{E}_{tau sim pi_theta} left[ R(tau) right]J(θ)=Eτ∼πθ[R(τ)]
如果把轨迹展开可以表示为:
J(π)=Es0,a0,…[∑t=0∞γtr(st)]
J(pi) = mathbb{E}_{s_0, a_0, ldots} left[ sum_{t=0}^{infty} gamma^t r(s_t) right]
J(π)=Es0,a0,…[t=0∑∞γtr(st)]
其中s0∼p(s0), at∼π(at∣st), st+1∼p(st+1∣st,at), π为策略s_0 sim p(s_0), a_t sim pi(a_t vert s_t), s_{t+1} sim p(s_{t+1} vert s_t, a_t), pi为策略s0∼p(s0), at∼π(at∣st), st+1∼p(st+1∣st,at), π为策略
将参数 θthetaθ 按如下方式更新:
θ←θ+α⋅g^
theta leftarrow theta + alpha cdothat{g}
θ←θ+α⋅g^
其中 αalphaα为学习步长。
基本原理是利用梯度上升法朝着最大预期收益的方向优化。
然而,不合理的学习步长,会导致梯度上升法中的错误步骤可能导致次优操作,进而导致糟糕的状态。这反过来又会导致策略更新不佳和样本数据收集不佳。如此循环往复,最终可能导致策略性能崩溃,训练过程彻底失败。
三、前期理论
3.1 引入新旧策略关系
J(π)J(pi)J(π)也等于state初始化状态下预期的价值,故存在等式:
J(π)=Es0,a0,…[∑t=0∞γtr(st)]=E[Vπ(s0)]
J(pi) = mathbb{E}_{s_0, a_0, ldots} left[ sum_{t=0}^{infty} gamma^t r(s_t) right] = mathbb{E} left[ V_{pi}(s_0) right]
J(π)=Es0,a0,…[t=0∑∞γtr(st)]=E[Vπ(s0)]
又上一篇GAE可知:
A^π(st,at)=[r(st,at)+γVπ(st+1)]−Vπ(st)hat{A}^pi(s_t, a_t) = left[ r(s_t, a_t) + gamma V^pi(s_{t+1}) right] – V^pi(s_t)A^π(st,at)=[r(st,at)+γVπ(st+1)]−Vπ(st)
所以可以得到:
Es0,a0,…∼π~[∑t=0∞γtAπ(st,at)]=Es0,a0,…∼π~[∑t=0∞γt(Qπ(st,at)−Vπ(st))]=Es0,a0,…∼π~[∑t=0∞γt(r(st)+γVπ(st+1)−Vπ(st))]=Es0,a0,…∼π~[−Vπ(s0)+∑t=0∞γtr(st)]
begin{align*}
mathbb{E}_{s_0, a_0, ldots sim tilde{pi}} left[ sum_{t=0}^{infty} gamma^t A_{pi}(s_t, a_t) right] &= mathbb{E}_{s_0, a_0, ldots sim tilde{pi}} left[ sum_{t=0}^{infty} gamma^t left( Q_{pi}(s_t, a_t) – V_{pi}(s_t) right) right]
&= mathbb{E}_{s_0, a_0, ldots sim tilde{pi}} left[ sum_{t=0}^{infty} gamma^t left( r(s_t) + gamma V_{pi}(s_{t+1}) – V_{pi}(s_t) right) right]
&= mathbb{E}_{s_0, a_0, ldots sim tilde{pi}} left[ -V_{pi}(s_0) + sum_{t=0}^{infty} gamma^t r(s_t) right]
end{align*}
Es0,a0,…∼π~[t=0∑∞γtAπ(st,at)]=Es0,a0,…∼π~[t=0∑∞γt(Qπ(st,at)−Vπ(st))]=Es0,a0,…∼π~[t=0∑∞γt(r(st)+γVπ(st+1)−Vπ(st))]=Es0,a0,…∼π~[−Vπ(s0)+t=0∑∞γtr(st)]
根据新旧策略的初始状态是一致的(因为新状态是由旧状态一步步更新的,初始是一样的),则
Es0,a0,…∼π~[−Vπ(s0)]=−Es0[Vπ(s0)]
mathbb{E}_{s_0, a_0, ldots sim tilde{pi}} left[ -V_{pi}(s_0)right] = -mathbb{E}_{s_0} left[ V_{pi}(s_0) right]
Es0,a0,…∼π~[−Vπ(s0)]=−Es0[Vπ(s0)]
所以可以得到:
Es0,a0,…∼π~[∑t=0∞γtAπ(st,at)]=−Es0[Vπ(s0)]+Es0,a0,…∼π~[∑t=0∞γtr(st)]=−J(π)+J(π~)
begin{align*}
mathbb{E}_{s_0, a_0, ldots sim tilde{pi}} left[ sum_{t=0}^{infty} gamma^t A_{pi}(s_t, a_t) right]
&= -mathbb{E}_{s_0} left[ V_{pi}(s_0) right] + mathbb{E}_{s_0, a_0, ldots sim tilde{pi}} left[ sum_{t=0}^{infty} gamma^t r(s_t) right]
&= -J(pi) + J(tilde{pi})
end{align*}
Es0,a0,…∼π~[t=0∑∞γtAπ(st,at)]=−Es0[Vπ(s0)]+Es0,a0,…∼π~[t=0∑∞γtr(st)]=−J(π)+J(π~)
最终得到新旧策略的关系等式:
J(π~)=J(π)+Es0,a0,…∼π~[∑t=0∞γtAπ(st,at)](3.1)J(tilde{pi}) = J(pi) + mathbb{E}_{s_0,a_0,ldots sim tilde{pi}} bigg[ sum_{t=0}^{infty} gamma^t A_pi(s_t, a_t) bigg] tag{3.1}J(π~)=J(π)+Es0,a0,…∼π~[t=0∑∞γtAπ(st,at)](3.1)
其中Aπ(st,at)A_pi(s_t, a_t)Aπ(st,at)为优势函数,Aπ(st,at)=Qπ(st,at)−Vπ(st)A_pi(s_t, a_t) = Q_pi(s_t, a_t) – V_pi(s_t)Aπ(st,at)=Qπ(st,at)−Vπ(st)。
直观理解:新策略 π~tilde{pi}π~ 的回报期望 = 原策略 πpiπ 的回报期望 + 采用新策略π~新策略tilde{pi}新策略π~采样的轨迹中 “优势” 的期望总和(优势为正,新策略更好),此时的优势计算是基于旧策略πpiπ计算估计的。
对期望做展开
J(π~)=J(π)+∑t=0∞∑sp(st=s∣π~)∑aπ~(a∣s)γtAπ(s,a)=J(π)+∑s∑t=0∞γtp(st=s∣π~)∑aπ~(a∣s)Aπ(s,a)
begin{align*}
J(tilde{pi}) &= J(pi) + sum_{t=0}^{infty} sum_{s} p(s_t = s vert tilde{pi}) sum_{a} tilde{pi}(a vert s) gamma^t A_pi(s, a)
&= J(pi) + sum_{s} sum_{t=0}^{infty} gamma^t p(s_t = s vert tilde{pi}) sum_{a} tilde{pi}(a vert s) A_pi(s, a)
end{align*}
J(π~)=J(π)+t=0∑∞s∑p(st=s∣π~)a∑π~(a∣s)γtAπ(s,a)=J(π)+s∑t=0∑∞γtp(st=s∣π~)a∑π~(a∣s)Aπ(s,a)
定义 ρπ~rho_{tilde{pi}}ρπ~ 是折扣状态访问频率:
ρπ(s)=p(s0=s)+γp(s1=s)+γ2p(s2=s)+…
rho_{pi}(s) = p(s_0 = s) + gamma p(s_1 = s) + gamma^2 p(s_2 = s) + ldots
ρπ(s)=p(s0=s)+γp(s1=s)+γ2p(s2=s)+…
则可以表示为:
J(π~)=J(π)+∑sρπ~(s)∑aπ~(a∣s)Aπ(s,a)
J(tilde{pi})= J(pi) + sum_{s} rho_{tilde{pi}}(s) sum_{a} tilde{pi}(a vert s) A_pi(s, a)
J(π~)=J(π)+s∑ρπ~(s)a∑π~(a∣s)Aπ(s,a)
3.2 局部近似
对于RL任务就是对J(π~)J(tilde{pi})J(π~)求梯度,J(π)J(pi)J(π)对于π~tilde{pi}π~一节求导为0,有关于优势函数的式子中有两处与π~tilde{pi}π~相关,状态需要新策略,状态与动作的映射也是新策略,这会让优化比较麻烦,所以有了以下的操作:
用 “原策略 πpiπ 的状态分布$
rho_{pi}(s) ”替代“新策略 ” 替代 “新策略 ”替代“新策略 tilde{pi}$ 的状态分布 ρπ~(s)rho_{tilde{pi}}(s)ρπ~(s)“ 得到J(π~)J(tilde{pi})J(π~)的局部近似值Lπ(π~)L_pi(tilde{pi})Lπ(π~),可以得到:
Lπ(π~)=J(π)+∑sρπ(s)∑aπ~(a∣s)Aπ(s,a)
L_pi(tilde{pi}) = J(pi) + sum_{s} rho_{{pi}}(s) sum_{a} tilde{pi}(a vert s) A_pi(s, a)
Lπ(π~)=J(π)+s∑ρπ(s)a∑π~(a∣s)Aπ(s,a)
这个近似是在一阶导数的局部近似,所以可以得出,在一个区域内Lπ(π~)L_pi(tilde{pi})Lπ(π~)梯度等于ρπ(s)rho_{pi}(s)ρπ(s)的梯度, Lπ(π~)L_pi(tilde{pi})Lπ(π~)的值等于ρπ(s)rho_{pi}(s)ρπ(s),这意味着变化趋势和大小一致,所以可以近似的认为在一个区域内,优化Lπ(π~)L_pi(tilde{pi})Lπ(π~)等价于优化ρπ(s)rho_{pi}(s)ρπ(s):
如果我们假定这个区域内有一个点为θ0theta_0θ0,则有以下等式:
Lπθ0(πθ0)=J(πθ0)
L_{pi_{theta_0}}(pi_{theta_0}) = J(pi_{theta_0})
Lπθ0(πθ0)=J(πθ0)
∇θLπθ0(πθ)∣θ=θ0=∇θJ(πθ)∣θ=θ0
left. nabla_theta L_{pi_{theta_0}}(pi_theta) right|_{theta=theta_0} = left. nabla_theta J(pi_theta) right|_{theta=theta_0}
∇θLπθ0(πθ)θ=θ0=∇θJ(πθ)∣θ=θ0
3.2.1 值近似
证明:
Lπθ0(πθ0)=J(πθ0)
L_{pi_{theta_0}}(pi_{theta_0}) = J(pi_{theta_0})
Lπθ0(πθ0)=J(πθ0)
当π~=πtilde{pi} = piπ~=π时,替代损失变为:
Lπ(π)=J(π)+∑sρπ(s)∑aπ(a∣s)Aπ(s,a)
L_pi(pi) = J(pi) + sum_s rho_pi(s) sum_a pi(a|s) A_pi(s,a)
Lπ(π)=J(π)+s∑ρπ(s)a∑π(a∣s)Aπ(s,a)
需要证明额外项∑sρπ(s)∑aπ(a∣s)Aπ(s,a)=0sum_s rho_pi(s) sum_a pi(a|s) A_pi(s,a) = 0∑sρπ(s)∑aπ(a∣s)Aπ(s,a)=0,即 “优势函数在策略πpiπ下的加权平均为 0”
我们需要以下几点
(1). 转换为期望
∑aπ(a∣s)Aπ(s,a)=Ea∼π(⋅∣s)[Aπ(s,a)]
sum_a pi(a|s) A_pi(s,a) = mathbb{E}_{a sim pi(cdot|s)} left[ A_pi(s,a) right]
a∑π(a∣s)Aπ(s,a)=Ea∼π(⋅∣s)[Aπ(s,a)]
(2). 优势函数分解
Ea[Aπ(s,a)]=Ea[Qπ(s,a)−Vπ(s)]
mathbb{E}_a left[ A_pi(s,a) right] = mathbb{E}_a left[ Q_pi(s,a) – V_pi(s) right]
Ea[Aπ(s,a)]=Ea[Qπ(s,a)−Vπ(s)]
(3). 通过价值函数和Q函数之间的关系
Vπ(s)=Ea[Qπ(s,a)]
V_pi(s) = mathbb{E}_a left[ Q_pi(s,a) right]
Vπ(s)=Ea[Qπ(s,a)]
可以得到:
Ea[Qπ(s,a)−Ea[Qπ(s,a)]]
mathbb{E}_a left[ Q_pi(s,a) – mathbb{E}_a left[ Q_pi(s,a) right] right]
Ea[Qπ(s,a)−Ea[Qπ(s,a)]]
(4). 期望的期望等于自身
Ea[Qπ(s,a)]−Ea[Ea[Qπ(s,a)]]=Ea[Qπ(s,a)]−Ea[Qπ(s,a)]=0
mathbb{E}_a left[ Q_pi(s,a) right] – mathbb{E}_a left[ mathbb{E}_a left[ Q_pi(s,a) right] right] = mathbb{E}_a left[ Q_pi(s,a) right] – mathbb{E}_a left[ Q_pi(s,a) right] = 0
Ea[Qπ(s,a)]−Ea[Ea[Qπ(s,a)]]=Ea[Qπ(s,a)]−Ea[Qπ(s,a)]=0
故证明∑sρπ(s)∑aπ(a∣s)Aπ(s,a)=0sum_s rho_pi(s) sum_a pi(a|s) A_pi(s,a) = 0∑sρπ(s)∑aπ(a∣s)Aπ(s,a)=0
则可以得出:
Lπ(π)=J(π)+0=J(π)
L_pi(pi) = J(pi) + 0 = J(pi)
Lπ(π)=J(π)+0=J(π)
3.2.2 梯度近似
证明:
∇θLπθ0(πθ)∣θ=θ0=∇θ∣θ=θ0
left. nabla_theta L_{pi_{theta_0}}(pi_theta) right|_{theta=theta_0} = left. nabla_theta
right|_{theta=theta_0}
∇θLπθ0(πθ)θ=θ0=∇θ∣θ=θ0
对于Lπ(π)L_{pi}(pi)Lπ(π)为:
Lπθ0(πθ)=J(πθ0)+∑sρπθ0(s)∑aπθ(a∣s)Aπθ0(s,a)
L_{pi_{theta_0}}(pi_theta) = J(pi_{theta_0}) + sum_s rho_{pi_{theta_0}}(s) sum_a pi_theta(a|s) A_{pi_{theta_0}}(s, a)
Lπθ0(πθ)=J(πθ0)+s∑ρπθ0(s)a∑πθ(a∣s)Aπθ0(s,a)
(1). 对θthetaθ求导
∇θLπθ0(πθ)=∑sρπθ0(s)∑a∇θπθ(a∣s)Aπθ0(s,a)
nabla_theta L_{pi_{theta_0}}(pi_theta) = sum_s rho_{pi_{theta_0}}(s) sum_a nabla_theta pi_theta(a|s) A_{pi_{theta_0}}(s, a)
∇θLπθ0(πθ)=s∑ρπθ0(s)a∑∇θπθ(a∣s)Aπθ0(s,a)
其中J(πθ0)J(pi_{theta_0})J(πθ0) 与 θthetaθ 无关,所以导数为0。
(2). 代入 θ=θ0theta = theta_0θ=θ0
得到 Lπθ0(πθ)L_{pi_{theta_0}}(pi_theta)Lπθ0(πθ) 在 θ=θ0theta = theta_0θ=θ0 处的导数。
∇θLπθ0(πθ)∣θ=θ0=∑sρπθ0(s)∑a∇θπθ(a∣s)∣θ=θ0Aπθ0(s,a)
left. nabla_theta L_{pi_{theta_0}}(pi_theta) right|_{theta = theta_0} = sum_s rho_{pi_{theta_0}}(s) sum_a left. nabla_theta pi_theta(a|s) right|_{theta = theta_0} A_{pi_{theta_0}}(s, a)
∇θLπθ0(πθ)θ=θ0=s∑ρπθ0(s)a∑∇θπθ(a∣s)∣θ=θ0Aπθ0(s,a)
(3). 引入 ∇θJ(πθ)nabla_theta J(pi_theta)∇θJ(πθ),
通过
Lπθ0(πθ0)=J(πθ0)
L_{pi_{theta_0}}(pi_{theta_0}) = J(pi_{theta_0})
Lπθ0(πθ0)=J(πθ0)
等式可以得到:
∇θJ(πθ)=∑sρπθ(s)∑a∇θπθ(a∣s)Qπθ(s,a)
nabla_theta J(pi_theta) = sum_s rho_{pi_theta}(s) sum_a nabla_theta pi_theta(a|s) Q_{pi_theta}(s, a)
∇θJ(πθ)=s∑ρπθ(s)a∑∇θπθ(a∣s)Qπθ(s,a)
(4). 化简 ∇θJ(πθ)nabla_theta J(pi_theta)∇θJ(πθ)
∑sρπθ(s)∑a∇θπθ(a∣s)Vπθ(s)=∑sρπθ(s)Vπθ(s)∑a∇θπθ(a∣s)=∑sρπθ(s)Vπθ(s)∇θ∑aπθ(a∣s)=0
begin{aligned}
sum_s rho_{pi_theta}(s) sum_a nabla_theta pi_theta(a|s) V_{pi_theta}(s) &= sum_s rho_{pi_theta}(s) V_{pi_theta}(s) sum_a nabla_theta pi_theta(a|s)
&= sum_s rho_{pi_theta}(s) V_{pi_theta}(s) nabla_theta sum_a pi_theta(a|s)
&= 0
end{aligned}
s∑ρπθ(s)a∑∇θπθ(a∣s)Vπθ(s)=s∑ρπθ(s)Vπθ(s)a∑∇θπθ(a∣s)=s∑ρπθ(s)Vπθ(s)∇θa∑πθ(a∣s)=0
这里的推导依据是:
- Vπθ(s)V_{pi_theta}(s)Vπθ(s) 与 aaa 无关,所以可以提出来。
- 求和的导数等于导数的求和,即 ∇θ∑aπθ(a∣s)=∑a∇θπθ(a∣s)nabla_theta sum_a pi_theta(a|s) = sum_a nabla_theta pi_theta(a|s)∇θ∑aπθ(a∣s)=∑a∇θπθ(a∣s)。
- 对于每个 sss 来说,∑aπθ(a∣s)=1sum_a pi_theta(a|s) = 1∑aπθ(a∣s)=1,因此 ∇θ∑aπθ(a∣s)=∇θ1=0nabla_theta sum_a pi_theta(a|s) = nabla_theta 1 = 0∇θ∑aπθ(a∣s)=∇θ1=0。
(5). 推导J(πθ)J(pi_theta)J(πθ)的导数
∇θJ(πθ)=∑sρπθ(s)∑a∇θπθ(a∣s)Qπθ(s,a)=∑sρπθ(s)∑a∇θπθ(a∣s)[Qπθ(s,a)−Vπθ(s)]=∑sρπθ(s)∑a∇θπθ(a∣s)Aπθ(s,a)
begin{aligned}
nabla_theta J(pi_theta) &= sum_s rho_{pi_theta}(s) sum_a nabla_theta pi_theta(a|s) Q_{pi_theta}(s, a)
&= sum_s rho_{pi_theta}(s) sum_a nabla_theta pi_theta(a|s) left[ Q_{pi_theta}(s, a) – V_{pi_theta}(s) right]
&= sum_s rho_{pi_theta}(s) sum_a nabla_theta pi_theta(a|s) A_{pi_theta}(s, a)
end{aligned}
∇θJ(πθ)=s∑ρπθ(s)a∑∇θπθ(a∣s)Qπθ(s,a)=s∑ρπθ(s)a∑∇θπθ(a∣s)[Qπθ(s,a)−Vπθ(s)]=s∑ρπθ(s)a∑∇θπθ(a∣s)Aπθ(s,a)
第二步是引入了4推导的结果,直接减去一个0值。
(6). J(πθ)J(pi_theta)J(πθ)导数代入 θ=θ0theta = theta_0θ=θ0
∇θJ(πθ)∣θ=θ0=∑sρπθ0(s)∑a∇θπθ(a∣s)∣θ=θ0Aπθ0(s,a)
left. nabla_theta J(pi_theta) right|_{theta = theta_0} = sum_s rho_{pi_{theta_0}}(s) sum_a left. nabla_theta pi_theta(a|s) right|_{theta = theta_0} A_{pi_{theta_0}}(s, a)
∇θJ(πθ)∣θ=θ0=s∑ρπθ0(s)a∑∇θπθ(a∣s)∣θ=θ0Aπθ0(s,a)
和2步的式子完全一致,则可以推导出:
∇θLπθ0(πθ)∣θ=θ0=∇θ∣θ=θ0
left. nabla_theta L_{pi_{theta_0}}(pi_theta) right|_{theta=theta_0} = left. nabla_theta
right|_{theta=theta_0}
∇θLπθ0(πθ)θ=θ0=∇θ∣θ=θ0
3.3 信赖域
虽然可以说明在一个范围内,近似求解,但范围的大小是无法确定的,而这个区域就是信赖域,可以理解为在这个区域内更新是可以信赖的,是持续优化的。
对于信赖域可以以爬山举例:

线搜索就对应梯度上升和下降,而信赖域是对下一步的更新圈定一个范围。
2002 年,Kakade & Langford 提出了一种称为保守策略迭代的策略更新方案,他们可以为 J 的改进提供明确的下限。该界限在实践中具有限制性。
paper:https://people.eecs.berkeley.edu/~pabbeel/cs287-fa09/readings/KakadeLangford-icml2002.pdf
本文修改了提出的下界,修改后的下界为:
J(π~)≥Lπ(π~)−CDKLmax(π,π~),
J(tilde{pi}) geq L_{pi}(tilde{pi}) – C D_{mathrm{KL}}^{max}(pi, tilde{pi}),
J(π~)≥Lπ(π~)−CDKLmax(π,π~),
其中 KL散度就代表参数更新的信赖空间(信赖域)
C=4ϵγ(1−γ)2.
C = frac{4 epsilon gamma}{(1 – gamma)^2}.
C=(1−γ)24ϵγ.
DKLmax(π,π~)=maxsDKL(π(⋅∣s)∥π~(⋅∣s))
D_{mathrm{KL}}^{max}(pi, tilde{pi}) = max_s D_{mathrm{KL}}(pi(cdot mid s) parallel tilde{pi}(cdot mid s))
DKLmax(π,π~)=smaxDKL(π(⋅∣s)∥π~(⋅∣s))
下届理解可以看这个图:

from:https://jonathan-hui.medium.com/rl-trust-region-policy-optimization-trpo-part-2-f51e3b2e373a
如何保证基于下限的近似策略迭代方案生成单调改进的策略序列:
J(π0)≤J(π1)≤J(π2)≤…
J(pi_0) leq J(pi_1) leq J(pi_2) leq dots
J(π0)≤J(π1)≤J(π2)≤…
如果你能保证单调改进,则能保证目标函数持续提升。
通过近似策略迭代方案来解决这个问题:

四、TRPO
TRPO是近似策略迭代方案的一种优化
4.1 更新步长很小
受惩罚系数C影响,更新步长会很小,优化速度会非常慢。
由于πθpi_thetaπθ本身是基于θthetaθ参数的策略,所以可以统一同θthetaθ表示策略,则目标可以表示为最大化:
maxθ[Lθold(θ)−CDKLmax(θold,θ)]
max_{theta} left[ L_{theta_{old}}(theta) – C D_{text{KL}}^{text{max}}(theta_{old}, theta) right]
θmax[Lθold(θ)−CDKLmax(θold,θ)]
对于更新步数很小这个问题,可以通过KL散度作为惩罚项的极值问题,转化为KL散度作为约束条件的优化问题,将KL散度从公式中取出作为条件:
maxθLθold(θ)
max_{theta} L_{theta_{text{old}}}(theta)
θmaxLθold(θ)
subject to DKLmax(θold,θ)≤δ
text{subject to } D_{mathrm{KL}}^{max}(theta_{text{old}}, theta) leq delta
subject to DKLmax(θold,θ)≤δ
相当于在以θ0theta_0θ0为球(圆)心的,以炒参数δdeltaδ为半径的信赖域中更新参数可以提高Lπold(π)L_{pi_{old}}(pi)Lπold(π)(由前面的近似可以等价于提高J(π)J(pi)J(π))的策略πpiπ
LπL_piLπ为:
Lπ(π~)=J(π)+∑sρπ(s)∑aπ~(a∣s)Aπ(s,a)
L_pi(tilde{pi}) = J(pi) + sum_{s} rho_{{pi}}(s) sum_{a} tilde{pi}(a vert s) A_pi(s, a)
Lπ(π~)=J(π)+s∑ρπ(s)a∑π~(a∣s)Aπ(s,a)
用θthetaθ替换:
Lθold(θ)=J(θold)+∑sρθold(s)∑aπθ(a∣s)Aθold(s,a)
L_{theta_{old}}(theta) = J(theta_{old}) + sum_{s} rho_{theta_{old}}(s) sum_{a} pi_{theta}(a|s) A_{theta_{old}}(s,a)
Lθold(θ)=J(θold)+s∑ρθold(s)a∑πθ(a∣s)Aθold(s,a)
其中J(θold)J(theta_{old})J(θold)与θthetaθ无关,可以去掉,得到最终的目标函数:
maximizeθ∑sρθold(s)∑aπθ(a∣s)Aθold(s,a)subject to DKLmax(θold,θ)≤δ
begin{aligned}
&underset{theta}{text{maximize}} sum_{s} rho_{theta_{old}} (s)sum_{a} pi_{theta}(a|s) A_{theta_{old}}(s,a)
&text{subject to } D_{KL}^{max}(theta_{old}, theta) leq delta
end{aligned}
θmaximizes∑ρθold(s)a∑πθ(a∣s)Aθold(s,a)subject to DKLmax(θold,θ)≤δ
4.2 重要性采样
目标函数的s映射a都是从新策略中采样的,但是新策略都是未知的,需要更新参数后才能得到,所以这里需要重要性采样,通过采样旧采样策略:
∑sρθold(s)∑aπθ(a∣s)Aθold(s,a)=∑sρθold(s)∑aq(a∣s)πθ(a∣s)q(a∣s)Aθold(s,a)=∑sρθold(s)Ea∼q[πθ(a∣s)q(a∣s)Aθold(s,a)]=Es∼ρθold,a∼q[Aθold(s,a)]
begin{aligned}
sum_{s} rho_{theta_{text{old}}}(s) sum_{a} pi_theta(a|s) A_{theta_{old}} (s, a) &= sum_{s} rho_{theta_{text{old}}}(s) sum_{a} q(a|s) frac{pi_{theta}(a|s)}{q(a|s)} A_{theta_{text{old}}}(s, a)
&= sum_{s} rho_{theta_{text{old}}}(s) mathbb{E}_{a sim q} left[ frac{pi_{theta}(a|s)}{q(a|s)} A_{theta_{text{old}}}(s, a) right]
&= mathbb{E}_{s sim rho_{theta_{text{old}}}, a sim q} left[ A_{theta_{text{old}}}(s, a) right]
end{aligned}
s∑ρθold(s)a∑πθ(a∣s)Aθold(s,a)=s∑ρθold(s)a∑q(a∣s)q(a∣s)πθ(a∣s)Aθold(s,a)=s∑ρθold(s)Ea∼q[q(a∣s)πθ(a∣s)Aθold(s,a)]=Es∼ρθold,a∼q[Aθold(s,a)]
Ref
- https://jonathan-hui.medium.com/rl-trust-region-policy-optimization-trpo-explained-a6ee04eeeee9
- https://jonathan-hui.medium.com/rl-trust-region-policy-optimization-trpo-part-2-f51e3b2e373a
- https://medium.com/@hsinhungw/trust-region-policy-optimization-explained-c2671542c329
- https://www.cnblogs.com/xingzheai/p/16565686.html
- https://zhuanlan.zhihu.com/p/605886935
文章来源于互联网:【RL第五篇】信赖域策略优化-Trust Region Policy Optimization(TRPO)
相关推荐: 【AIGC学习】一文带你了解AIGC基础知识(适用于AI入门小白)
▌导读 前言 人工智能生成内容(AIGC)正以前所未有的速度改变着我们的生活。你是否也对这项技术充满好奇,却苦于无从下手?本指南专为 AI 入门小白打造,用通俗易懂的语言带你快速了解 AIGC 的核心概念、应用场景和发展趋势。无需任何技术背景,只需一颗探索的心…
5bei.cn大模型教程网










