1. 학습
  2. /
  3. 강의
  4. /
  5. Python으로 배우는 Deep Reinforcement Learning

Connected

연습 문제

Experience replay 버퍼

이제 Experience Replay를 지원하는 데이터 구조를 만들어 보겠습니다. 이를 통해 에이전트가 훨씬 효율적으로 학습할 수 있어요.

이 리플레이 버퍼는 두 가지 연산을 지원해야 합니다:

  • 나중에 샘플링할 수 있도록 경험을 메모리에 저장하기
  • 메모리에서 과거 경험을 무작위로 뽑아 배치로 "재생"하기

리플레이 버퍼에서 뽑은 데이터는 신경망 입력으로 사용되므로, 편의를 위해 버퍼는 torch Tensor를 반환해야 합니다.

torch와 random 모듈, 그리고 deque 클래스는 연습 문제 환경에 이미 임포트되어 있습니다.

지침

100 XP
  • ReplayBuffer의 push() 메서드를 완성해 experience_tuple을 버퍼 메모리에 추가하세요.
  • sample() 메서드에서 self.memory로부터 크기가 batch_size인 무작위 샘플을 뽑으세요.
  • 다시 sample()에서, 처음에는 샘플이 튜플의 리스트 형태로 뽑히므로 이를 리스트의 튜플로 변환해야 합니다.
  • actions_tensor의 형태를 (batch_size)가 아니라 (batch_size, 1)로 변환하세요.