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 ) = 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)=∑a∈Aπ(a∣s;θ)⋅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) ∑s∈Sν(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)]=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 ( θ ) = 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)[π(A∣S;θnow)π(A∣S;θ)⋅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=1∑nπ(at∣st;θnow)π(at∣st;θ)⋅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}}) π(at∣st;θ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+γ2⋅rt+2+⋅⋅⋅+γn−t⋅rn为折扣回报,是对 Q π ( s t ∣ a t ; θ ) ( s t , a t ) 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 . 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=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 ( θ ) = 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)]