이 글은 Deep RL Course를 학습하고 정리한 글입니다.
Q-Learning이란?
Q-Learning은 TD(Temporal Difference) 접근 방식을 활용해 행동-가치 함수를 훈련하는 Off-Policy Value-based 방법입니다. 이 알고리즘은 특정 상태에서 특정 행동을 취했을 때의 가치를 계산하고 학습하며 이를 통해 최적의 정책을 학습하게 됩니다.
Q-함수 (Q-Function)
Q-함수는 주어진 상태와 행동에 대해 해당 상태-행동 값(Q-value)를 출력합니다. 여기서 "Q"는 상태에서 특정 행동의 "품질(Quality)"을 의미하며 이 값은 그 행동을 선택했을 때 기대되는 누적 보상을 나타냅니다.
가치(value)는 특정 상태 또는 상태-행동 쌍에서 시작해 정책에 따라 행동했을 때 기대되는 누적 보상이고, 보상(reward)은 특정 상태에서 행동을 수행한 후 환경으로부터 받는 즉각적인 피드백입니다.
Q-함수는 이러한 상태-행동 값을 저장하기 위해 Q-테이블로 구현됩니다. Q-테이블은 각 상태와 행동 조합의 Q-value를 저장하는 일종의 메모리이자 참조표 역할을 합니다.
예제: 미로 문제
아래 그림과 같은 미로 환경에서 쥐(에이전트)는 주어진 환경을 탐험하며 최적의 행동을 학습합니다. 쥐의 목표는 치즈(목표)에 도달하는 것이며 동시에 독을 피하는 것입니다.
1. Q-테이블 초기화
처음에는 Q-테이블의 모든 값이 0으로 설정됩니다. 이는 환경에 대한 사전 지식이 전혀 없는 상태를 의미합니다. Q-테이블은 가능한 모든 상태와 행동 조합에 대한 Q-value를 나타냅니다.
2. Q-테이블 구성
이 예제에서는 상태가 쥐의 위치로만 정의됩니다. 따라서 미로의 총 6개의 위치(2행 x 3열)에 대해 각 위치를 하나의 상태로 간주하여 Q-테이블의 행을 구성합니다. 각 상태에서 가능한 행동은 네 가지(왼쪽, 오른쪽, 위, 아래)이며 모든 상태-행동 조합의 초기값은 0으로 설정됩니다.
즉, Q-테이블은 상태(위치)와 행동(이동 방향)에 따라 해당 상태-행동의 가치를 저장하는 구조로 되어 있습니다.
3. Q-함수의 역할
Q-함수는 주어진 상태와 행동에 대해 Q-테이블에서 해당 값을 검색하고 반환합니다. 훈련이 진행되면서 Q-테이블은 점점 더 정확한 값을 저장하게 되고 최적의 행동을 결정할 수 있게 됩니다.
Q-Learning 알고리즘 요약
Q-Learning은 다음과 같은 과정을 수행하는 강화학습 알고리즘입니다.
1. Q-함수 훈련: Q-함수는 내부적으로 Q-테이블을 이용해 각 상태-행동 쌍의 값을 학습합니다.
2. 값 반환: 특정 상태와 행동이 주어지면 Q-함수는 Q-테이블에서 해당 상태-행동 쌍의 값을 반환합니다.
3. 최적의 Q-테이블 학습: 훈련이 완료되면 최적의 Q-함수, 즉 최적의 Q-테이블이 완성됩니다.
4. 최적의 정책 도출: 최적의 Q-테이블을 통해 각 상태에서 가장 가치가 높은 행동을 결정함으로써 최적의 정책(optimal policy)을 도출할 수 있습니다.
초기에는 Q-테이블이 모든 상태-행동 쌍에 대해 임의의 값(대부분 0)을 제공하기 때문에 유용하지 않습니다. 그러나 에이전트가 환경을 탐험하며 점진적으로 Q-테이블을 업데이트함에 따라 Q-테이블은 점점 더 최적의 정책에 가까운 값을 제공합니다. 결국 에이전트는 학습을 통해 주어진 환경에서 목표를 달성하기 위한 최적의 행동 정책을 터득하게 됩니다.
Q-Learning 알고리즘
다음은 Q-Learning 알고리즘의 의사 코드입니다.
Step 1: 초기화
Q-테이블의 모든 상태-행동 값을 초기화합니다. 일반적으로 초기값은 0으로 설정합니다. 학습 과정에서 에이전트는 이 Q-테이블을 업데이트하며 각 상태-행동 쌍의 가치를 학습합니다.
Step 2: $\epsilon$-탐욕(epsilon-greedy) 정책에 따른 행동 선택
$\epsilon$-탐욕 정책은 탐험(Exploration)과 활용(Exploitation) 간의 균형을 조정하는 정책입니다.
초기에는 $\epsilon = 1$로 설정하여 탐험의 비중을 높게 둡니다. 이는 에이전트가 환경을 탐색하고 새로운 정보를 수집하도록 돕습니다. $\epsilon$의 확률로 에이전트는 임의의 행동을 선택하고 $1 - \epsilon$의 확률로 현재 Q-테이블에서 가장 높은 Q-값을 가진 행동을 선택합니다.
학습이 진행됨에 따라 $\epsilon$ 값을 점진적으로 줄입니다. 이를 통해 학습 후반부에는 탐험을 줄이고 현재까지 학습된 Q-테이블을 기반으로 최적의 행동을 선택하게 됩니다.
Step 3: 행동 수행 및 결과 관찰
에이전트는 $\epsilon$-탐욕 정책을 기반으로 선택한 행동 $A_t$을 수행합니다. 행동 수행 후, 환경으로부터 다음과 같은 두 가지 정보를 얻습니다. 즉각적인 보상 $R_{t+1}$은 에이전트가 선택한 행동의 결과로 환경에서 제공하는 보상이고 다음 상태 $S_{t+1}$는 행동을 수행한 결과 에이전트가 도달한 새로운 상태입니다.
Step 4: Q-값 업데이트
TD(Temporal Difference) 학습에서는 환경과 한 번 상호작용할 때마다 정책이나 가치 함수를 업데이트합니다.
1. 즉각적인 보상 $R_{t+1}$ 획득
즉각적인 보상은 에이전트가 행동 $A_t$을 수행한 결과로 환경으로부터 얻는 보상입니다.
2. 다음 상태에서의 최적 행동 값 계산 $\gamma $
다음 상태 $S_{t+1}$에서 가능한 행동 중 가장 높은 Q-값을 선택합니다. 여기서는 탐욕 정책을 사용하여 항상 가장 높은 Q-값을 가지는 행동을 선택합니다.
$$\max_a Q(S_{t+1}, a)$$
3. TD Target 계산
TD Target은 현재 보상과 다음 상태에서의 최적 행동 값을 사용하여 계산됩니다. 여기서 $\gamma$는 할인율로, 미래 보상에 대한 중요도를 조정하는 매개변수입니다.
$$\text{TD Target} = R_{t+1} + \gamma \max_a Q(S_{t+1}, a)$$
4. Q-값 업데이트
TD Target과 현재 Q-값의 차이인 TD Error를 계산하여 Q-값을 업데이트합니다. $\alpha$는 학습률로, 새로운 정보가 기존 Q-값에 얼마나 반영될지를 결정합니다.
Off-policy vs On-Policy
강화학습에서 Off-Policy와 On-Policy는 학습 과정에서 행동과 업데이트에서 사용하는 정책의 차이에 따라 구분됩니다.
Off-Policy
Off-Policy 학습은 행동을 선택할 때와 Q-값을 업데이트할 때 서로 다른 정책을 사용하는 방식입니다.
대표적인 알고리즘으로 Q-Learning이 있습니다. 행동을 선택할 때는 $\epsilon$-탐욕 정책을 사용하고, Q-값을 업데이트할 때는 탐욕 정책을 사용합니다.
On-Policy
On-Policy 학습은 행동 선택과 Q-값 업데이트에 동일한 정책을 사용하는 방식입니다.
대표적인 알고리즘으로 Sarsa가 있습니다. 행동을 선택할 때는 $\epsilon$-탐욕 정책을 사용합니다. Q-값을 업데이트 과정에서도 $\epsilon$-탐욕 정책을 사용하여 다음 상태-행동 쌍의 값을 업데이트에 반영합니다.
'강화학습' 카테고리의 다른 글
[Deep RL Course] Q-Learning 실습(1) - Frozen Lake (0) | 2025.01.08 |
---|---|
[Deep RL Course] Q-Learning 예제 (0) | 2025.01.07 |
[Deep RL Course] 몬테카를로 vs 시간차 학습 (0) | 2025.01.06 |
[Deep RL Course] 벨만 방정식 (0) | 2025.01.05 |
[Deep RL Course] 가치 기반 강화학습 (0) | 2025.01.03 |