A2C

Seulgi Kim·2023년 6월 13일
0

reinforce learning

목록 보기
12/14

REINFOFRCE 알고리즘의 단점

  1. 한 에피소드가 끝나야 정책을 업데이트할 수 있다.
  2. 그래디언트 분산이 매우 크다.
  3. 온-폴리시 방법이다.

여기서는 1번과 2번에 대한 단점을 개선한 A2C(advantage actor-critic) 알고리즘을 공부할 예정이다.

목적함수

REINFORCE 알고리즘의 목적함수와 그래디언트는 다음과 같다.

J(θ)=Eτpθ(τ)[t=0Tγtr(xt,ut)]\begin{aligned} J(\theta) = {\mathbb E}_{\tau \sim p_\theta(\tau)} \left[ \sum\limits_{t=0}^{T}\gamma^t r(x_t, u_t) \right] \end{aligned}
θJ(θ)=Eτpθ(τ)[t=0T(γt θlogπθ(utxt) k=tT(γktr(xk,uk)))]=t=0T[Eτpθ(τ)[γtθlogπθ(utxt)(k=tTγktr(xk,uk))]]\begin{aligned} \nabla_\theta J(\theta) &= {\mathbb E}_{\tau \sim p_\theta(\tau)} \left[ \sum\limits_{t=0}^T \left( \gamma^t ~\nabla_\theta \log \pi_\theta (u_t|x_t) ~\sum\limits_{k=t}^T \left( \gamma^{k-t} r(x_k, u_k) \right) \right) \right] \\ &= \sum\limits_{t=0}^{T} \left[ {\mathbb E}_{\tau \sim p_\theta(\tau)} \left[ \gamma^t \nabla_\theta \log \pi_\theta(u_t|x_t) \left( \sum\limits_{k=t}^T \gamma^{k-t} r(x_k, u_k) \right) \right] \right] \end{aligned}

궤적 τ\tauτx0:ut\tau_{x_0:u_t}τxt+1:uT\tau_{x_{t+1}:u_T}로 분할하여 생각해보자. 마르코프 가정에 의해 다음과 같이 행동가치함수로 나타낼 수 있다.

θJ(θ)=t=0Tτx0:utτxt+1:uTγtθlogπθ(utxt)[(k=tTγktr(xk,uk))pθ(τxt+1:uTτx0:ut)]pθ(τx0:ut)dτxt+1:uTdτx0:ut=t=0Tτx0:utγtθlogπθ(utxt)τxt+1:uT(k=tTγktr(xk,uk))pθ(τxt+1:uTxt,ut)dτxt+1:uT pθ(τx0:ut)dτx0:ut=t=0Tτx0:utγtθlogπθ(utxt)Qπθ(xt,ut) πθ(utxt)pθ(xt)dτx0:ut=t=0T(Extpθ(xt),utπθ(utxt)[γtθlogπθ(utxt)Qπθ(xt,ut)])=t=0T(Extdθ(xt),utπθ(utxt)[θlogπθ(utxt)Qπθ(xt,ut)])\begin{aligned} \nabla_\theta J(\theta) &= \sum\limits_{t=0}^T \int_{\tau_{x_0:u_t}} \int_{\tau_{x_{t+1}:u_T}} \gamma^t \nabla_\theta \log \pi_\theta (u_t|x_t) \left[ \left( \sum\limits_{k=t}^T \gamma^{k-t} r(x_k, u_k) \right) p_\theta (\tau_{x_{t+1}:u_T}|\tau_{x_0:u_t}) \right] p_\theta(\tau_{x_0:u_t}) d\tau_{x_{t+1}:u_T} d\tau_{x_0:u_t} \\ &= \sum\limits_{t=0}^T \int_{\tau_{x_0:u_t}} \gamma^t \nabla_\theta \log \pi_\theta (u_t|x_t) \int_{\tau_{x_{t+1}:u_T}} \left( \sum\limits_{k=t}^T \gamma^{k-t} r(x_k, u_k) \right) p_\theta(\tau_{x_{t+1}:u_T}|x_t, u_t) d\tau_{x_{t+1}:u_T} ~p_\theta(\tau_{x_0:u_t}) d\tau_{x_0:u_t} \\ &= \sum\limits_{t=0}^T \int_{\tau_{x_0:u_t}} \gamma^t \nabla_\theta \log \pi_\theta (u_t|x_t) Q^{\pi_\theta} (x_t, u_t) ~\pi_\theta(u_t|x_t) p_\theta(x_t) d\tau_{x_0:u_t} \\ &= \sum\limits_{t=0}^T \left( {\mathbb E}_{x_t \sim p_\theta(x_t), u_t \sim \pi_\theta (u_t|x_t)} \left[ \gamma^t \nabla_\theta \log \pi_\theta (u_t|x_t) Q^{\pi_\theta} (x_t, u_t) \right] \right) \\ &= \sum\limits_{t=0}^T \left( {\mathbb E}_{x_t \sim d_\theta(x_t), u_t \sim \pi_\theta (u_t|x_t)} \left[ \nabla_\theta \log \pi_\theta (u_t|x_t) Q^{\pi_\theta} (x_t, u_t) \right] \right) \end{aligned}

이때 dθ(xt)=γtpθ(xt)d_\theta(x_t) = \gamma^t p_\theta(x_t)는 상태변수 xtx_t의 감가된 확률밀도함수라고 한다.
γt\gamma^t는 에피소드 후반부 궤적의 데이터의 이용도가 크게 떨어지므로, 일반적으로 dθ(xt)=pθ(xt)d_\theta(x_t) = p_\theta(x_t)로 사용한다.
이제 반환값 GtG_t 대신 행동가치함수를 사용하는 것을 확인할 수 있다.
행동가치함수는 행동이 가해졌을 때 기대할 수 있는 미래의 반환값으로서, 시간스텝 tt에서의 기대값이기 때문에 목적함수의 그래디언트를 계산할 때 에피소드가 끝날 때까지 기다리지 않아도 된다는 장점이 있다.

분산을 줄이기 위한 방법

그래디언트의 분산을 줄이기 위해, 베이스라인 btb_t를 도입하자.
이때 btb_t는 상수이거나 행동 utu_t의 함수가 아니라고 가정한다.

θJ(θ)=t=0T(Extpθ(xt),utπθ(utxt)[θlogπθ(utxt)bt])=t=0T(xt[utθπ(utxt)dut]btpθ(xt)dxt)=t=0T(xtθ(1)btpθ(xt)dxt)=0\begin{aligned} \nabla_\theta J(\theta) &= \sum\limits_{t=0}^T \left( {\mathbb E}_{x_t \sim p_\theta(x_t), u_t \sim \pi_\theta (u_t|x_t)} \left[ \nabla_\theta \log \pi_\theta (u_t|x_t) b_t \right] \right) \\ &= \sum\limits_{t=0}^T \left( \int_{x_t} \left[ \int_{u_t} \nabla_\theta \pi(u_t|x_t) du_t \right] b_t p_\theta(x_t) dx_t \right) \\ &= \sum\limits_{t=0}^T \left( \int_{x_t} \nabla_\theta (1) b_t p_\theta(x_t) dx_t \right) \\ &= 0 \end{aligned}

즉, 목적함수의 그래디언트에서 베이스라인 btb_t를 빼도 평균값은 변하지 않는다.
분산 σ2(X)=E[(xμ)2]\sigma^2(X) = {\mathbb E}[(x-\mu)^2]이므로, 평균 μ\mu가 변하지 않는다면 분산이 커지거나 작아질 가능성이 있다.
베이스라인 btb_t는 목적함수의 그래디언트θJ(θ)\nabla_\theta J(\theta)를 최소화하는 값으로 선택하면 되는데, 일반적으로 행동가치함수 Qπ(xt,ut)Q^\pi(x_t, u_t)의 평균값인 상태가치함수 Vπ(xt)=utQπ(xt,ut)π(utxt)dutV^\pi(x_t) = \int_{u_t}Q^\pi(x_t, u_t) \pi(u_t|x_t) du_t를 사용하면 그래디언트의 분산을 줄일 수 있다.
상태가지함수는 행동 utu_t의 함수가 아니므로, 베이스라인으로 사용될 수 있다.
이제 목적함수의 그래디언트는 다음과 같이 표현된다.

θJ(θ)=t=0T(Extpθ(xt),utπtheta(utxt)[θlogπθ(utxt){Qπθ(xt,ut)Vπθ(xt)}])=t=0T(Extpθ(xt),utπtheta(utxt)[θlogπθ(utxt)Aπθ(xt,ut)])\begin{aligned} \nabla_\theta J(\theta) &= \sum\limits_{t=0}^{T} \left( {\mathbb E}_{x_t\sim p_\theta(x_t), u_t \sim \pi_theta(u_t|x_t)} \left[ \nabla_\theta \log \pi_\theta (u_t|x_t) \{Q^{\pi_\theta}(x_t, u_t) - V^{\pi_\theta}(x_t)\} \right] \right) \\ &= \sum\limits_{t=0}^{T} \left( {\mathbb E}_{x_t\sim p_\theta(x_t), u_t \sim \pi_theta(u_t|x_t)} \left[ \nabla_\theta \log \pi_\theta(u_t|x_t) A^{\pi_\theta}(x_t, u_t) \right] \right) \end{aligned}

여기서 Aπθ(xt,ut)=Qπθ(xt,ut)Vπθ(xt)A^{\pi_\theta}(x_t, u_t) = Q^{\pi_\theta}(x_t, u_t) - V^{\pi_\theta}(x_t)로 표현되며, 이를 어드밴티지(advantage) 함수라고 한다.
이제 목적함수의 그래디언트는 어드밴티지 함수에 비례하게 된다.
이를 채용한 어드밴티지 액터-크리틱(advantage actor-critic, A2C)은 기존의 그래디언트의 행동가치함수 QQ함수가 아닌, 어드밴티지 함수 AA를 얼마나 잘 추정하느냐에 달려있다.

A2C 정리

목적함수

J(θ)=Eτpθ(τ)[t=0Tγtr(xt,ut)]J(\theta) = {\mathbb E}_{\tau \sim p_\theta(\tau)} \left[ \sum\limits_{t=0}^T \gamma^t r(x_t, u_t) \right]

가정

확률적 정책, utπθ(utxt)u_t \sim \pi_\theta (u_t|x_t)

그래디언트

θJ(θ)=t=0T(Extpθ(xt),utπtheta(utxt)[θlogπθ(utxt)Aπθ(xt,ut)])\nabla_\theta J(\theta) = \sum\limits_{t=0}^{T} \left( {\mathbb E}_{x_t\sim p_\theta(x_t), u_t \sim \pi_theta(u_t|x_t)} \left[ \nabla_\theta \log \pi_\theta(u_t|x_t) A^{\pi_\theta}(x_t, u_t) \right] \right)

업데이트

θθ+αθJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)

출처

박성수 저, 2021, "수학으로 풀어보는 강화학습 원리와 알고리즘", 위키북스

0개의 댓글