오늘은 학교에서 리뷰했던 논문을 블로그로 정리해보려고 한다. 이번 논문은 강화학습으로 스타크래프트 2를 학습을 하여 그랜드마스터의 MMR을 가진 agent를 만들었다. 알파고와 마찬가지로 네이쳐에 올라왔으며, 아주 복잡한 환경에서 강화학습을 어떻게 진행했는지를 아주 잘 보여주고 있다.
Grandmaster level in StarCraft II using multi-agent reinforcement learning | Nature
스타크래프트란?
스타크래프트는 고난도의 전술을 세우면서 각 유닛들을 조종해야 하는 게임이다. 3가지 종족이 있고, 작은 베이스에서 시작해서 점점 빌딩을 짓고 유닛을 만들면서 상대방의 건물들을 부수면 이기는 게임이다.
왜 DeepMind는 스타크래프트를 골랐을까
사실 간단히 생각해 보면 더욱더 challenging 한 환경이었기 때문이라고 볼 수 있다. 알파고 같은 경우에는 371개의 action space가 있고 모든 정보가 주어져있는 심플한 환경이다. 하지만 스타크래프트 2는 10^26의 action space가 있고, 모든 정보가 주어져 있지 않는 고난도의 환경이다. 스타 2에서 API를 제공해서 그렇다고 생각해 볼 수도 있지만 스타크래프트는 전술게임 중에는 상당히 난도가 높고 조작이 어려운 환경이라고 할 수 있다.
이 두 표를 보면 얼마나 어려운 일인지를 알 수 있다. 10^26의 action space는 간단한 방법으로 explore 하거나 학습을 하기에는 무리가 있고, 이렇기 때문에 특별한 방법을 사용하여야 한다 이에 대해서는 추후에 서술하도록 하겠다. 특이한 점은 이 논문이 봇들처럼 엄청나게 높은 APM(action per minute)을 주거나 카메라 밖의 시야를 주지 않았다는 것이다. 즉, 인간과 같거나 더 높은 제한을 두고 학습을 시켰기 때문에 사람의 피지컬을 가지고 어떤 전술을 만들었는지 볼 수 있다.
AlphaStar에서의 policy
정책은 deep neural network로 만들어졌고, 이 정책의 input은 그 전의 action과 observation이다. 또한 특이하게 전술 지표 z라는 것을 도입하였는데, 이는 게임 플레이어들의 처음 20개의 건물을 짓는 순서이다. 이 z를 사용하면서 초반의 비효율적인 시행착오를 스킵할 수 있다.
AlphaStar의 아키텍처
공간 정보 = feature map (CNN과 유사)
유닛 정보 = feature vectors
self-attention(transformer)을 사용하여 유닛과 attribute 사이의 관계를 프로세스 하기 위해 사용하였고, 이를 통해 다양한 관찰된 부분들을 dynamic 하게 집중할 수 있다
LSTM(Long short-term memory) = 시간의 변화에 따른 정보들을 처리한다 즉 context를 제공한다고 볼 수 있다
Hierarchical Action Representation = 액션 종류, 액션 매개변수, 그리고 auto-regressive 정책을 사용하여 순서대로 내려오면서 어떤 행동이 실행될지를 결정한다
Recurrent Pointer Network = 땅이나 유닛처럼 마우스 클릭으로 타깃을 선택해야 할 때 사용한다
Scatter Connection = 공간 정보와 비공간 정보 두 개를 합치는 방식인데, 이를 사용하여 벡터들을 공간에 흩어지게 하여 벡터들(ex 유닛들의 정보)을 위치에 corresponding 하게 바꾸어준다. 즉, 위치와 정보를 합친다고 보면 된다.
Supervised Learning in AlphaStar
논문에서는 먼저 사람의 데이터를 사용하여 지도학습을 진행하였는데, 모방학습을 진행하였다고 볼 수 있다. 이렇게 하는 이유는 AlphaGo Zero 같은 경우는 action space가 그렇게 크지 않아서 그냥 학습을 진행할 수 있겠지만, 스타크래프트 같은 복잡한 환경은 그렇게 한다면 exploration에만 시간을 쓰게 되어서 성능이 좋아지지 않는다. 그래서 초반에 이런 사람이 플레이하는 것을 학습하면서 이를 해결할 수 있다.
사용된 데이터는 97만 개의 상위 22프로의 플레이들을 학습하였다. 그리고 정책은 사람이 다음 action을 어떤 것을 할지 예측하는 방식으로 학습하였다. 정책의 output은 확률분포로 나오고, KL-divergence로 사람과 agent 간의 차이를 계산한다. Adam optimizer이랑 L2 정규화가 사용되었다.
파인 튜닌은 MMR 6200 이상의 플레이어들을 사용하여 더 좋은 전략들을 학습할 수 있게 하였다.
Reinforcement Learning in AlphaStar
이렇게 initialize 된 정책들은 self-play와 league training을 통해 강화학습으로 더 학습을 진행한다. 보상 같은 경우에는 이기면 +1, 지면 -1, 동점은 0이다. 이렇게 sparse 하게 주어진 reward는 학습이 어렵기 때문에 전술 z를 따라가면 pseudo-reward를 부여한다. Temporal-difference learning을 사용하여 value-function을 학습하고, v-trace와 UPGO를 사용하여 policy function을 학습하였다. 또한, KL-divergence를 사용하여 supervised policy와 벗어나지 않도록 정책을 학습시킨다.
League training
Multi-Agent Learning: competes against various versions of itself and other agents.
- League Training: AlphaStar uses a league of agents to ensure diverse and robust training.main agents: learn strategies by playing against various opponents, including its past versions, other main agents, and exploiters
- main exploiters: accelerate the main agent’s learning by presenting it with difficult and targeted challenges.
- league exploiters: exploit weaknesses not only in the main agent but in other agents within the league as well.
Limitation of self-play:
1. Cycle of Strategies:
- can lead to cycles where the agent repeatedly switches between a set of strategies without progressing.
- occurs when an agent learns a strategy to defeat its current opponent, then the opponent learns a counter-strategy, and the cycle continues without overall improvement.
- Ex) In StarCraft II, the agent might oscillate between aggressive rush tactics and defensive strategies without finding a stable, superior strategy.
2. Lack of Diversity:
- the agent predominantly learns to counter its own strategies.
- vulnerable to novel strategies that it has not encountered during training.
Types of Self-Play
Fictitious Self-Play(FSP): avoids cycle by playing with all players in the league
- too much waste of resources against agents with 100% win rate
Prioritized Fictitious Self-Play(PFSP): put weights on the matchmaking in the league to provide a good learning signal
- using 2 different curricula, it can improve by fighting with hard opponents and opponents around its level
Agents in AlphaStar
Main agent is trained on 35% SP, 50% PFSP against all past players in the league, and an additional 15% of PFSP matches against forgotten main players the agent can no longer beat and past main exploiters.
- copy of the main agent is added as new play in league every 2 billion steps
League exploiters are trained using PFSP and their frozen copies are added to the league when they defeat all players in the league in more than 70% of games, or after a timeout of 2 billion steps.
- a 25% probability that the agent is reset to the supervised parameters.
- because league agents are not robust themselves
Main exploiters play against main agents.
- 50% of the time when the current probability of winning is lower than 20%, exploiters use PFSP with fvar weighting over players created by the main agents, forming curriculum that facilitates learning
- Otherwise there is enough learning signal and it plays against the current main agents. These agents are added to the league whenever all three main agents are defeated in more than 70% of games, or after a timeout of 4 billion steps, then reset to the supervised parameters.
Restriction on Agents
1. Action per Minute (APM) Limits: executing at most 22 non-duplicate actions every 5 seconds.
2. Delay in Actions: Human players experience a delay between perceiving the game state and executing an action.
- There is an average delay of about 110 milliseconds between the command of action and the actual execution
- Also, agents decide when to observe next (avg. 370ms)
3. Camera Interface: Human players control the game through a screen interface, limited by what they can see and interact with at any given time.
- could only act on information visible within the camera view.
Results
이것을 보면 Main Agent가 성능이 상당히 높은 것을 보여주고 있다. Main exploiter 같은 경우에는 성능이 오르지 않고 있는데, 이는 main agent만 상대하면 되기에 general 한 성능을 보여줄 필요가 없다. 이 논문을 통해 large-scale에서 어떻게 강화학습을 진행해야 하는지 알 수 있는 실험이었다고 생각한다.