리플레이 메모리
리플레이 메모리(replay memory)는 에이전트가 수집한 데이터를 저장해 두는 저장소입니다. 큐-러닝에서는 데이터 간의 상관관계로 학습 속도가 느려지는 문제가 있었는데, 딥 큐-러닝에서는 리플레이 메모리를 도입하여 해결하고 있습니다. 즉, 에이전트 상태가 변경되어도 즉시 훈련시키지 않고 일정 수의 데이터가 수집되는 동안 기다립니다. 나중에 일정 수의 데이터가 리플레이 메모리(버퍼)에 쌓이게 되면 랜덤하게 데이터를 추출하여 미니 배치를 활용해서 학습합니다. 이때 하나의 데이터에는 상태, 행동, 보상, 다음 상태가 저장됩니다.
데이터 여러 개로 훈련을 수행한 결과들을 모두 수렴하여 결과를 내므로 상관관계 문제를 해결할 수 있습니다.
합성곱 신경망을 활용한 큐-함수
딥 큐-러닝은 큐 값의 정확도를 높이려고 합성곱 신경망을 도입했습니다.
이제 딥 큐-러닝(DQN)을 예제로 살펴보겠습니다.
이번에 진행할 예제에서는 OpenAI Gym의 CartPole-v1을 이용합니다. CartPole-v1의 에이전트는 카트에 부착된 막대기가 수직 상태를 유지할 수 있도록 카트를 왼쪽 또는 오른쪽으로 이동하는 작업을 반복합니다. 즉, 중심을 찾기 위해 지속적으로 이동하는 과정을 반복합니다.
▲ 그림 12-15 딥 큐-러닝 예제