강화학습(3)
개요
이전까지 강화학습이 무엇인지, 그리고 다양한 강화학습 알고리즘 중 게임 환경에 적합한 DQN의 기반이 되는 Q-Learning의 수학적 원리에 대해 알아보았다
그 내용을 한 번 간단하게 요약해 보면 다음과 같다
마르코프 결정 과정(MDP)을 활용하면 환경을 수학적으로 모델링할 수 있고, 이를 통해 행동 선택의 기준이 되는 최적의 Q-값을 반환하는 최적 행동 가치 함수(q*)를 정의했었다
이 글은 이제부터 아래와 같은 요소들을 정리하면서 진행된다
- Q-Learning
- Deep Q-learning
- DQN(Deep Q-Network)
Q-Learning
Q-Learning은 학습 과정을 통해 이 최적 행동 가치 함수의 값을 점진적으로 근사해가는 알고리즘이다
이전에 다음과 같이 최적 행동 가치 함수를 정의했다
이제부턴 근사의 개념이 적용되어 q를 Q로 바꿔 사용한다
그리고 이 값을 점진적으로 학습하는 식으로 정의해 보면 다음과 같다
이는 Target이 되는 최적 행동 가치 함수 값과 현재 Q값의 차이를 α 만큼 현재 Q-값에 업데이트 하는 식으로 이해할 수 있다
Target
타겟 값은 벨만 최적 방정식에서 유도된 최적의 기대 보상이다
α
다음과 같이 식을 변형해 보면 이 말을 좀 더 쉽게 이해할 수 있다
𝛼(0 < 𝛼 ≤ 1) 는 학습률(learning rate)을 의미하며, 학습률은 새로운 정보와 기존의 정보가 Q-값에 얼마나 영향을 미칠지를 결정한다
학습 방법
Q-Learning을 수행하면 아래의 과정을 통해 최적의 Q-Function에 점차 수렴하게 된다
1. 환경과 상호작용
현재 상태 𝑠 에서 행동 𝑎 를 선택하고, 보상 𝑟 과 다음 상태 𝑠 ′ 를 관찰 행동은 입실론 그리디 정책을 통해 선택함
2. 타겟 값 계산
현재 Q-값의 Target 인, 𝑟 + 𝛾 max 𝑄 ( 𝑠 ′ , 𝑎 ′ ) 를 계산
3. Q-값 업데이트
학습률 𝛼 를 사용하여 기존의 Q-값과 타겟 값을 조합해 Q-값 업데이트
입실론 그리디(ε-Greedy) 정책
환경과 상호작용하며 최적의 Q-값을 얻는 과정에서, 에이전트는 탐험(exploration)과 활용(exploitation) 사이의 균형을 맞춰야 한다
탐험 (Exploration)
새로운 행동을 시도하여 아직 충분히 알지 못한 상태-행동 쌍의 정보를 얻음
활용 (Exploitation)
현재까지 학습된 Q-값 중에서 가장 높은 값을 가진 행동을 선택하여 보상을 극대화함
일반적으로 학습 초기에는 탐험을 많이하고, 시간이 지나면서 점차 활용을 증가시키기 위해 ϵ을 점진적으로 줄여가는 방식을 입실론 감소(Epsilon Decay)라고 한다
Deep Q-learning
DQN은 경험 재생과 타겟 네트워크를 활용하여 Deep Q-learning의 단점을 보완한 모델이다
그렇다면 일단 Deep Q-learning은 무엇인가?
Q-learning은 Q-값를 테이블로 관리한다
그렇지만 Q(s, a)를 계속 그렇게 저장하여 학습하면, State와 Action 공간이 커지면서 너무 많은 메모리와 긴 탐색시간이 필요하게 되는데, 딥러닝을 통해 이를 해결 가능하다
딥러닝을 이용하면 Q-table에 해당하는 Q-function을 비선형 함수로 근사시켜, 모든 State와 Action에 대한 Q-값을 찾거나 저장할 필요가 없어지기 때문이다
Loss Function
이때 θ는 모델의 가중치다
Deep Q-learning의 문제점
Correlation in Sequential Data
강화학습의 샘플 데이터가 순차적으로 생성되면서 높은 상관성을 가지게 되는 특성으로 인해, 학습 데이터가 독립적이고 동일한 분포(i.i.d)를 만족하지 못해 신경망 학습의 안정성을 저해한다
Non-stationary Targets
학습 중 Q-값을 업데이트하기 위해 사용하는 목표 값이 네트워크의 파라미터 변화에 따라 동적으로 변하기 때문에, 목표 값 자체가 고정되지 않아 학습이 수렴하기 어렵게 만든다
일반적인 지도학습 모델이라면 아래 그림에서 레이블인 Y_true가 존재해야 하는데, 이 값인 Q-값이 학습하면서 업데이트되기에 발생하는 문제로 이해하면 된다
DQN(Deep Q-Network)
DQN은 Deep Q-Learning에서 한계점들을 경험 재생과 타겟 네트워크를 활용하여 해결한다
우선 기존에 Q-Learning을 이해하고, 아래 정리한 해결방안들을 보고 나서 전체적인 그림을 보면 이해에 도움이 될 것이다
경험 재생(Experience Replay)
DQN에서는 학습 데이터의 상관관계를 줄이기 위해 미니배치 학습을 사용한다
연속적인 데이터가 아니라 Exprerience Replay Memory로부터 임의로 선택된 이전의 경험 데이터를 얻어 학습에 사용함으로써, 데이터 간의 상관성을 제거하고 안정적인 학습을 가능하게 한다
이를 통해 시퀀셜 데이터의 문제를 해결하고, 효율적인 학습을 촉진한다
타겟 네트워크(Target Network) 사용
DQN의 또 다른 중요한 특징은 타겟 네트워크를 사용하는 것이다
주 네트워크의 가중치를 일정 주기마다 타겟 네트워크로 복사함으로써, Q-값 추정의 불안정성을 줄인다
타겟 네트워크가 안정적인 목표 값을 제공해 주기 때문에 학습이 더 안정적으로 이루어진다
따라서 DQN의 손실 함수는 아래와 같이 정의된다
마무리
이번 글에서는 Q-Learning에 대해 알아보고, DQN을 이해하기 위해 Deep Q-learning과 학습 시 문제점에 대해 정리했다
이후 DQN은 어떻게 이를 극복했는지와 그 구조를 정리하며 마무리했다
이제 다음부턴 이를 기반으로 코드를 작성하며, Gymnasium을 이용한 게임환경 배포와 모델을 학습시키는 방법에 대해 정리할 예정이다