이 글은 Deep RL Course를 학습하고 정리한 글입니다.
Q-Learning 예제
Q-Learning을 더 잘 이해하기 위해 간단한 예를 들어보겠습니다.
환경
이 예제에서 여러분은 작은 미로 속의 쥐가 됩니다. 항상 동일한 위치에서 시작합니다. 목표는 오른쪽 아래 구석에 있는 큰 치즈 더미를 먹는 것이며 독약을 피해야 합니다. 에피소드는 독약을 먹거나 큰 치즈 더미를 먹거나 5번 이상 움직이면 종료됩니다. 학습률은 0.1이고 할인율은 0.99입니다.
보상 함수
- +0: 치즈가 없는 상태로 이동했을 때
- +1: 작은 치즈 더미가 있는 상태로 이동했을 때
- +10: 큰 치즈 더미가 있는 상태로 이동했을 때
- -10: 독약이 있는 상태로 이동했을 때 (즉시 종료)
- +0: 5번 이상의 움직임을 한 경우
Q-Learning 알고리즘 적용
에이전트는 Q-Learning 알고리즘을 통해 최적의 정책을 학습합니다.
Step 1: Q-테이블 초기화
초기 단계에서는 모든 상태 $s$와 $a$에 대해 $Q(s,a) = 0$으로 설정합니다. 또한, 종료 상태에 대해서는 $Q(\text{terminal-state}, \cdot) = 0$으로 초기화합니다.
Timestep 1 Step 2: 행동 선택
$\epsilon$-탐욕 정책을 사용하여 행동 $A_t$를 선택합니다. 현재 $\epsilon =1$로 값이 크기 때문에 탐험을 우선하여 무작위로 행동을 선택합니다. 이번에는 오른쪽으로 이동하는 행동이 선택되었습니다.
Timestep 1 Step 3: 행동 실행 및 관찰
선택된 행동 $A_t$를 실행하여 오른쪽으로 이동했습니다. 그 결과 작은 치즈를 얻어 $R_{t+1} = + 1$의 보상을 받았고 새로운 상태 $S_{t+1}$로 이동했습니다.
Timestep 1 Step 4: Q-값 업데이트
아래의 공식을 사용해 $Q(S_t, A_t)$ 값을 업데이트합니다.
1. 초기 상태에서 오른쪽으로 이동 ($S_t = \text{Initial state}, A_t = \text{Right}$)
$$\begin{align*}Q(\text{Initial state}, \text{Right}) &= 0 + 0.1 \cdot [1 + 0.99 \cdot 0 - 0] \\ &= 0 + 0.1 \cdot 1 \\ &= 0.1 \end{align*}$$
2. 업데이트된 Q-테이블
$$Q(\text{Initial state}, \text{Right}) = 0.1$$
Timestep 2 Step 2: 행동 선택하기
다시 $\epsilon$-탐욕 정책을 사용하여 행동을 선택합니다.
이번에도 $\epsilon = 0.99$로 여전히 큰 상태이기 때문에 탐험을 우선합니다. 이번에는 아래쪽으로 이동하는 행동이 선택되었습니다. 참고로 훈련이 진행됨에 따라 $\epsilon$ 값은 점차 감소하여 점점 더 탐험 대신에 활용이 많이 이루어질 것입니다.
Timestep 2 Step 3: 행동 실행 및 관찰
선택된 행동 $A_t$를 실행하여 아래쪽으로 이동했습니다. 그러나 그 결과 독약을 먹게 되어 $R_{t+1} = - 10$의 페널티를 받았고 종료 상태 $S_{t+1}$에 도달했습니다.
Timestep 2 Step 4: Q-값 업데이트
공식에 따라 $Q(S_t, A_t)$ 값을 업데이트합니다.
1. 초기 상태에서 아래쪽으로 이동 ($S_t = \text{State 2}, A_t = \text{Down}$)
$$\begin{align*}Q(\text{State 2}, \text{Down}) &= 0 + 0.1 \cdot [-10 + 0.99 \cdot 0 - 0] \\ &= 0 + 0.1 \cdot (-10) \\ &= -1 \end{align*}$$
2. 업데이트된 Q-테이블
$$Q(\text{State 2}, \text{Down}) = -1$$
학습 과정 요약
독약을 먹어 에피소드가 종료되었으므로 새로운 에피소드가 시작됩니다. 에이전트는 초기 상태로 돌아가 다시 환경을 탐색하고 학습을 이어갑니다.
두 번의 탐험을 통해 에이전트는 환경에 대한 정보를 얻었으며 더 똑똑한 행동을 하기 시작합니다. TD를 사용하여 Q-값을 점진적으로 업데이트하면서 독약으로 이어지는 상태-행동 쌍의 Q-값은 낮아지고 보상이 높은 상태-행동 쌍(치즈로 가는 방향)의 Q-값은 높아집니다.
최적의 정책 학습
반복적인 탐험과 활용을 통해 Q-테이블은 점점 더 정확해집니다. 충분한 학습이 이루어진 후 에이전트는 최적의 Q-함수에 Q-값을 얻게 됩니다. 이는 에이전트가 환경에서 최적의 정책을 따르며 최대 보상을 얻도록 도와줍니다.
'강화학습' 카테고리의 다른 글
[Deep RL Course] Q-Learning 실습(2) - Taxi (0) | 2025.01.08 |
---|---|
[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 |