코딩하는 임초얀

논문 리뷰 - "Towards Applicable Reinforcement Learning: Improving the Generalization and Sample Efficiency with Policy Ensemble" (IJCAI 2022) 본문

논문 리뷰

논문 리뷰 - "Towards Applicable Reinforcement Learning: Improving the Generalization and Sample Efficiency with Policy Ensemble" (IJCAI 2022)

초얀 2024. 4. 22. 15:13
Abstract

 

주식 투자 같은 곳에 RL을 사용하기 힘든 이유: noisy observation과 환경의 지속적인 변화. 각각을 해결하려면 sample efficiency가 높아야 하고, generalization도 잘 해야 한다. SL (supervised learning)에서는 앙상블이 정확도도 높아지고 일반화도 잘 하는 걸 생각해보면, RL에도 앙상블을 적용해볼 수 있다. => end-to-end로 앙상블 policy들을 학습하는 EPPO가 등장!! 특히 EPPO는 1. subpolicy들과 ensemble policy를 유기적으로 결합하여 둘 다를 동시에 optimize한다. 2. policy 공간에서 diversity enhancement regularization을 사용해서 [unseen state에서 일반화를 돕고] & [explore도 잘 하도록] 했다.

  • 그래서 결론은 이걸 주식투자에 사용할 수 있다는 건가? ㅇㅇ.. 진짜 실험함.. Section 4.4
  • end-to-end가 아닌 예시에는 어떤 게 있길래?
  • 다양성 향상 regularization을 쓰면 일반화는 그럴 듯한데 explore는 뭐임?

 

Introduction

 

그래서 앙상블을 쓸 건데, value function 앙상블이 아니라 policy 앙상블을 쓰는 이유는 다음과 같다: 1. Value-based는 noise에 취약하다. 2. 이때까지의 RL 앙상블은 SL이 가능한 부분인 환경 모델링, value function approx. 등에 사용되었다. (그래서 우리는 novelty가 있다?) 3. SL과는 달리 RL에는 policy를 배우는 게 중요하다!!

 

baseline으로는 PPO를 선택했다. 그냥 제일 좋으니까ㅋ EPPO 개발에 중점적이었던 것은: 1. Deep RL에 쓸 수 있는 합리적이도 효과적인 policy 앙상블이 뭘까? 2. 이게 정책 학습에 어떻게 도움이 될까?

 

물론 기존에도 policy 앙상블이 있었지. 그냥 개별 sub-policy들을 많이 학습해서 단순히 합치거나 (각 sub-policy들간의 협력을 무시하기 때문에 성능 향상이 보장되지 않음) DnC로 상태공간을 나눠서 sub-policy를 학습하거나 (상태공간을 잘 나누는 거 자체가 어렵고 각 sub-policy는 나무만 보고 숲을 보지 못해서 특히 deepRL에서 성능 하락). 그리고 policy optimization에 앙상블이 끼치는 영향 자체가 연구가 덜 되었음ㄷㄷ

 

EPPO에서 고려한 것 1. Ensemble learning 따로, policy learning 따로가 아니라, 합쳐서 하나로 봐야 한다. 그래야 sub-policy들 간에 협력이 되고 ensemble 성능 보장도 가능함. Subpolicy training과 ensemble(=decision aggregation)을 통째로 합쳐서, ensemble-aware loss 하에서 optimize. 이 때 exploit과 sample efficiency를 위해, subpolicy optimization에 ensemble policy가 수집한 데이터도 이용. 이렇게 하면 sample efficiency도 증가함을 이론적으로 증명. 2. 다양성 향상 regularization을 정책 공간에 적용하여, diversity를 보장함과 동시에 ensemble 성능도 향상함. 이 부분은 실험적으로 보였는데, subpolicy들의 모드 붕괴나 overfitting이 일어나지 않았음 : ensemble이 가지고 있는, unseen state에 대한 일반화 능력을 유지함.

 

Bulletpoints 1. Ensemble policy learning을 위한 간단하고 효과적인 방법론을 제시하고, exploration 촉진과 sample efficiency 향상을 증명함. 2. Policy ensemble에 diversity enhancement regularization을 적용한 첫 번째 시도. 3. 실험적으로 sample efficiency와 성능 향상을 보임.

 

  • Sample efficiency 증가의 이론적인 증명은 Thm 1에..

 

Related works

 

  1. RL 앙상블: Environment dynamics modeling이거나 value function apprx거나 둘 중 하나였음. Type 1. SL의 방법을 그대로 가져와서 trained policy를 단순합. 근데 이것들은 RL의 정책 학습보다는 SL과 더 가까움. SL task는 one-step prediction이면 충분하지만, RL은 ‘sequence of decision’을 만들어내야함. 그래서 협력이 중요. Type 2. DnC. 이건 MoE (Mixture of Experts)라고 보면 됨. 상태공간을 나누고 그 안에서 subpolicy를 train한 후에 합치는 DnC 그 자체. 하지만 잘 나누는 것도 어렵고, 합쳐서 성능 하락이 있을 수도 있어서..
    • ex) 이기민 교수님 Sunrise : Q-function의 앙상블임. 그래서 엄밀히 말하면 policy 앙상블은 아님.
    • DnC가 특히 DeepRL에는 맞지 않는다고 계속 말하고 있는데, 이거에 대한 실험이 뒤에 있는지 봐야겠음..
  2. Diversity Enhancement: 보통 population-based RL에서 사용됨. KL divergence, maximum mean discrepancy, determinantal point process 등.
    • ? Population-based RL이 뭔데?

 

Policy Ensemble

 

결국 그냥 산술평균 내는 거였다. Pi^hat에 해당하는 network가 따로 있는 게 아니라 k개의 theta를 다 합쳐서 pi^hat인거임. Sample efficiency는 pi^hat만 환경과 interact함으로써 얻기. 굳이 sub-policy들이 하나하나 interact할 필요가 없을 것이라는 게 이 논문의 주장? 예측?. 

  • 근데 그 전까지는 sub-policy가 하나하나 interact해왔다는 말인가?
  • 결국 k개의 parameter를 유지한다는건데.. 메모리가...
  • “we would expect that the performance improvement of the designed ensemble method comes from the algorithm itself instead of the more trajectories sampled by more sub-policies.” 검증했는지 아닌지 체크할 것

 

Policy Optimization

 

Loss 식에서도 볼 수 있듯이 pi^hat이 얻은 데이터로만 update했음. 즉, subpolicy들을 업데이트하는 데에 policy gradient 외에 다른 cost가 필요없다 (?). Sample efficiency!

 

앙상블이 SL에 효과적임은 잘 알려져있지만, decision making에도 앙상블이 효과적일까요? SL의 정답은 하나인 반면 RL의 optimal policy는 여러 개일 수 있고, task를 처리하는 방법이 다양할 경우 잘 훈련된 sub-policy를 단순히 합치기만 하면 성능이 나빠진다. (맞는 듯.. 길이 ㄱ자와 ㄴ자가 가능할 때 각 sub-policy는 둘을 하나씩 학습했겠지만 그걸 평균내면…ㄷㄷ) 그렇기 때문에 sub-policy끼리의 cooperation이 필요하다. 그걸 반영한 새로운 loss 식을 만들어봤습니다 (eq3)

  • eq2랑 뭐가 다르죠? Eq2는 previous pi^hat에 맞춰서 sub-policy를 업데이트. Eq3은 previous pi^hat에 맞춰서 pi^hat을 업데이트. Eq2가 존재한다는 게 cooperation에 해당하는건가? 그럼 맥락이 좀 이상한뎅

 

여기서 문제는? 모든 sub-policy가 하나로 수렴하는 mode collapse. 특히 여기서는 sub-policy를 previous pi^hat에 맞게 업데이트하므로 이게 발생할 가능성이 더 커진다. 그리고 Eq1에서 보듯이 EPPO는 action sampling을 sub-policy 중에 하나를 선택해서 진행하기 때문에 explore가 잘 되려면 sub-policy의 다양성이 보장되어야 한다. 해결책은? Diversity enhancement regularization. 각 sub-policy가 orthogonal해야 이상적임. 그래서 Ld라는 loss를 또 만들었는데, 이산 행동 공간의 경우 [1/(KC2) * (모든 sub-policy pair에 대해 곱하고 더하기)] 가 된다. (KL divergence나 MMD를 사용해도 되겠지만 계산 빨라지라고 Ld를 새로 만듦)

 

  • Taking eq1 to eq3이 무슨 말이죠?
  • “Eq1에서 보듯이 EPPO는 action sampling을 sub-policy 중에 하나를 선택해서 진행”? K개 중에 하나를 선택하는 게 아니라 K개의 mean을 취하는거 아님..? explore 때를 말하는 건가..
  • 계산이 빨라지라고 Ld를 새로 만들었다는 건, ensemble에 시간이 너무 많이 걸려서 Ld에서라도 시간을 줄여야 경쟁력이 있다는 것..?
  • 연속 행동 공간에 해당하는 Ld 식이 따로 있나? 아님 KL divergence나 MMD를 사용할 수 밖에 없는건가?
  • 또 다시 hyper parameter가 도입되었군요.. alpha와 beta의 대략적인 값이 제시되었는지 확인 필요. 아 K도 hyperparameter임 ㅋㅋ

 

잡다한 찌끄레기 생각
  • 결국 Mode collapse를 막기 위한 diversity enhancement가 메인인가??
  • Pi^hat으로 행동하고 pi_k들을 업데이트하는 거면 off-policy의 성질을 좀 띈다고 봐도 되나?
  • Sample-effiecient하다고 한 것 같은데, 어떻게 sample efficient를 달성하는걸까?
  1. 이 논문에서 제안한 방법론이 어떤 응용 분야에 사용될 수 있을까?
    • 이산 행동 공간을 가지면서, 환경에 대한 robustness가 특히 중요한 곳 = 환경에 noise가 조금 들어가있거나, 애초에 partially observable한 환경.
    • 논문에서는 partially observable gridworld나 atari, 금융거래 등.
  2. 실제에 적용하기 위해 이 방법론에서 개선해야 할 한계는?
    • 앙상블 특성 상, 느릴 것이고 많은 메모리가 필요할 것입니다. 특히 속도를 빠르게 하기 위해서 KL divergence 등과 같은 것 대신 L_d를 새로 만들어서 사용했다고 했는데, 이를 보면 ensemble 등에 시간이 너무 많이 걸려서 L_d를 써야지만 경쟁력이 있다는 뜻..? (추측)
    • 이산 행동 공간에 대해서만 사용할 수 있는 듯? Github 코드에서도 이산 행동 공간임을 assert한 후에 진행하도록 하고 있다.
    • 결국 학습된 policy를 가지고 추후에 inference를 해야 하는데, EPPO가 아무리 환경에 대해 generalization이 잘 된다고 해도 환경에 단순 noise가 끼는 것이 아니라 환경이 일정한 방향으로 계속 변해간다면 주기적으로 재학습을 시켜줘야 한다.
  3. 이 논문의 가장 큰 기여/장점 및 가장 큰 한계?
    • Contribution: policy ensemble의 효과에 대해 처음으로 분석하고, policy ensemble에 최초로 diversity enhancement regularization을 도입.
    • Limitation: alpha, beta, K를 어떻게 선택하면 좋을지에 대한 조언이 빠져 있다. 실험에서는 주로 K=4를 사용하긴 했는데, 다른 환경으로 가면 또 다른 K 값이 optimal일 수도 있겠지?

 

 


다른 잡다한 생각 환영합니다. 댓글로.

Comments