본 글은 OpenAI 팀에서 NIPS 2017 Conference 에서 발표한 "Hindsight Experience Replay"라는 논문에 대해서 리뷰 겸 정리하는 글이다.
세 줄 요약
1. 어떤 문제을 강화학습으로 풀 때, 환경으로부터 얻는 보상이 매우 희소하거나 받거나 말거나 인 경우가 있다.
2. 이런 경우, 학습에 어려움이 있기 때문에 보상 함수를 복잡하게 설계해야하는데, Hindsight Experience Replay, HER는 원래 점수를 얻을 수 있는 목표 상태가 아니라 경험했던 상태를 목표로 바꾸어 경험으로 저장함으로써, 실패한 경험을 성공한 경험으로 전환하고 효율적으로 학습할 수 있도록 해준다.
3. 경험을 재생할 때(Replaying the experience) 목표를 바꾸어 다시 replay memory에 저장함으로써 경험 누적 속도를 빠르게, 경험량을 상대적으로 크게해준다.
Hindsight Experience Replay란..? (3 절)
3.1 영감을 받은 예제
3.2 Multi-Goal ML
HER 의사 코드 해설 (3.3 절)
HER의 핵심은 아래 의사 코드의 빨간 묶음 부분이다.
한 에피소드 내에 3개의 반복문이 존재한다. 각각 환경과의 상호작용, HER Process, Experience Replay 과정이 있다. 따라서 핵심부분인 2번째 반복문, 빨간 박스만 설명한다.
한번의 에피소드에서 경험했던 에피소드 경험을 주 메모리에 저장하고 HER Strategy 목표를 뽑는 전략에 따라서 현재 경험한 에피소드에서 상태를 몇 개 뽑아서 목표로 설정한다. 그리고 현재 에피소드에서 방금 뽑은 새 목표를 목표로 설정했을 때에 대한 reward를 계산해서 경험에 추가한다.
이렇게 되면 현재 경험한 에피소드의 transition이 T개라고 하고 HER Strategy에 따라서 K개의 새로운 목표를 뽑았다고 하면, 한 에피소드에서 쌓을 수 있는 경험은 T * (K + 1) 개가 된다.
각 궤적에서 재생할 목표를 몇 개나 뽑아야할까? 그리고 목표를 어떻게 선택할까? (4.5 절)
HER에서 새로운 목표를 선정하는 전략으로 다음과 같이 4개를 소개하고 있다.
1) final
에피소드의 마지막 상태를 새로운 목표로 설정한다.
2) episode
에피소드 상에서 무작위적으로 K개의 상태를 뽑아서 새로운 목표로 설정한다.
3) future
에피소드 상에서 무작위적으로 K개의 상태를 뽑고, 이후의 상태를 관찰한다.
4) random
전체 학습 과정에서 마주친 K개의 상태를 뽑는다.
구현
사족
1. 내 생각에는 PER 과 HER를 섞으면 좋을 것 같다. 이는 실패의 경험을 성공의 경험으로 바꾸었다면 이 경험을 더 중요하게 생각하고 재생할 때 더욱 자주 재생하면 좋지 않을까? 비슷한 논문으로 [2-3]이 있다. [2]는 HER에서 특정 거리 이내의, 성공확률이 높은 상태만을 저장하는 것이다.
2. OpenAI Gym의 classic control 문제인 Mountain car와 Lunar Lander 문제에 적용해볼 수 있을 것 같다. 논문과 같이 로봇팔을 운용하는 문제보다 더 차원이 낮은 문제이기 때문이다.
Refererence
[1] "Hindsight Experience Replay"
[2] "Hindsight Experience Replay with Experience Ranking"
[3] "DHER : Hindsight Experience Replay for Dynamic Goals"
'RL' 카테고리의 다른 글
[작성중] PPO - Proximal Policy Optimization Algorithms 논문 리뷰 및 요약 (0) | 2021.09.05 |
---|---|
Policy Gradient Method (0) | 2021.08.29 |
CNN 관련 참고 사이트 정리 (0) | 2021.08.18 |
DDPG 계열 논문 정리 (0) | 2021.08.09 |
[PER] Prioritized Experience Replay 논문 리뷰 (0) | 2021.07.29 |