본문 바로가기
AI 딥러닝/강화학습

가치함수 (Value Function)

by 세인트 워터멜론 2021. 4. 21.

어떤 상태변수 \(\mathbf{x}_t\)에서 시작하여 그로부터 어떤 정책 \(\pi\)에 의해서 행동이 가해졌을 때 기대할 수 있는 미래 보상의 총합을 상태가치(state-value)라고 한다.

 

 

상태가치 함수의 정의는 다음과 같다.

 

\[ \begin{align} V^\pi (\mathbf{x}_t ) &= \mathbb{E}_{\tau_{u_t:u_T} \sim p(\tau_{u_t:u_T } | \mathbf{x}_t ) } \left[ r_t+ \gamma r_{t+1}+ \gamma^2 r_{t+2} + \cdots + \gamma^{T-t} r_T | \mathbf{x}_t \right] \tag{1} \\ \\ &= \int_{\tau_{u_t:u_T}} \left( \sum_{k=t}^T \gamma^{k-t} r_k \right) p(\tau_{u_t:u_T } | \mathbf{x}_t ) d \tau_{u_t:u_T } \end{align} \]

 

여기서 \(\tau_{u_t:u_T }=(\mathbf{u}_t, \mathbf{x}_{t+1}, \mathbf{u}_{t+1}, ..., \mathbf{u}_T)\)는 상태변수 \(\mathbf{x}_t\)에서 시작하여 그로부터 어떤 정책 \(\pi\)로 생성되는 궤적이다. 그리고 \(r_k =r(\mathbf{x}_k, \mathbf{u}_k)\)는 보상함수를 나타낸다.

 

 

어떤 상태변수 \(\mathbf{x}_t\)에서 행동 \(\mathbf{u}_t\)를 선택하고 그로부터 어떤 정책 \(\pi\)에 의해서 행동이 가해졌을 때 기대할 수 있는 미래 보상의 총합을 행동가치(action-value)라고 한다. 행동가치 함수의 정의는 다음과 같다.

 

\[ \begin{align} Q^\pi (\mathbf{x}_t, \mathbf{u}_t ) &= \mathbb{E}_{\tau_{x_{t+1}:u_T} \sim p(\tau_{x_{t+1}:u_T } | \mathbf{x}_t, \mathbf{u}_t ) } \left[ r_t+ \gamma r_{t+1}+ \gamma^2 r_{t+2} + \cdots + \gamma^{T-t} r_T | \mathbf{x}_t, \mathbf{u}_t \right] \tag{2} \\ \\ &= \int_{\tau_{x_{t+1}:u_T}} \left( \sum_{k=t}^T \gamma^{k-t} r_k \right) p(\tau_{x_{t+1}:u_T } | \mathbf{x}_t, \mathbf{u}_t ) d \tau_{x_{t+1}:u_T } \end{align} \]

 

여기서 \(\tau_{x_{t+1}:u_T }=(\mathbf{x}_{t+1}, \mathbf{u}_{t+1}, ..., \mathbf{u}_T)\)는 상태변수 \(\mathbf{x}_t\)에서 행동 \(\mathbf{u}_t\)를 선택하고 그로부터 어떤 정책 \(\pi\)로 생성되는 궤적이다.

 

 

공간상에서 상태가치 함수와 행동가치 함수의 관계는 다음과 같다.

 

\[ \begin{align} V^\pi (\mathbf{x}_t ) &= \mathbb{E}_{\mathbf{u}_t \sim \pi(\mathbf{u}_t | \mathbf{x}_t ) } [ Q^\pi (\mathbf{x}_t, \mathbf{u}_t ) ] \tag{3} \\ \\ &= \int_{\mathbf{u}_t} Q^\pi (\mathbf{x}_t, \mathbf{u}_t ) \pi (\mathbf{u}_t | \mathbf{x}_t ) d \mathbf{u}_t \end{align} \]

 

즉, 상태가치는 상태변수 \(\mathbf{x}_t\)에서 선택 가능한 모든 행동 \(\mathbf{u}_t\)에 대한 행동가치의 평균값임을 알 수 있다.

 

 

시간상에서 상태가치와 행동가치의 관계식을 알아보기 위해서, 행동가치 함수를 한 시간스텝 전개해 보자.

 

\[ \begin{align} Q^\pi (\mathbf{x}_t, \mathbf{u}_t ) &= \int_{\tau_{x_{t+1}:u_T}} \left( \sum_{k=t}^T \gamma^{k-t} r_k \right) p( \tau_{x_{t+1}:u_T} | \mathbf{x_t}, \mathbf{u}_t ) d \tau_{x_{t+1}:u_T } \tag{4} \\ \\ &= \int_{\tau_{x_{t+1}:u_T}} \left( r_t + \sum_{k=t+1}^T \gamma^{k-t} r_k \right) p( \tau_{x_{t+1}:u_T} | \mathbf{x_t}, \mathbf{u}_t ) d \tau_{x_{t+1}:u_T } \\ \\ &= r_t + \int_{\tau_{x_{t+1}:u_T}} \left( \sum_{k=t+1}^T \gamma^{k-t} r_k \right) p( \tau_{x_{t+1}:u_T} | \mathbf{x_t}, \mathbf{u}_t ) d \tau_{x_{t+1}:u_T } \end{align} \]

 

조건부 확률의 연쇄법칙에 의하면

 

\[ \begin{align} p( \tau_{x_{t+1}:u_T} | \mathbf{x_t}, \mathbf{u}_t) &= p( \mathbf{x}_{t+1}, \tau_{u_{t+1}:u_T} | \mathbf{x_t}, \mathbf{u}_t) \tag{5} \\ \\ &= p( \tau_{u_{t+1}:u_T} | \mathbf{x}_{t+1}, \mathbf{x_t}, \mathbf{u}_t) p(\mathbf{x}_{t+1} | \mathbf{x_t}, \mathbf{u}_t) \\ \\ &= p( \tau_{u_{t+1}:u_T} | \mathbf{x}_{t+1}) p(\mathbf{x}_{t+1} | \mathbf{x_t}, \mathbf{u}_t) \end{align} \]

 

가 된다. 여기서 \(\tau_{u_{t+1}:u_T}= ( \mathbf{u}_{t+1}, ..., \mathbf{u}_T)\) 이다. 위 식의 마지막 단계는 마르코프(Markov) 시퀀스 가정을 사용한 것이다.

식 (5)를 식 (4)의 두 번째 적분식에 연쇄법칙을 적용하면 다음과 같이 전개된다

 

\[ \begin{align} & \int_{\tau_{x_{t+1}:u_T}} \left( \sum_{k=t+1}^T \gamma^{k-t} r_k \right) p( \tau_{x_{t+1}:u_T} | \mathbf{x_t}, \mathbf{u}_t ) d \tau_{x_{t+1}:u_T } \tag{6} \\ \\ & \ \ \ \ \ \ = \int_{\tau_{x_{t+1}:u_T}} \left( \sum_{k=t+1}^T \gamma^{k-t} r_k \right) p( \tau_{u_{t+1}:u_T} | \mathbf{x}_{t+1}) p(\mathbf{x}_{t+1} | \mathbf{x_t}, \mathbf{u}_t) d \tau_{x_{t+1}:u_T } \\ \\ & \ \ \ \ \ \ = \int_{\mathbf{x}_{t+1}} \gamma \left[ \int_{\tau_{u_{t+1}:u_T}} \left( \sum_{k=t+1}^T \gamma^{k-t-1} r_k \right) p( \tau_{u_{t+1}:u_T} | \mathbf{x}_{t+1}) d \tau_{u_{t+1}:u_T } \right] p(\mathbf{x}_{t+1} | \mathbf{x_t}, \mathbf{u}_t) d \mathbf{x}_{t+1} \end{align} \]

 

상태가치 함수의 정의인 식 (1)에 의하면 위 식은 대괄호항은 \(V^\pi (\mathbf{x}_{t+1} )\)이다. 따라서

 

\[ \begin{align} & \int_{\tau_{x_{t+1}:u_T}} \left( \sum_{k=t+1}^T \gamma^{k-t} r_k \right) p( \tau_{x_{t+1}:u_T} | \mathbf{x_t}, \mathbf{u}_t ) d \tau_{x_{t+1}:u_T } \tag{7} \\ \\ & \ \ \ \ \ \ = \int_{\mathbf{x}_{t+1}} \gamma V^\pi (\mathbf{x}_{t+1}) p(\mathbf{x}_{t+1} | \mathbf{x_t}, \mathbf{u}_t) d \mathbf{x}_{t+1} \end{align} \]

 

이 된다.

 

 

식 (7)을 (4)에 대입하면, 행동가치 함수는 다음과 같이 된다.

 

\[ \begin{align} Q^\pi (\mathbf{x}_t, \mathbf{u}_t ) &= r_t +\int_{\mathbf{x}_{t+1}} \gamma V^\pi (\mathbf{x}_{t+1}) p(\mathbf{x}_{t+1} | \mathbf{x_t}, \mathbf{u}_t) d \mathbf{x}_{t+1} \tag{8} \\ \\ &= r_t + \mathbb{E}_{ \mathbf{x}_{t+1} \sim p(\mathbf{x}_{t+1} | \mathbf{x_t}, \mathbf{u}_t) } [ \gamma V^\pi (\mathbf{x}_{t+1}) ] \end{align} \]

 

식 (8)을 (3)에 대입하면 상태가치 함수는 다음과 같이 된다.

 

\[ \begin{align} V^\pi (\mathbf{x}_t ) &= \int_{\mathbf{u}_t} \left[ r_t + \int_{\mathbf{x}_{t+1}} \gamma V^\pi (\mathbf{x}_{t+1}) p(\mathbf{x}_{t+1} | \mathbf{x}_t, \mathbf{u}_t) d \mathbf{x}_{t+1} \right] \pi (\mathbf{u}_t | \mathbf{x}_t ) d\mathbf{u}_t \tag{9} \\ \\ &= \mathbb{E}_{ \mathbf{u}_t \sim \pi (\mathbf{u}_t | \mathbf{x}_t) } \left[ r_t + \mathbb{E}_{\mathbf{x}_{t+1} \sim p( \mathbf{x}_{t+1} | \mathbf{x}_t, \mathbf{u}_t)} [ \gamma V^\pi (\mathbf{x}_{t+1}) ] \right] \end{align} \]

 

식 (3)을 식 (8)에 대입하면 행동가치 함수는 다음과 같이 된다.

 

\[ \begin{align} Q^\pi (\mathbf{x}_t, \mathbf{u}_t ) &= r_t + \int_{\mathbf{x}_{t+1}} \gamma \left[ \int_{\mathbf{u}_{t+1}} Q^\pi (\mathbf{x}_{t+1}, \mathbf{u}_{t+1}) \pi(\mathbf{u}_{t+1} | \mathbf{x}_{t+1}) d \mathbf{u}_{t+1} \right] p (\mathbf{x}_{t+1} | \mathbf{x}_t, \mathbf{u}_t ) d\mathbf{x}_{t+1} \tag{10} \\ \\ &= r_t + \mathbb{E}_{\mathbf{x}_{t+1} \sim p( \mathbf{x}_{t+1} | \mathbf{x}_t, \mathbf{u}_t)} \left[ \mathbb{E}_{ \mathbf{u}_{t+1} \sim \pi (\mathbf{u}_{t+1} | \mathbf{x}_{t+1}) } [ \gamma Q^\pi (\mathbf{x}_{t+1}, \mathbf{u}_{t+1}) ] \right] \end{align} \]

 

식 (9)와 (10)을 각각 상태가치와 행동가치 벨만 방정식(Bellman equation)이라고 한다. 벨만 방정식은 시간상에서 상태가치와 행동가치의 관계식을 나타낸다.

식 (9)와 (10)의 좌변과 우변에 각각 똑같아 보이는 상태가치 함수와 행동가치 함수가 있는데, 사실은 가치함수가 시변(time-varying) 함수이므로 두 개의 가치함수는 다른 것이다.

 

 

하지만 무한구간(\(T \to \infty\), infinite-horizon)에서는 시불변 함수(시간스텝과 무관하게 동일한 입력값에 대해서 동일한 결과값을 갖는 함수)가 된다. 가치함수를 신경망으로 근사화할 때는 암묵적으로 가치함수가 시불변 함수임을 전제로 한다.

 

 

상태가치 함수를 예로 들어서 무한구간에서 가치함수가 시불변 함수가 됨을 증명해 보자.

무한구간에서 \(V^\pi (\mathbf{x}_t )\)는 정의에 의해서 다음과 같이 된다.

 

\[ V^\pi (\mathbf{x}_t ) = \mathbb{E}_{\tau_{u_t:} \sim p(\tau_{u_t: } | \mathbf{x}_t ) } \left[ r_t+ \gamma r_{t+1}+ \gamma^2 r_{t+2} + \cdots | \mathbf{x}_t \right] \]

 

무한구간에서 \(V^\pi (\mathbf{x}_{t+1} )\)는 정의에 의해서 다음과 같이 된다.

 

\[ V^\pi (\mathbf{x}_{t+1} ) = \mathbb{E}_{\tau_{u_{t+1}:} \sim p(\tau_{u_{t+1}: } | \mathbf{x}_{t+1} ) } \left[ r_{t+1}+ \gamma r_{t+2} + \gamma^2 r_{t+3} + \cdots | \mathbf{x}_{t+1} \right] \]

 

정책 확률밀도함수 \(\pi (\mathbf{u}_t | \mathbf{x}_t )\)와 환경 모델 \( p(\mathbf{x}_{t+1} | \mathbf{x}_t, \mathbf{u}_t)\)가 시불변이라면(역시 심층강화학습에서는 암묵적으로 시불변 함수임을 전제로 한다), 위 식에서 \(s=t+1\) 로 놓을 수 있다.

 

\[ \begin{align} V^\pi (\mathbf{x}_{t+1} ) &= \mathbb{E}_{\tau_{u_s:} \sim p(\tau_{u_s: } | \mathbf{x}_s ) } \left[ r_s+ \gamma r_{s+1} + \gamma^2 r_{s+2} + \cdots | \mathbf{x}_s \right] \\ \\ &= V^\pi (\mathbf{x}_s) \end{align} \]

 

따라서 무한구간에서 상태가치 함수는 시간스텝과 관계없이 동일한 입력에 대해서는 동일한 결과를 산출하는 시불변 함수라는 것을 알 수 있다.

 

 

 

댓글