Just Fighting

[강화학습] AC2 2 본문

카테고리 없음

[강화학습] AC2 2

yennle 2023. 6. 20. 21:29
728x90

< 분산 감소 방법>

 

< 베이스라인 >

 

목적함수 그래디언트의 분산이 크면, 업데이트될 정책 파라미터 값이 들쭉날쭉해져 신경망 학습이 불안정해지며, 정책의 불확실성도 커진다.

\begin{align*}
\bigtriangledown_\theta J(\theta) 

&= \sum_{t=0}^{T} \left ( \int_{x_t,u_t}^{} \bigtriangledown_\theta log \pi_\theta (u_t|x_t) Q^{\pi_\theta}(x_t, u_t) \pi_\theta (u_t| x_t) p_\theta(x_t)] dx_t du_t \right ) \\

&= \sum_{t=0}^{T}\left(E_{x_t \sim p_{\theta(x_t),u_t\sim\pi_\theta(u_t|x_t)}} \left [ \bigtriangledown_\theta log \pi_\theta (u_t|x_t) Q^{\pi_\theta}(x_t, u_t)\right ] \right )

\end{align*}

 

 

적분항 $Q^{\pi_\theta}(x_t, u_t)$ 대신 어떤 파라미터 $b_t$를 넣으면,

 

\begin{align*}
\bigtriangledown_\theta J(\theta) 

&= \sum_{t=0}^{T} \left ( \int_{x_t,u_t}^{} \bigtriangledown_\theta log \pi_\theta (u_t|x_t) Q^{\pi_\theta}(x_t, u_t) \pi_\theta (u_t| x_t) p_\theta(x_t) dx_t du_t \right ) \\

&= \sum_{t=0}^{T} \left ( \int_{x_t,u_t}^{} \bigtriangledown_\theta \pi_\theta (u_t|x_t) b_t  p_\theta(x_t) dx_t du_t \right ) \\

&= \sum_{t=0}^{T} \left ( \int_{\tau_{x_0}}^{} \left [ \int_{u_t} \bigtriangledown_\theta \pi_\theta (u_t|x_t)  b_t du_t \right ]    p_\theta(x_t) dx_t  \right ) \\

\end{align*}

 

 

가 되는데, $\bigtriangledown_\theta log \pi_\theta (u_t|x_t) = \frac{\bigtriangledown_\theta\pi_\theta (u_t|x_t)}{\pi_\theta (u_t|x_t)}$를 이용한 것이다.

여기서 $b_t$가 상수거나 행동 $u_t$의 함수가 아니라고 가정한다.

 

그렇다면 대괄호 안의 식은 0이되며,

 

 

\begin{align*}
\int_{u_t} \bigtriangledown_\theta \pi_\theta (u_t|x_t)  b_t du_t &= b_t \bigtriangledown_\theta \int_{u_t} \pi_\theta (u_t|x_t) du_t \\

&= b_t \bigtriangledown_\theta(1) = 0
\end{align*}

 

\begin{align*}
\bigtriangledown_\theta J(\theta) 

&= \sum_{t=0}^{T} \left ( \int_{x_t,u_t}^{} \bigtriangledown_\theta log \pi_\theta (u_t|x_t) Q^{\pi_\theta}(x_t, u_t) \pi_\theta (u_t| x_t) p_\theta(x_t) dx_t du_t \right ) \\

&= 0
\end{align*}

 


 

목적함수 그래디언트 식의 $Q^{\pi_\theta}(x_t, u_t)$에서 $b_t$를 빼도 기댓값은 변하지 않는다.

 

\begin{align*}
\bigtriangledown_\theta J(\theta) 

&= \sum_{t=0}^{T} \left ( E_{x_t \sim p_\theta(x_t), u_t \sim \pi_\theta (u_t|x_t)} \left [  \bigtriangledown_\theta log \pi_\theta (u_t|x_t) \left ( Q^{\pi_\theta}(x_t, u_t)-b_t\right ) \right ] \right )

\end{align*}

 

($b_t$를 빼도 기댓값이 변하지 않는 이유!는 $b_t$를 뺐을 때 계산해야 하는 식이 0임을 위에서 보였기 때문!이지않을까,,,)

 

여기서 $b_t$는 베이스라인(baseline)이라고 한다.

베이스라인을 넣는 이유는 목적함수의 그래디언트 분산을 줄이기 위함!

$b_t$의 최적값은 목적함수 그래디언트의 분산을 최소화하는 값으로 선정하면 된다.

그러나, 일반적으로 $b_t$의 최적값은 상태가치 함수 $V^{\pi_\theta}(x_t)$를 사용한다.

상태가치 함수는 행동 $u_t$의 함수가 아니기 때문.

 

$$V^\pi(x_t) = \int_{u_t} Q^\pi (x_t, u_t)\pi(u_t|x_t)du_t$$

 

상태가치 함수를 사용하면 목적함수 그래디언트를 아래와 같이 표현할 수 있다.

\begin{align*}
\bigtriangledown_\theta J(\theta) 

&= \sum_{t=0}^{T} \left( E_{x_t \sim p_\theta(x_t), u_t \sim \pi_\theta (u_t|x_t)} \left [  \bigtriangledown_\theta log \pi_\theta (u_t|x_t) \left \{ Q^{\pi_\theta}(x_t, u_t)-V^{\pi_\theta}(x_t)\right \} \right ] \right ) \\

&= \sum_{t=0}^{T} \left( E_{x_t \sim p_\theta(x_t), u_t \sim \pi_\theta (u_t|x_t)} \left [  \bigtriangledown_\theta log \pi_\theta (u_t|x_t) A^{\pi_\theta}(x_t, u_t) \right ] \right ) \\

\end{align*}


< 어드밴티지 함수 > 

 

이 때, $A^{\pi_\theta}(x_t, u_t) =Q^{\pi_\theta}(x_t, u_t)-V^{\pi_\theta}(x_t) $를 어드밴티지(advantage) 함수라고 한다.

상태가치는 상태변수 $x_t$에서 선택 가능한 모든 행동 $u_t$에 대한 행동가치의 평균값 $V^{\pi_\theta}(x_t) =E_{u_t\sim \pi(u_t|x_t)}Q^{\pi_\theta}(x_t, u_t)$ 이므로,

상태변수 $x_t$에서 선택된 행동 $u_t$가 평균에 비해 얼마나 좋은지 평가하는 척도가 될 수 있다.

 

목적함수 그래디언트는 행동가치가 아닌 어드밴티지에 비례한다.

어드밴티지의 정의 상 값이 행동가치보다 작기 때문에( 행동가치-행동가치의 평균이니까) 그래디언트의 분산이 작아질 것이다.

그러나 문제는 어드밴티지의 값을 모른다는 것.

따라서, 어드밴티지를 정확하게 추정하는 것이 중요하다.

 

 

 

 

[출처]

박성수, 「수학으로 풀어보는 강화학습 원리와 알고리즘」, 위키북스(2020)

 

 

 

728x90
Comments