이 글은 Deep RL Course를 학습하고 정리한 글입니다.
몬테 카를로 vs 시간차 학습
몬테카를로(Monte Carlo)와 시간차 학습(Temporal Difference Learning)은 Q-Learning을 이해하는 데 있어 중요한 개념입니다. 이 두 학습 전략은 강화학습에서 에이전트가 환경과 상호작용하며 학습하는 방식을 정의합니다.
강화학습의 기본 원리는 에이전트가 환경과 상호작용을 통해 경험을 쌓고 이를 바탕으로 가치 함수(Value Function)나 정책(Policy)을 업데이트하는 것입니다. 보상(Reward)과 경험을 활용하는 방식에서 몬테 카를로와 시간차 학습은 서로 다른 접근법을 사용합니다.
몬테 카를로 (Monte Carlo)
몬테 카를로(Monte Carlo)는 에피소드가 끝난 후 학습을 진행하는 방법입니다. 에피소드 전체를 통해 얻은 경험을 바탕으로 반환값 $G_t$을 계산하고, 이를 이용해 가치 함수 $V(S_t)$를 업데이트합니다. 따라서 가치 함수를 업데이트하기 전에 전체 에피소드의 상호작용이 필요합니다.
- $V(S_t)$: 현재 상태 $S_t$의 가치 추정치
- $\alpha$: 학습률
- $G_t$: 에피소드 종료 후 계산한 반환값으로, 시간 $t$부터 시작해 누적된 보상의 합
예제
1. 초기 설정
가치 함수 $V(S)$를 초기화하여 모든 상태의 가치를 0으로 설정합니다.
학습률 $lr$은 0.1로 설정합니다. 할인율 $\gamma$는 1로 설정하며 보상을 할인하지 않습니다.
2. 에피소드 진행
쥐(에이전트)는 환경을 탐험하며 무작위 행동을 수행합니다.
쥐가 10번 이상의 행동을 수행하면 에피소드가 종료됩니다.
3. 에피소드 종료 후 반환값 계산
반환값 $G_t$를 다음과 같이 계산합니다.
$$\begin{align*} G_0 &= R_1 + R_2 + R_3 + \cdots + R_{10} \\ &= 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + 0 \\ &= 3 \end{align*}$$
4. 가치 함수 업데이트
계산된 반환값을 기반으로 가치 함수를 업데이트합니다.
$$\begin{align*} V(S_0) &= V(S_0) + \text{lr} * [G_0 - V(S_0)] \\ &= 0 + 0.1 * [3 - 0] \\ &= 0.3 \end{align*}$$
시간차 학습 (Temporal Difference Learning, TD Learning)
시간차(Temporal Difference, TD) 학습은 에피소드가 끝날 때까지 기다리지 않고 각 상호작용(한 단계) $S_{t+1}$마다 가치 함수 $V(S_t)$를 즉시 업데이트합니다.
TD 학습에서는 에피소드 전체의 반환값 $G_t$ 대신, 할인된 다음 상태의 가치 $\gamma \cdot V(S_{t+1})$와 보상 $R_{t+1}$의 합으로 $G_t$를 추정합니다. 이를 TD target이라고 합니다.
이 과정을 부트스트래핑(Bootstrapping)이라고 합니다. 그 이유는 TD 학습이 전체 반환값 $G_t$와 같은 완전한 샘플을 사용하는 것이 아니라 기존 가치 추정치 $V_(S_{t+1})$에 부분적으로 의존해 업데이트를 수행하기 때문입니다.
예제
1. 초기 설정
가치 함수 $V(S)$를 초기화하여 모든 상태의 가치를 0으로 설정합니다.
학습률 $lr$은 0.1로 설정합니다. 할인율 $\gamma$는 1로 설정하며 보상을 할인하지 않습니다.
2. 상호작용
쥐(에이전트)는 환경을 탐험하며 무작위로 행동을 수행합니다. 예를 들어, 쥐가 왼쪽으로 이동합니다.
이동 후 치즈를 발견하고 보상 $R_1 = 1$을 받습니다.
3. 가치 함수 업데이트
$$\begin{align*} V(S_0) &= V(S_0) + \text{lr} * [R_1 + \gamma * V(S_1) - V(S_0)] \\ &= 0 + 0.1 * [1 + 1 * 0 - 0] \\ &= 0 + 0.1 \\ &= 0.1 \end{align*}$$
4. 반복 학습
쥐는 환경과 계속 상호작용하며 행동 후 즉시 가치 함수 $V(S)$가 업데이트됩니다.
'강화학습' 카테고리의 다른 글
[Deep RL Course] Q-Learning 예제 (0) | 2025.01.07 |
---|---|
[Deep RL Course] Q-Learning (0) | 2025.01.07 |
[Deep RL Course] 벨만 방정식 (0) | 2025.01.05 |
[Deep RL Course] 가치 기반 강화학습 (0) | 2025.01.03 |
[Deep RL Course] Huggy 훈련하기 (1) | 2025.01.03 |