개요
이번 학기에 수업을 들으면서, 우연히 강화학습에 대해 공부할 기회가 생겼는데 이 글은 강화학습에 대해 정리한 글이다
특히 게임환경에서의 강화학습 관련해서 중점적으로 정리하며, 앞으로 몇 주간에 걸쳐서 글을 이어갈 예정이다
또한 최종적으로 직접 만든 게임을 Gymnasium으로 강화학습 환경으로 배포하는 것을 목표로 하고 있다
우선은 이번 글에서는 다음과 같은 내용을 정리한다
- 강화학습이란?
- 강화학습 분류
- Q-Learning
강화학습이란?
강화 학습은 에이전트(agent)가 환경(environment)에서 행동(action)을 선택하고,
관측(observation)을 통해 그 행동의 결과로 얻은 보상(reward)을 바탕으로 점진적으로 학습하여,
상태(state)에 따라 행동을 선택하는 최적의 정책(policy)을 찾아가는 과정이다
그리고 강화 학습의 목표는 장기적으로 누적 보상(cumulative reward)을 최대화하는 것이다
이산적 환경과 연속적 환경
- 이산적 환경
- 상태와 행동이 명확히 구분된 단계나 수치로 나뉘며, 각 상태나 행동이 유한하다
- 연속적 환경
- 상태와 행동이 연속적인 값이나 범위로 표현되며, 셀 수 없을 만큼 다양한 상태와 행동이 존재한다
체스와 자율주행으로 예시를 들어보면,
체스의 상태는 보드에 놓인 말들의 위치로 구성되며, 말의 이동 역시 정해진 이동 규칙에 따라 움직이는 것으로, 모든 가능한 행동을 셀 수 있기 때문에 이산적 환경에 해당한다
반면 자율주행은 차량이 이동하는 위치, 속도, 각도 등 모두 연속적인 값을 가지며, 차량이 매 순간 주변 환경을 감지하고 연속적으로 행동을 조절해야 하기 때문에 연속적인 환경에 해당한다
정책
앞에서 강화학습은 상태에 따라 행동을 선택하는 최적의 정책을 찾아가는 과정이라고 설명했는데,
이때 정책은 에이전트가 특정 상태에서 어떤 행동을 선택할지를 결정하는 규칙이다
정책은 종종 확률적 분포로 표현되며, 이는 특정 상태에서 행동을 선택할 확률을 제공한다
확률적 접근은 정책 탐색에 다양성을 부여하고, 특히 환경의 불확실성이나 동적인 변화를 반영하는 데 유리하다
정책의 최적화는 강화학습에서 목표로 삼는 바이며, 이를 통해 에이전트는 장기적인 보상 누적을 최대화하는 행동을 학습하게 된다
강화학습 분류
RL의 알고리즘을 분류해 보면 아래 사진과 같다
강화학습과 관련하여 많은 알고리즘이 존재하지만, 게임환경에서의 강화학습 관련해서 중점적으로 정리하다 보니 앞으로 DQN과 관련된 Q-Learning에 대해 중점적으로 알아볼 것이다
그에 앞서 우선 분류에 사용된 개념들을 정리해 보면 다음과 같다
Model-Based RL vs Model-Free RL
슈퍼 마리오 게임을 예시로 들어 이 두 가지 접근 방식을 비교하면, 다음과 같다
Model-Based RL에서는 에이전트가 게임 환경에 대한 모델을 학습하거나 이미 알고 있다고 가정한다
즉, 마리오가 게임의 물리 법칙과 상태 전이(예: 점프하면 어느 정도 높이로 올라가는지, 적과 부딪히면 어떻게 되는지 등)를 미리 알고 있거나 예측할 수 있다
이를 통해 에이전트는 게임을 진행하기 전에 다양한 행동의 결과를 시뮬레이션하고 최적의 결정을 내리기 위해 계획을 세울 수 있다
참고로 Learn the Model 방식은 에이전트가 환경의 모델을 스스로 학습해야 한다(Given the world는 환경 모델이 이미 주어짐)
반면, Model-Free RL에서는 에이전트가 게임의 물리 법칙을 직접적으로 학습하지 않는다
즉, 마리오는 게임 속에서 행동을 하고 그에 따른 결과(보상)를 통해 경험적으로 학습한다
모델을 따로 만들지 않으며, 오직 주어진 상태에서 경험한 행동의 결과를 바탕으로 최적의 행동을 선택하는 방법을 학습한다
따라서 두 접근법의 차이는 환경의 모델을 활용하여 시뮬레이션을 통해 학습하느냐(Model-Based), 또는 오로지 실제 경험을 통해 학습하느냐(Model-Free)다
Policy Optimization vs Q-Learning
Policy Optimization는 주로 연속적인 행동 공간에서 주로 사용되며, 정책 자체를 직접 최적화한다는 점에서 확률적인 행동을 다룬다
이를 통해 에이전트는 특정 상태에서 선택할 행동의 확률 분포를 학습하며, 연속적인 환경에서도 효과적인 정책을 형성할 수 있다
Q-Learning은 주로 이산적인 행동 공간에서 사용되며, 각각의 상태-행동 쌍에 대해 기대 보상을 학습하여 최적의 행동을 선택한다
이 방식은 간접적으로 최적 정책에 수렴하며, 확률 분포를 따르기보다는 각 상태에서 가장 높은 Q-value를 가진 행동을 선택한다
즉, 정책을 직접 학습하는가와 기대 보상을 바탕으로 간접적인 방식으로 정책을 형성하는가로 구분할 수 있다
Q-Learning
Q-learning은 경험을 통해 최적의 Q-value를 학습하는 것!
여기서 Q-value는 기대되는 누적 보상을 의미한다(참고로 Q는 Quality를 뜻하며, 행동의 품질 = 기대되는 누적 보상으로 볼 수 있다)
강화학습에서 에이전트는 특정 상태에서 행동을 수행하고, 그 결과를 통해 보상을 관측하게 된다
이 과정에서 반복적으로 경험을 쌓아가면서 각 행동이 가져오는 결과를 학습하게 되며, Q-Learning은 이러한 학습을 도와준다
또한, 경험은 Q-Learning에서 매우 중요한 요소로, 에이전트가 다양한 상태와 행동을 경험함으로써 더 정확하게 행동의 Q-value를 추정할 수 있게 된다
각 경험을 통해 에이전트는 상태와 행동의 조합이 앞으로 얼마나 많은 보상을 가져올지에 대한 지식을 쌓아가며, Q-value를 지속적으로 갱신한다
마지막으로 간단하게 행동 가치 함수(Q-function)에 대해 정의해 보면 다음과 같다
Q-function은 특정 상태(s), 행동(a) 쌍을 인자로 받아 해당 쌍의 Q-value(q)를 반환하는 함수다
간단하게 표현해보자면, 아래와 같을 것이다
- q ← Q(s, a)
요약하면, Q-Learning은 에이전트가 경험을 바탕으로 상태에 따라 가장 높은 Q-value를 가지는 행동을 선택하도록 하여, 최적의 정책을 간접적으로 학습해 나가는 알고리즘이다
마무리
이번 글에서는 간단하게 강화학습이 무엇인지 알아보고, 강화학습 알고리즘 분류를 해봤다
그리고 목표로 하는 게임환경과 관련된 DQN을 이해하기 위해 Q-Learning에 대해 간략하게 알아봤다
다음글에서는 Q-Learning의 기반이 되는 수학적인 배경지식들에 대해 정리한다