- real-world 문제에 대한 도전은 AI 분야의 오랜 목표
- Backgammon, Chess, Atari, Go 등의 게임을 Reinforcement Learning을 통해 해결
- 본 논문에서는 longtime horizon, partially observation, high dimensionality observation and action 환경인 Dota 2를 Reinfocement 를 통해 해결하고자 함
- Dota 2 agent인 OpenAI Five는 Dota 2 world champion 인 OG team를 물리쳤고, 이후 community에 대전 가능하도록 공개하여 7000 게임에서 99.4% 승률 달성
- OpenAI Five 개발 동안 계속해서 코드와 환경이 변했기 때문에 surgery라고 불리는 최소한의 loss로 훈련을 계속 지속할 수 있는 방식 제안
- Long time horizons
- Dota 2는 30Hz로 거의 45분간 진행
- OpenAI Five는 4 frame 마다 action을 선택하기 때문에 20,000 정도의 step 진행 (Chess: 80 step, Go: 150 step)
- Partially-observed state
- 각 팀은 unit이나 건물 근처의 일부만 game state로 볼 수 있음
- High-dimensional action and observation state
- Dota 2는 10 heroes, 12 buildings, 12 non-player units, game features(runes, trees, wards, ...) 들 때문에 최대 16,000개의 observation space 존재
- action space 또한 8,000 ~ 80,000 정도로 Chess의 경우 1,000, Go의 경우 6,000 action space
- limitations from regular game
- OpenAI Five는 117개 영웅 중 17개 활용
- player가 일시적으로 동시에 multiple unit을 컨트롤하는 아이템 제외
- OpenAI Five는 4 frame 마다 movement, attack 등으로 embedding 된 discrete action 결정
- item이나 ability 구매, courier unit 컨트롤과 같은 부분은 hand-script logic으로 처리
- policy는 action probability distribution을 결정하도록 설계하고 4096-unit LSTM을 활용해서 총 159 million parameter 학습
- pixel on the screen을 observation으로 활용하는 대신 set of data arrays를 활용
- 이렇게 하는 이유는 두 가지 이유가 있는데
- 첫 번째로 visual processing 에 집중하는 대신 strategic planning and high-level decision making에 대한 연구에 집중하기 위함
- 두 번째로 모든 training game에서 각 frame을 rendering 하는 것이 불가능에 가까움
- human experts에 대항하기 위한 policy를 찾는 것이 목적
- 처음에는 캐릭터 사망, 자원 습득 등에 대한 reward function을 최대화 하는것을 연습하고 zero sum game을 감안해 적 팀의 reward 점수를 빼는 것 적용
- policy는 Proximal Policy Optimization 사용
- optimization으로 Generalized Advantage Estimation 사용
- 학습 네트워크는 중앙에 LSTM을 두고 policy, value로 갈라지게끔 구성
- 학습 시스템은 다음과 같고 Dota2 self-play 3experience를 활용하여 학습 수행
- 중앙의 GPU는 비동기적으로 experience buffer를 저장하고 NCCL2를 통해 동기적으로 parameter gradient update
- total batch size는 1 step 당 300만개이며 Adam Optimizer 활용
- Rollout worker는 self-play game을 real-time 2배 가속으로 구동
- self-play policy 적용 전략은 최신 policy로 전체의 80% 게임을 구동하고 20%는 old policy로 구동
- 프로젝트 진행 도중, code 나 environment가 3가지 이유로 지속적으로 변화됨
- 학습과 실험 중에 reward structure, observation, policy network 변경 등 학습 process를 변경시킬 일 발생
- 시간이 지남에 따라 agent의 action, observation space를 확장시킬 일이 발생
- 시시 각각 Dota 2 game의 영웅, 아이템, 지도 등에 대한 업데이트 발생
- 본 논문에서는 surgery라고 하는 새로운 환경에서 old policy를 통해 다른 크기와 의미를 가진 new policy로 성능이 저하되지 않도록 이식하는 offline operation 제안
- 이는 Net2Net-style의 transformation이며, 본 논문에서 10달 간 학습 동안 성능저하 없이 20번 이상의 surgery 수행
- OpenAI Five는 10개월 동안 300백만 배치사이즈(AlphaGo에 비해 50~150배 정도 큰 배치사이즈)를 가지고 150백만 파라미터를 학습
- OpenAI Five는 학습 이후, 수많은 아마추어와 프로 게이머, 프로 팀과 대전하고 4월 13일에 Dota 2 world champion인 OG team과 경기하여 2-0의 결과로 승리
- 4월 18-21 온라인 대전에서는 3,193팀과 7,257경기를 해 99.4% 승률 달성
- Dota2에서 사람의 게임 피지컬(human dexterity)을 측정할 수 있는 요소는 reaction time으로, Dota 2의 reaction time은 217ms(일반적인 사람이 250ms 정도)
- OpenAI Five를 학습하는 동안 agent를 자동으로 평가하기 위한 방법이 필요했고, TrueSkill rating system 적용
- OpenAI Five의 playstyle에 대해서는 확실하게 정의하기 어렵지만, 학습 진행과정에 따라 게임을 접근하는 방식으로 논함
- 학습 초기에는 한타 위주의 전투를 일으킴. 때문에 보통 20분 내 승리하거나 45분 이상 지속될 경우 패배
- agent 개선 이후 일반적인 사람의 play처럼 초반에 자원을 습득하며 영웅을 키우는 데에 집중하고 한타
- 마지막 agent의 경우 사람과 거의 유사했지만 몇 가지 다른점이 있었는데 사람은 라인에 영웅을 배치하면 잘 안바꾸지만 OpenAI Five는 훨씬 자주 포지션을 움직이고 사람은 체력이 적을 경우 조심하는 경향이 있지만 OpenAI Five는 체력이 적을 때 본인에게 공격할 것을 알고 희생을 감수하는 듯한 행동을 보임 마지막으로 OpenAI Five는 cooldown이 있는 능력에도 사람보다 훨씬 더 많이 자원을 소비
- 본 논문에서 제시한 surgery가 리소스를 얼마나 절약하는지 검증하기 위해 두 번째 agent를 두어 최신 버전으로만 학습을 다시 수행하고 이것을 "Rerun"이라 부름
- 그래프에서 확인 하는 것과 같이 surgery 변화보다 확연하게 성능 복구가 느린것 확인 가능 (surgery 없이 학습을 수행했다면 10달이 아니라 40달 정도 소요 예측)
- 또 다른 surgery의 장점으로 모든 시간 구간에서 좋은 성능의 agent로 evaluation이 가능
- Rerun의 경우 전체 OpenAI Five의 20% 근접한 리소스 소모
- 작은 규모의 실험에서 batch size 증가가 어느정도 효과가 있는지 평가 진행
- batch size를 증가시킨다는 것은 두 가지 의미를 가짐
- 큰 batch 를 optimize 하기 위해 GPU를 2배 이상 사용한다는 것
- 2배 이상 sample을 생성해내기 위해 foward GPU와 rollout machine을 2배 이상 사용한다는 것
- batch size를 증가시킬 때 비교할 수 있는 강력한 요소는 linear한 속도 향상 : 2배의 compute 자원을 활용했을 때 동일 skill 수준으로 1/2배 빨리 도달
- Rerun의 경우 baseline의 2.5배의 batch size를 활용해 superhuman 성능에 도달하기 까지 2달 소요됐는데 baseline 수준의 batch size였을 때 5달 소요 될 것으로 예상
- PPO가 on-policy 알고리즘이기 때문에 trajectories 생성을 위한 rollout에만 2시간 정도 소요
- 2시간 rollout을 기다리고 parameter를 update하는 대신에 rollout worker의 operation을 비동기적으로 수행 : rollout worker가 최신의 parameter를 받아 rollout 후 experience buffer 업로드
- old parameter에 대한 학습 저하를 막기 위해서 staleness라는 방식 제안
- 이는 old version policy N을 통해 생성된 sample을 가지고 new version policy M을 학습하고자 할 때 M - N을 하는 방식
- 또, sample data를 자주 재사용하다보면 overfitting이 발생할 수 있기 때문에 sample reuse 비율을 조절하는 방식 적용
- 그래프와 같이 sample reuse와 stale data가 엄청난 학습 속도 저하를 불러옴
- Dota 2는 극도의 long time 의존 게임으로 episode 당 10,000 step 정도
- long-term에 대한 credit assign을 위해 reward 함수 적용
- 이는 일정 시간 기준을 잡고 discount 된 reward를 받는 것으로 논문 기준 6-12분 사이에 reward를 양수로 받고 그 전과 후는 음수가 되도록 설계
- 그래프와 같이 T 설정 시간에 따라 win rate 변화를 볼 수 있고 720s 설정 시 가장 높은 win rate 달성
- competitive games를 풀기 위한 RL 적용 도메인 설명
- imitation learning and self-play에 대한 접근 설명
- AlphaStar에 대한 설명
- Deep Reinforcement Learning에 대한 설명
- distributed training system에 대한 설명
- surgery의 모태가 되는 Net2Net style에 대한 설명
- 본문 내용 요약과 함께 향후 environment 와 task가 점점 복잡해 질 것으로 scale에 대한 중요성 언급