Deep Learning/RL

RL) Hindsight Experience Replay

zooyeonii 2021. 8. 27. 15:05

논문 링크 : https://arxiv.org/pdf/1707.01495.pdf

이전 게시글 : Multi-task RL 과 Goal-conditioned RL 이란 

HER Idea 

Hindsight'뒤늦은 깨달음' 이라는 의미를 가집니다. 

간단한 아이디어는 다음과 같습니다. 
만약 위와 같이 2가지 테스크를 진행하고자 합니다. 첫번째는 패스를 하는 것이고, 두번째는 골을 넣는 것입니다. 

테스크2(골 넣기)를 위해 에피소드를 진행했습니다. 그런데 알고보니 그 중 테스크1, 즉 아주 좋은 패스를 했다면? 어떻게 해야할까요? 에서 시작하게 됩니다. 

자 어떤걸 선택할까요? 난 골을 넣으려고 했는데 패스를 해버린거니까 0점을 줄수도 있겠고, '그런식으로 패스를 하면 돼!' 라고 100점을 줄 수도 있겠죠. 

이 논문에서는 2번 방법을 선택합니다. 즉, 뒤돌아서 experience를 봤을 때, 의도한 goal은 아니었지만, 다른 goal을 달성했다면 해당 goal의 데이터로 relabeling 하여 저장하는 방식입니다. (e.g. 골 넣으려고 한 episode data를 'pass' 라고 relabeling 하여 저장함. pass를 학습하는 데이터에 추가됨.) 따라서 hindsight(뒤늦은 깨달음)에 적절한 것 같습니다. 

Background 

1. Sparse Reward Setting Problem 

환경이 reward를 아주 희소하게 제공하는 경우를 뜻합니다. 
이러한 환경에서 exploration이 굉장히 어렵습니다. 
HER 은 sparse reward 환경에서 뛰어난 성능을 보입니다. 

2. UVFA (Universal value function approximator) 

하나의 agent가 multi-goal을 학습할 수 있도록, 가치함수를 goal에 따라서 별도로 계산합니다. 
state 에 goal 을 추가한다는 아이디어는 이 논문에서 시작되었습니다.
state와 goal을 input으로 받고, (reward) rt = r_g(st, at) /(Q-function) Qπ (st, at, g) = E[Rt|st, at, g] 
Q함수에 state, goal 이 concatenate 되어 input으로 들어갑니다. goal 은 task id의 역할을 합니다. 

HER pseudo code 에서 Relabeling Process (출처: CS330)

우선 policy를 따라서 data sample을 생성합니다. 이 때 goal state는 s_g임을 알 수 있습니다. 
이를 버퍼에 저장해놓고요, Hindsight relabeling을 수행합니다. 
기존 goal_state을 달성하지 못했을 때, Data set 에서 s_g(original goal state) -> s_T(다른 task) 로 relabeling하고, T goal의 reward를 다시 계산합니다. 
이렇게 수정한 후 다시 replay buffer 에 저장합니다. 

Relabeling 할 때 정해진 규칙은 없을까요? 
논문에서 제안하는 Relabeling 전략이 4가지 있습니다. 그 중 Random이 있는데, 이는 trajectory에서 어느 state를 가져오든 상관없습니다. trajectory가 reward 높게 받는 goal로 바꿀 수 있습니다. 

어떤 조건에서 hindsight relabeling을 수행할 수 있을까요?
1) reward function을 알고, 계산 가능할 때. 
2) off-policy algorithm일 때 (experience를 모아놔야 relabeling이 가능하기 때문에) 

Experiment Results

multi-goal 수행할 때

Summary 

1. Sparse Reward 환경에서 sample-efficient 학습이 가능하다. 
2. 동일한 환경에서 sparse shaping을 해주었을 때보다 더 좋은 성능을 보임으로써, sparse shaping을 대체할 수 있는 방법임을 보였다. 
3. UVFA에서 제안한 pseudo reward를 차용하였다. 
4. 실패한 trajectory에서 달성한 다른 goal을 desired goal로 relabeling하여 reward를 발생시킨다. 

data sample을 의도했던 goal (desired goal)이 아니더라도 다른 goal을 달성했다면, 해당 goal의 데이터로 수정하여 재사용하므로 효율적인 데이터 사용이 가능하며, reward shaping 과 비슷한 효과를 발생시킨다. reward shaping은 해당 문제의 도메인 지식이 필요한다는 한계점이 있었지만 해당 알고리즘은 도메인 없이도, 오직 다른 goal의 reward로 수정함으로써 같은 효과를 낼 수 있다는 장점을 가진다. 

'Deep Learning > RL' 카테고리의 다른 글

Multi-task RL  (0) 2021.08.22
[paper review] Asynchronous Methods for Deep RL  (0) 2021.05.21
RL) 03. Monte-Carlo Prediction  (0) 2021.03.30
RL) 02. Dynamic Programming  (0) 2021.03.30
RL) 01. MDP  (0) 2021.03.19