8.3.3. Learning via Policy gradient

이번 section에서는 정확한 gradient나 hessian을 모를 때에 approximation을 통해 update하는 방법에 대해 설명합니다.

time step T까지의 trajectory τ=(s0,u01,u02,r01,r02,,uT1,uT2,rT1,rT2) \tau = (s_0,u^1_0,u^2_0,r^1_0,r^2_0,\cdots,u^1_T,u^2_T,r^1_T,r^2_T)에 대해, 한 agent의 discounted return Rta(τ)=t=tTγttrta R^a_t(\tau) = \sum^T_{t'=t}{\gamma^{t'-t}r^a_{t'}}을 다음과 같이 정의할 수 있습니다. 그렇다면, agent의 policy(π1,π2)(\pi^1,\pi^2)에 대해 discounted average reward 는 다음과 같습니다. ER01(τ), ER02(τ)\mathbb{E}R^1_0(\tau), \ \mathbb{E}R^2_0(\tau)

θ1\theta^1에 대한 ER01(τ)\mathbb{E}R^1_0(\tau)의 gradient를 보면, 다음과 같습니다.

θ1ER01(τ)=θ1π1(τ)R01(τ)dτ \nabla_{\theta^1}\mathbb{E}R^1_0(\tau) = \int\nabla_{\theta^1} \pi^1(\tau)R^1_0(\tau)d\tau

=π1(τ)θ1π1(τ)π1(τ)R01(τ)dτ= \int \pi^1(\tau)\frac{\nabla_{\theta^1} \pi^1(\tau)}{\pi^1(\tau)}R^1_0(\tau)d\tau

=π1(τ)θ1logπ1(τ)R01(τ)dτ= \int \pi^1(\tau) \nabla_{\theta^1} \log\pi^1(\tau)R^1_0(\tau)d\tau

=E[θ1logπ1(τ)R01(τ)]= \mathbb{E}[\nabla_{\theta^1}\log \pi^1(\tau)R^1_0(\tau)]

그러므로 gradient-based naive learner(NL-PG)는 다음과 같이 update가능합니다.

fnl, pg1=θ1ER01(τ)δ\bm{f}^1_{\mathrm{nl,\ pg}} = \nabla_{\theta^1}\mathbb{E}R^1_0({\tau})\delta

그렇다면, LOLA의 ER0a(τ) \mathbb{E}R^a_0(\tau)는 agent 모두에 의한 gradient를 구해야하고 이는 위와 같이 전개하면 다음과 같이 표현 가능합니다.

θ1θ2R02(τ)=E[R02(τ)θ1logπ1(τ)(θ2logπ2(τ))T] \nabla_{\theta^1} \nabla_{\theta^2}\mathbb{R}^2_0(\tau) = \mathbb{E}[R^2_0(\tau)\nabla_{\theta^1}\log{\pi^1}(\tau)(\nabla_{\theta^2}\log{\pi^2}(\tau))^T]

=E[t=0Tγtrt2(l=0tθ1logπ1(ul1sl))(l=0tθ2logπ2(ul2sl))T= \mathbb{E}[\sum^T_{t=0}\gamma^tr^2_t\cdot(\sum^t_{l=0}{\nabla_{\theta_1}\log{\pi^1(u^1_l|s_l}}))(\sum^t_{l=0}\nabla_{\theta^2}\log{\pi^2(u^2_l|s_l))^T}

LOLA의 update는 결과적으로 다음과 같이 update하게 됩니다.

flola, pg1=θ1ER01(τ)δ+(θ2ER01(τ))Tθ1θ2ER02(τ)δη\bm{f}^1_{\mathrm{lola, \ pg}} = \nabla_{\theta^1}\mathbb{E}R^1_0(\tau)\delta+ (\nabla_{\theta^2}\mathbb{E}R^1_0(\tau))^T\nabla_{\theta^1}\nabla_{\theta^2}\mathbb{E}R^2_0(\tau)\delta\eta

Last updated