Attention please

[강화 학습] 가치 함수(Value Function) 및 벨만 방정식(Bellman Equation) 정의 및 증명 본문

딥러닝/Reinforcement Learning

[강화 학습] 가치 함수(Value Function) 및 벨만 방정식(Bellman Equation) 정의 및 증명

Seongmin.C 2025. 4. 13. 22:05
728x90
반응형

What is Bellman Equation?

강화학습(Reinforcement Learning)을 이해할 때 가장 중요한 개념 중 하나는 벨만 방정식(Bellman Equation) 입니다. 이 방정식은 Agent어떤 상태(state)에서 어떤 행동(action)을 할지 결정하는 데 필요한 "가치(value)"를 수학적으로 정의해줍니다. 

 

강화학습은 Agent가 환경과 상호작용하면서 보상을 최대화하는 방향으로 학습하는 프레임워크입니다. 이때 가장 중요한 질문은 다음과 같습니다.

"지금 내가 어떤 상태에 있을 때, 어떤 행동을 하는 게 가장 좋을까?"

 

위 질문에 답하기 위해서는, 각 상태 혹은 행동이 얼마나 "좋은지"를 수치화하여야 합니다. 이를 함수로서 정의한 것이 바로 가치 함수(Value Function) 입니다. 

 

하지만 문제는 한 상태에서의 장기 보상을 직접 계산하는 것이 어렵다는 점이 있습니다. 여기에서, 벨만 방정식은 이 가치를 재귀적으로 계산할 수 있게 해줍니다. 즉, 현재의 가치 = 현재 보상 + 미래의 기대 가치 로 표현할 수 있게 되죠. 이런 재귀 구조로 나타내게 되면 굳이 전 상태를 직접 탐색하지 않고도, 미래 예측을 점진적으로 개선하며 학습할 수 있게 됩니다. 

 

 

 

 

 

 

Return $ G_{t} $ 

가치 함수에 대해 이해하기 전 $ G_{t} $ (Return)의 개념에 대해 짚고 넘어가야 합니다. $ G_{t} $은 Agent가 시간 $ t $에 특정 상태에 도달하였을 때, 앞으로 받게 될 모든 보상(Reward)들의 할인합(discounted sum)을 의미합니다. 

 

$$ G_t = R_t + \gamma R_{t+1} + \gamma^2 R_{t+2} + \cdots = \sum_{k=0}^{\infty} \gamma^k R_{t+k} $$

  • $ R_t $ : 시점 $ t $에서 받은 보상
  • $ \gamma $ : 할인율 ($0 \leq \gamma \leq 1$)

그렇다면 왜 Return을 구할 때 할인율을 곱해야할까요?

 

이는 미래에 받는 보상은 현재보다 불확실하기 때문에 덜 중요하게 취급하는 게 일반적입니다. 예를 들어 오늘 바로 받는 보상 100점은 1주일 뒤 받을 100점보다 더 중요하게 여기는 것이죠. 그래서 $ \gamma $를 곱해서 미래 보상의 "가치"를 현재 기준으로 낮춰주는 것입니다. 

 

예를 들어, 어떤 게임에서 현재 점프하면 1초 뒤에 5점, 2초 뒤에 10점을 받을 수 있다고 생각해봅시다. 이때 만약 $ \gamma = 0.9 $라면, 이 행동의 Return은 다음과 같습니다. 

 

$$ G_t = 0 + 0.9 \cdot 5 + 0.9^2 \cdot 10 = 4.5 + 8.1 = 12.6 $$

 

즉, 아무리 미래에 좋은 점수를 얻을 수 있다고 하더라도 먼 미래일수록 불확실성이 강하기 때문에 보다 현재에 더 집중하는 것입니다.

 

 

 

 

 

 

Value Function

가치 함수(Value Function)은 상태 가치 함수(State Value Function)행동 가치 함수(Action Value Function)으로 구분됩니다. 

 

상태 가치 함수는 어떤 상태 $ s $에 있을 때, 앞으로 받을 보상의 총합의 기댓값을 의미합니다. 

 

$$
V^{\pi}(s) = \mathbb{E}_{\pi}[G_t \mid s_t = s]
$$

$$
V(s_t) = \int_{a_t:a_\infty} G_t \cdot P(a_t, s_{t+1}, a_{t+1}, \ldots \mid s_t) \, d_{a_t:a_\infty}
$$

 

여기서 $ G_{t} $는 시간 $ t $부터 시작해서 받을 누적 보상입니다. 다시 말해, 현재 상태 $ s $에 있을 때, 정책 $\pi$를 따를 경우 앞으로 얼마나 좋은 보상을 받을 것 같은지를 수치화한 것입니다. 

 

 

 

다음으로 행동 가치 함수는 정책 $\pi$를 따를 때, 특정 상태 $s$에서 행동 $a$를 선택하고 이후부터 정책을 따를 때 받을 보상의 기댓값입니다. 

 

$$
Q^{\pi}(s, a) = \mathbb{E}_{\pi}[G_t \mid s_t = s, a_t = a]
$$

$$
Q(s_t, a_t) = \int_{s_{t+1}:a_\infty} G_t \cdot P(s_{t+1}:a_\infty \mid s_t, a_t) \, d_{s_{t+1}:a_\infty}
$$

 

즉, 지금 이 상태에서 어떤 행동 $a$를 선택했을 때, 그 뒤로 정책을 따르며 얼마나 좋은 보상을 받을 수 있는 지에 대해 수치화한 것입니다. 

 

 

 

 

 

 

Bellman Equation (State Value Function)

앞서 정의하였듯이, 상태 가치 함수는 다음과 같이 정의됩니다. 

 

$$
V(s_t) = \int_{a_t: a_\infty} G_t \cdot P(a_t, s_{t+1}, a_{t+1}, \ldots \mid s_t) \, d_{a_t: a_\infty}
$$

 

해당 식은 Agent가 상태 $s_{t}$에 있을 때 미래의 행동과 상태 전개를 모두 고려하여 기대 보상 $G_{t}$를 적분하여 표현한 것입니다. 

 

위 식에서 복합 확률 $ P(a_t, s_{t+1}, a_{t+1}, \ldots \mid s_t) $ 은 다음 두 가지 형태로 분해할 수 있습니다.

 

  1. $ P(s_{t+1}: a_\infty \mid s_t, a_t) \cdot P(a_t \mid s_t) $
  2. $ P(a_{t+1}: a_\infty \mid s_{t+1}) \cdot P(a_t, s_{t+1} \mid s_t) $

이제 위 두 종류의 분해를 통해 벨만 방정식을 유도해보도록 하죠.

 

1. $ P(s_{t+1}: a_\infty \mid s_t, a_t) \cdot P(a_t \mid s_t) $ 을 통한 전개

우선 원래 형태의 상태 가치 함수는 다음과 같습니다.

 

$$
V(s_t) = \int_{a_t: a_\infty} G_t \cdot P(a_t, s_{t+1}, a_{t+1}, \ldots \mid s_t) \, d_{a_t: a_\infty}
$$

 

여기서 $ P(a_t, s_{t+1}, a_{t+1}, \ldots \mid s_t)$를 $ P(s_{t+1}: a_\infty \mid s_t, a_t) \cdot P(a_t \mid s_t) $ 로 대체하면 다음과 같이 표현됩니다.

 

$$ V(s_t) = \int_{a_t} \left[ \int_{s_{t+1}: a_\infty} G_t \cdot P(s_{t+1}: a_\infty \mid s_t, a_t) \, d_{s_{t+1}: a_\infty} \right] P(a_t \mid s_t) \, da_t
$$

 

위 식을 보시면, 안쪽의 적분 부분이 행동 가치 함수인 $Q(s_t, a_t)$ 임을 알 수 있습니다.

 

$$ Q(s_t, a_t) = \int_{s_{t+1}: a_\infty} G_t \cdot P(s_{t+1}: a_\infty \mid s_t, a_t) \, d_{s_{t+1}: a_\infty} $$

 

최종적으로, 다음과 같은 식으로 유도됩니다.

 

$$ V(s_t) = \int_{a_t} Q(s_t, a_t) P(a_t \mid s_t) \, da_t $$

 

 

 

 

2. $ P(a_{t+1}: a_\infty \mid s_{t+1}) \cdot P(a_t, s_{t+1} \mid s_t) $을 통한 전개

똑같이 원래의 상태 가치 함수에서 출발합니다.

 

$$
V(s_t) = \int_{a_t: a_\infty} G_t \cdot P(a_t, s_{t+1}, a_{t+1}, \ldots \mid s_t) \, d_{a_t: a_\infty}
$$

 

여기에서 $ P(a_t, s_{t+1}, a_{t+1}, \ldots \mid s_t)$를 $ P(a_{t+1}: a_\infty \mid s_{t+1}) \cdot P(a_t, s_{t+1} \mid s_t) $ 로 대체하면 다음과 같이 표현됩니다.

 

$$ V(s_t) = \int_{a_t, s_{t+1}} \left[ \int_{a_{t+1}: a_\infty} G_t \cdot P(a_{t+1}: a_\infty \mid s_{t+1}) \, d_{a_{t+1}: a_\infty} \right] \cdot P(a_t, s_{t+1} \mid s_t) \, da_t ds_{t+1}
$$

 

이때 $G_t$는 $ R_t + \gamma G_{t+1} $와 동일하기 때문에, 다음과 같이 정리할 수 있습니다.

 

$$ \int_{a_t, s_{t+1}} \left[ \int_{a_{t+1}: a_\infty} \left( R_t + \gamma G_{t+1} \right) P(a_{t+1}: a_\infty \mid s_{t+1}) \, d_{a_{t+1}: a_\infty} \right] P(a_t, s_{t+1} \mid s_t) \, da_t \, ds_{t+1}
$$

 

여기서 위 식의 일부분을 다음과 같이 $V(S_{t+1})$로 표현할 수 있습니다.

 

$$ \int_{a_{t+1}: a_\infty} G_{t+1} \cdot P(a_{t+1}: a_\infty \mid s_{t+1}) \, d_{a_{t+1}: a_\infty} = V(s_{t+1}) $$

 

최종적으로 다음과 같이 정리됩니다.

 

$$ V(s_{t}) = \int_{a_t, s_{t+1}} \left( R_t + \gamma V(s_{t+1}) \right) P(a_t, s_{t+1} \mid s_t) \, da_t \, ds_{t+1}
$$

 

$$ = \int_{a_t, s_{t+1}} (R_t + \gamma V(s_{t+1})) \cdot P(a_t \mid s_t) P(s_{t+1} \mid s_t, a_t) \, da_t ds_{t+1} $$

 

 

 

 

 

 

Bellman Equation (Action Value Function)

행동 가치 함수는 다음과 같이 정의되었습니다.

 

$$ Q(s_t, a_t) = \int_{s_{t+1}: a_\infty} G_t \cdot P(s_{t+1}: a_\infty \mid s_t, a_t) \, d_{s_{t+1}: a_\infty} $$

 

위 식 안에 있는 복합 확률 $ P(s_{t+1}: a_\infty \mid s_t, a_t) $ 를 다음과 같이 두 가지 방식으로 분해할 수 있습니다.

 

  1. $ P(a_{t+1}: a_\infty \mid s_{t+1}) \cdot P(s_{t+1} \mid s_t, a_t) $
  2. $ P(s_{t+2}: a_\infty \mid s_{t+1}, a_{t+1}) \cdot P(s_{t+1}, a_{t+1} \mid s_t, a_t) $

 

 

 

1. $ P(a_{t+1}: a_\infty \mid s_{t+1}) \cdot P(s_{t+1} \mid s_t, a_t) $ 을 통한 전개

행동 가치 함수는 다음과 같습니다.

 

$$ Q(s_t, a_t) = \int_{s_{t+1}: a_\infty} G_t \cdot P(s_{t+1}: a_\infty \mid s_t, a_t) \, d_{s_{t+1}: a_\infty} $$

 

우선 $ P(a_{t+1}: a_\infty \mid s_{t+1}) \cdot P(s_{t+1} \mid s_t, a_t) $를 통해 다음과 같이 정리할 수 있습니다.

 

$$ \int_{s_{t+1}} \int_{a_{t+1}: a_\infty} G_t \cdot P(a_{t+1}: a_\infty \mid s_{t+1}) \, d_{a_{t+1}: a_\infty} \cdot P(s_{t+1} \mid s_t, a_t) \, ds_{t+1}
$$

 

여기서 $G_t = R_t + \gamma G_{t+1}$를 적용하여 다시 정리하면 다음과 같습니다.

 

$$\int_{s_{t+1}} \left( R_t + \gamma \int_{a_{t+1}:a_\infty} G_{t+1} \cdot P(a_{t+1}:a_\infty \mid s_{t+1}) \, d_{a_{t+1}:a_\infty} \right) \cdot P(s_{t+1} \mid s_t, a_t) \, ds_{t+1}$$

 

$$ Q(s_t, a_t) = \int_{s_{t+1}} (R_t + \gamma V(s_{t+1})) \cdot P(s_{t+1} \mid s_t, a_t) \, ds_{t+1} $$

 

이는 상태 가치 함수 $V(s)$를 기반으로 $Q$를 표현한 벨만 기대 방정식입니다.

 

 

 

 

2. $ P(s_{t+2}: a_\infty \mid s_{t+1}, a_{t+1}) \cdot P(s_{t+1}, a_{t+1} \mid s_t, a_t) $을 통한 전개

이 역시 원래의 행동 가치 함수에서 시작됩니다.

 

$$ Q(s_t, a_t) = \int_{s_{t+1}: a_\infty} G_t \cdot P(s_{t+1}: a_\infty \mid s_t, a_t) \, d_{s_{t+1}: a_\infty} $$

 

우선 $ P(s_{t+2}: a_\infty \mid s_{t+1}, a_{t+1}) \cdot P(s_{t+1}, a_{t+1} \mid s_t, a_t) $를 통해 다음과 같이 정리할 수 있습니다.

 

$$ \int_{s_{t+1}, a_{t+1}} \left( \int_{s_{t+2}: a_\infty} \left( R_t + \gamma G_{t+1} \right) P(s_{t+2}: a_\infty \mid s_{t+1}, a_{t+1}) \, d_{s_{t+2}: a_\infty} \right) P(s_{t+1}, a_{t+1} \mid s_t, a_t) \, d_{s_{t+1}, a_{t+1}}
$$

 

여기서 위 식의 일부분을 $Q(s_{t+1})$로 바꿀 수 있음을 확인할 수 있습니다.

 

$$ Q(s_{t+1}) = \int_{s_{t+2}: a_\infty} G_{t+1} \cdot P(s_{t+2}: a_\infty \mid s_{t+1}, a_{t+1}) \, d_{s_{t+2}: a_\infty}
$$

 

최종적으로 다음과 같이 정의됩니다.

 

$$ Q(s_t, a_t) = \int_{s_{t+1}, a_{t+1}} \left( R_t + \gamma Q(s_{t+1}, a_{t+1}) \right) P(s_{t+1}, a_{t+1} \mid s_t, a_t) \, ds_{t+1} \, da_{t+1}
$$

 

$$ = \int_{s_{t+1}, a_{t+1}} (R_t + \gamma Q(s_{t+1}, a_{t+1})) \cdot P(a_{t+1} \mid s_{t+1}) \cdot P(s_{t+1} \mid s_t, a_t) \, da_{t+1} ds_{t+1}
$$

 

728x90
반응형
Comments