Deep Q-Learning
우리는 이전에 Deep Q-Learning을 다뤘었다.
이 모델이 연속적인 action 공간에 적용될 수 없는 이유는 다음과 같다.
우리는 이전에 target이 로 표현된다는 것을 배웠었다.
그러나 action 공간이 연속적이라면, action은 무한대에 가까운 개수를 가지게 되기 때문에
가장 큰 Q-Value 값을 얻는 a를 찾는 것은 매우 복잡한 작업이 된다.
Actor-Critic
이를 해결하기 위한 첫 번째 해결법은 Actor-Critic 모델을 적용하는 것이다.
Actor는 Policy로서 state들을 입력 값으로 받고, action들을 출력 값으로 도출한다.
또 다른 신경망인 Critic은 state들과 종속된 action들을 입력 값으로 받고 Q-Value를 출력한다.
그리고 나서 해당 Q-Value를 Gradient Ascent를 위해 사용한다.
이를 두 모델이 모두 예상 보상을 최대화하기 위해 동일한 시간에 학습된다는 의미에서 Double Learning(이중 학습)이라고 한다.
그러나 Actor-Critic 모델에는 근사치 오류가 있기 때문에, Twin Delayed DDPG 모델이 필요하게 된다.
Twin-Delayed DDPG (TD3)
이 문제를 해결하기 위한 첫 번째 트릭은 하나의 Critic에 하나의 Actor 쌍이 아닌, 두 개의 Critic에 하나의 Actor을 적용하는 것이다.
그리고 이게 Twin(쌍둥이)라는 용어가 Twin-Delayed DDPG 모델에 쓰이게 된 이유다.
TD3 모델의 첫 번째 단계는 Experience Replay Memory를 초기화시키는 과정이다.
TD3 모델은 Off-Policy 모델이기 때문에, 과거의 경험과 기억을 매번 사용한다.
TD3 모델에서는 사이즈가 20,000인 메모리를 사용한다. (즉, 20,000개의 전환들을 한번에 저장이 가능하다.)
두 번째 단계는 Actor Model의 신경망와 Actor Target의 신경망을 구축하는 것이다.
Actor Model은 state들을 입력값으로 받고, action들을 출력하는데, 이와 동일하게 초기화 될 Actor Target 또한 구성한다.
이는 다른 Policy가 되는데, Q-learning에서 target value를 안정적으로 만들기 위해 이런 트릭을 사용한다.
그리고 물론 이 신경망들은 최적의 행동 보상을 위해 갱신된다.
해당 신경망의 구조는 TD3 논문에서 확인할 수 있다.
내부에 Hidden Layer가 2개 존재하기 때문에, DDPG(Deep Deterministic Policy Gradient)에서 앞에 Deep이 붙었다.
세 번째 단계는 Critic Model의 신경망과 Critic Target의 신경망을 구축하는 것이다.
이들은 두 쌍씩 존재하며, 각자 다른 Q-Value를 도출한다.
Critic 신경망의 구조는 Actor 신경망과 유사하다.
다만, 굳이 마지막에 -1~1 사이의 값으로 제한하기 위한 tanh 레이어가 존재하지 않는다.
위 이미지는 전체적인 TD3의 구조를 나타낸다.
두 신경망은 Actor 신경망으로, Policy를 학습한다.
그리고 나머지 네 신경망은 Critic 신경망으로, Q-Value를 학습한다.
실제로 우리가 TD3를 학습할 때에는, 위 이미지의 특정한 길을 따라간다.
- 우선 Actor Target은 state들을 입력으로 받고, action들을 출력 값으로 내놓는다.
- 이 action들은 Critic Target에서 사용되어, Q-Value를 도출한다.
- 그리고 나면 Critic Target의 결과물은 Critic Model에서 다시 사용된다.
- 이 구동 과정의 결과물은 다시 Actor Model에서 사용된다.
위 루프를 통해 TD3를 학습할 수 있게 된다.