강화학습에서 에이전트(agent)가 최대화해야 할 누적 보상의 기댓값 또는 목적함수는 다음과 같다.
여기서
목적함수를 최대화하는 파라미터
경사상승법 또는 이로부터 파생된 최적화 방법을 사용하기 위해서는 목적함수의 그래디언트

목적함수의 그래디언트를 전개할 때, 현재 실행된 정책은 과거의 보상에 영향을 미치지 못한다는 점(인과성, causality)을 고려하고 행동가치(action-value) 함수
베이스라인으로서 상태가치(state-value) 함수
여기서
행동가치는 상태변수
행동가치와 상태가치 함수에 관한 벨만 방정식은 다음과 같으므로
어드밴티지 함수는 다음과 같이 상태가치 함수를 이용하여 표현할 수 있다.
정리하면, 목적함수를 최대화하는 파라미터
다음과 같이 경사상승법으로 파라미터
그런데 여기서 수식에 있는 함수들을 에이전트가 모르기 때문에, 정책을 실행해서 발생시킨 데이터, 즉 샘플 궤적을 이용해서 그래디언트를 계산해야 할 필요가 있다.
위 식에서 기댓값은 에피소드 평균값으로 근사화할 수 있다.
여기서

에피소드의 평균값으로 근사화하는 것에 비해 정확도는 못미치지만 한 개의 샘플만을 이용해서 목적함수의 그래디언트를 근사화 할 수도 있다.

하지만 위 식으로 그래디언트를 계산하려고 해도 수식 안에 있는 어드밴티지 함수
어드밴티지 함수가 다음 식으로 주어지므로
한 개의 샘플만을 이용한다면 어드밴티지는 다음과 같이 근사적으로 계산할 수 있다.
이제 상태가치 함수를 계산할 수 있으면 되는데, 데이터를 이용하여 계산 방법을 고안해 보자. 이를 위해서 먼저 상태가치 함수의 관계식이 필요하다.
벨만 방정식에 의하면 현재 상태와 다음 상태의 가치 함수는 다음과 같은 관계가 있다.
상태가치 함수를 추정하기 위해서 정책 신경망과는 다른 신경망을 이용하기로 하고, 그 신경망의 파라미터를

이 신경망의 손실함수는 상태가치 함수를 정확히 추정할 수 있는 최적의 파라미터
일반적인 지도학습(supervised learning) 문제이므로 신경망의 입력과 그 입력에 대한 정답으로 학습 데이터셋
그런데 여기서 상태가치의 참값
그러면 손실함수는 다음과 같이 된다.
여기서

손실함수를 최소화하는 파라미터
손실함수의 그래디언트는 다음과 같이 계산한다.
그런데 여기서 잠시 생각해야할 문제가 있다. 크리틱 신경망의 파라미터
따라서 타깃은 크리틱 신경망을 업데이트 할 때 마다 계속 달라지며, 달라지는 타깃을 따라가며 신경망을 계속 업데이트 해야 하므로 학습이 불안정해질 수 있다.
본래 상태가치 함수의 정의에 의하면, 상태가치 함수
그리고 손실함수의 그래디언트를 계산할 때도 문제다. 시간차 타깃
이와 같은 계산 방법을 Residual Gradient 알고리즘이라고 한다. 하지만 Residual Gradient 알고리즘은 수치적인 문제 때문에 잘 사용하지 않는다.
결론적으로 크리틱 신경망의 학습 시 크리틱 신경망의 파라미터가 일정한 값으로 수렴한다는 보장은 없다.
이제 업데이트 된

만약 학습 중에 크리틱 신경망의 파라미터가 점진적으로 업데이트된다고 가정한다면 업데이트된

다음에는 크리틱 신경망에 이어서 행동을 산출하는 액터 신경망에 대해서 알아본다.
'AI 딥러닝 > RL' 카테고리의 다른 글
Tensorflow2로 만든 A2C 코드: Pendulum-v0 (0) | 2021.04.20 |
---|---|
A2C 알고리즘-2: 액터 신경망 (0) | 2021.04.20 |
정책 그래디언트 기반 강화학습의 원리 (0) | 2021.04.13 |
강화학습 문제 (0) | 2020.11.08 |
강화학습의 한계 (0) | 2020.10.28 |
댓글