REINFOFRCE 알고리즘의 단점
- 한 에피소드가 끝나야 정책을 업데이트할 수 있다.
- 그래디언트 분산이 매우 크다.
- 온-폴리시 방법이다.
여기서는 1번과 2번에 대한 단점을 개선한 A2C(advantage actor-critic) 알고리즘을 공부할 예정이다.
목적함수
REINFORCE 알고리즘의 목적함수와 그래디언트는 다음과 같다.
J(θ)=Eτ∼pθ(τ)[t=0∑Tγtr(xt,ut)]
∇θJ(θ)=Eτ∼pθ(τ)[t=0∑T(γt ∇θlogπθ(ut∣xt) k=t∑T(γk−tr(xk,uk)))]=t=0∑T[Eτ∼pθ(τ)[γt∇θlogπθ(ut∣xt)(k=t∑Tγk−tr(xk,uk))]]
궤적 τ를 τx0:ut와 τxt+1:uT로 분할하여 생각해보자. 마르코프 가정에 의해 다음과 같이 행동가치함수로 나타낼 수 있다.
∇θJ(θ)=t=0∑T∫τx0:ut∫τxt+1:uTγt∇θlogπθ(ut∣xt)[(k=t∑Tγk−tr(xk,uk))pθ(τxt+1:uT∣τx0:ut)]pθ(τx0:ut)dτxt+1:uTdτx0:ut=t=0∑T∫τx0:utγt∇θlogπθ(ut∣xt)∫τxt+1:uT(k=t∑Tγk−tr(xk,uk))pθ(τxt+1:uT∣xt,ut)dτxt+1:uT pθ(τx0:ut)dτx0:ut=t=0∑T∫τx0:utγt∇θlogπθ(ut∣xt)Qπθ(xt,ut) πθ(ut∣xt)pθ(xt)dτx0:ut=t=0∑T(Ext∼pθ(xt),ut∼πθ(ut∣xt)[γt∇θlogπθ(ut∣xt)Qπθ(xt,ut)])=t=0∑T(Ext∼dθ(xt),ut∼πθ(ut∣xt)[∇θlogπθ(ut∣xt)Qπθ(xt,ut)])
이때 dθ(xt)=γtpθ(xt)는 상태변수 xt의 감가된 확률밀도함수라고 한다.
γt는 에피소드 후반부 궤적의 데이터의 이용도가 크게 떨어지므로, 일반적으로 dθ(xt)=pθ(xt)로 사용한다.
이제 반환값 Gt 대신 행동가치함수를 사용하는 것을 확인할 수 있다.
행동가치함수는 행동이 가해졌을 때 기대할 수 있는 미래의 반환값으로서, 시간스텝 t에서의 기대값이기 때문에 목적함수의 그래디언트를 계산할 때 에피소드가 끝날 때까지 기다리지 않아도 된다는 장점이 있다.
분산을 줄이기 위한 방법
그래디언트의 분산을 줄이기 위해, 베이스라인 bt를 도입하자.
이때 bt는 상수이거나 행동 ut의 함수가 아니라고 가정한다.
∇θJ(θ)=t=0∑T(Ext∼pθ(xt),ut∼πθ(ut∣xt)[∇θlogπθ(ut∣xt)bt])=t=0∑T(∫xt[∫ut∇θπ(ut∣xt)dut]btpθ(xt)dxt)=t=0∑T(∫xt∇θ(1)btpθ(xt)dxt)=0
즉, 목적함수의 그래디언트에서 베이스라인 bt를 빼도 평균값은 변하지 않는다.
분산 σ2(X)=E[(x−μ)2]이므로, 평균 μ가 변하지 않는다면 분산이 커지거나 작아질 가능성이 있다.
베이스라인 bt는 목적함수의 그래디언트∇θJ(θ)를 최소화하는 값으로 선택하면 되는데, 일반적으로 행동가치함수 Qπ(xt,ut)의 평균값인 상태가치함수 Vπ(xt)=∫utQπ(xt,ut)π(ut∣xt)dut를 사용하면 그래디언트의 분산을 줄일 수 있다.
상태가지함수는 행동 ut의 함수가 아니므로, 베이스라인으로 사용될 수 있다.
이제 목적함수의 그래디언트는 다음과 같이 표현된다.
∇θJ(θ)=t=0∑T(Ext∼pθ(xt),ut∼πtheta(ut∣xt)[∇θlogπθ(ut∣xt){Qπθ(xt,ut)−Vπθ(xt)}])=t=0∑T(Ext∼pθ(xt),ut∼πtheta(ut∣xt)[∇θlogπθ(ut∣xt)Aπθ(xt,ut)])
여기서 Aπθ(xt,ut)=Qπθ(xt,ut)−Vπθ(xt)로 표현되며, 이를 어드밴티지(advantage) 함수라고 한다.
이제 목적함수의 그래디언트는 어드밴티지 함수에 비례하게 된다.
이를 채용한 어드밴티지 액터-크리틱(advantage actor-critic, A2C)은 기존의 그래디언트의 행동가치함수 Q함수가 아닌, 어드밴티지 함수 A를 얼마나 잘 추정하느냐에 달려있다.
A2C 정리
목적함수
J(θ)=Eτ∼pθ(τ)[t=0∑Tγtr(xt,ut)]
가정
확률적 정책, ut∼πθ(ut∣xt)
그래디언트
∇θJ(θ)=t=0∑T(Ext∼pθ(xt),ut∼πtheta(ut∣xt)[∇θlogπθ(ut∣xt)Aπθ(xt,ut)])
업데이트
θ←θ+α∇θJ(θ)
출처
박성수 저, 2021, "수학으로 풀어보는 강화학습 원리와 알고리즘", 위키북스