Twin-Delayed DDPG (TD3)
이제 TD3 모델의 나머지 부분을 다뤄보도록 하겠다.
열세 번째 단계는 Actor Model의 가중치를 업데이트하는 단계이다.
Actor Model의 최적화된 변수들 찾는다는 것은 각 state에서 최적의 action을 수행하기 위한 policy를 찾는 것을 의미한다.
예상 보상에 대한 명시적인 공식은 없지만, 우리는 대신에 Q-Value를 가지고 있다.
즉, 우리는 Q-Value를 예상 보상의 근사치로 사용할 것이다.
Actor Model의 가중치와 관련하여 Critic Model의 출력값을 미분하여 Gradient Ascent를 수행함으로써, 우리는 Actor Model의 가중치를 업데이트 할 수 있다.
Gradient Ascent 공식은 다음과 같다.
위 과정을 시각화하면 다음과 같다.
우리가 아직 하지 않은 작업이 하나 있는데, 바로 Actor Target들과 Critic Target들을 갱신하지 않았다는 점이다.
이를 위해 열네 번째 단계에서 Polyak Averaging(폴리악 평균화)를 사용하여 Actor Target의 가중치를 계산한다.
Polyak Averaging이란, 가중치들이 아래의 공식을 통해 갱신될 것임을 의미한다.
여기서 은 Actor Target의 가중치들을 의미하고, 는 Actor Model의 가중치들을 의미한다.
보통 는 0.005처럼 아주 작은 숫자를 사용하며, 위 공식이 의미하는 바는 Actor Target의 가중치에 Actor Model의 가중치를 아주 조금 옮긴다는 뜻이다.
이런 과정을 통해 Target을 학습시키는 이유는, 학습 과정을 안정화할 수 있기 때문이다.
마지막 열다섯 번째 단계에서는 위와 같은 과정으로 Critic Target의 가중치도 갱신한다.
그런데 오늘 글들을 다루면서 TD3 모델의 심장과도 같은 아직 매우 중요한 것을 언급하지 않았다.
바로 우리는 TD3 모델에서 Delayed 파트를 아직 다루지 않았다.
이 Delayed(지연되는) 부분은 매 두 번째 반복마다 한 번씩 Actor Model과 Target들을 업데이트함을 의미한다.
그리고 이것이 바로 기존 DDPG 모델의 성능을 발전시키는 트릭이다.
마지막 단계를 시각화하면 다음과 같다.