[강화학습] 정책 그래디언트 - 목적함수
강화학습의 최종 목표는 환경으로부터 받는 누적 보상을 최대화하는 최적 정책을 구하는 것 !
정책을 파라미터화하고, 누적 보상을 파라미터화 된 정책의 함수로 기술해
누적보상과 정책 파라미터를 계산하는 방법론을 정책 그래디언트라고 한다.
목적함수
강화학습의 목표는 반환값의 기댓값으로 이루어진 목적함수 $J$를 최대로 만드는 정책 $\pi(u_t|x_t)$를 구하는 것.
즉, $\pi_\theta(u_t|x_t)$라면 목적함수를 최대로 만드는 정책 파라미터 $\theta$를 계산하는 것이다.
$$\theta^* = argmaxJ(\theta) $$
$$J(\theta) = E_{\tau \sim p_\theta(\tau)}[\sum_{l=0}^{T}\gamma^lr(x_t, u_t)]$$
* $r(x_t,u_t) $은 시간 스템 $t$일 때 상태변수가 $x_t$에서 행동 $u_t$를 했을 때 에이전트가 받는 보상
* $\gamma \in [0,1]$은 감가율
* 기댓값 아래 첨자는 기댓값 계산 시 확률밀도함수로 $p_\theta(\tau)$를 사용한다는 것을 의미
* 궤적 $\tau = (x_0, u_0, x_1, u_1, cdots, x_T, u_T)$로, $p_\theta(\tau)$는 정책$\pi_\tau$로 생성되는 궤적의 확률밀도함수
정책은 보통 신경망(neural network)로 파라미터화 된다.
이 신경망을 정책 신경망(policy neural network)라고 하고, 파라미터 $\theta$는 신경망의 모든 가중치를 의미한다.
확률의 연쇄법칙을 이용해 $p_\theta(\tau)$를 전개해보자.
\begin{align*}
p_\theta(\tau) &= p_\theta(x_0, u_0, x_1, u_1, \cdots,x_T, u_T) \\
&= p(x_0)p_\theta(u_0,x_1,u_1,\cdots,x_T, u_T|x_0) \\
&= p(x_0)p_\theta(u_0|x_0)p(x_1|x_0,u_0)p_\theta(u_1, x_2, u_2, \cdots, x_T, u_T|x_0, u_0, x_1) \\
&= \cdots
\end{align*}
마르코프 시퀀스에 따라 아래와 같이 표현할 수있다.
$$p_\theta(u_1|x_0, u_0, x_1) = \pi_\theta(u_1|x_1)$$
$$p(x_2|x_0, u_0, x_1, u_1) = \pi_\theta(u_1|x_1)$$
위의 방식을 이용하면 $p_\theta(\tau)$를 아래와 같이 정리할 수 있다.
$$ p_\theta(\tau) = p(x_0)\prod_{t=0}^{T}\pi_\theta(u_t|x_t)p(x_{t+1}|x_t,u_t) $$
목적함수는 상태가치와도 관계가 있다.
목적함수 $J$를 전개하면 다음과 같다.
\begin{align*}
J(\theta) &= E_{\tau \sim p_\theta(\tau)}[\sum_{t=0}^{T}\gamma^t r(x_t, u_t)] \\
&= \int_\tau p_\theta(\tau)(\sum_{t=0}^{T}\gamma^t r(x_t, u_t))d\tau
\end{align*}
여기서 궤적 $\tau$를 분할하면 아래와 같이 표현 가능하며,
이를 이용하면,
\begin{align*}
\tau &= (x_0, u_0, x_1, u_1, \cdots, x_T, u_T) \\
&= (x_0)\cup (u_0, x_1, u_1, \cdots, x_T, u_T) \\
&= (x_0)\cup \tau_{u_0:u_T}
\end{align*}
\begin{align*}
p_\theta(\tau) &= p_\theta(x_0, \tau_{u_0:u_T})\\
&= p(x_0)p_\theta(\tau_{u_0:u_T}|x_0)
\end{align*}
로 표현할 수 있다.
위의 식을 $J(\theta)$에 대입하면 아래와 같이 표현할 수 있다.
\begin{align*}J(\theta)&= \int_{\tau_{u_0:u_T}} p_\theta(\tau)(\sum_{t=0}^{T}\gamma^t r(x_t, u_t))d\tau_{u_0:u_T} \\
&= \int_{x_0}\int_{\tau_{u_0:u_T}} p(x_0)p_\theta(\tau_{u_0:u_T}|x_0)(\sum_{t=0}^{T}\gamma^t r(x_t, u_t))d\tau_{u_0:u_T} dx_0 \\
&= \int_{x_0}[\int_{\tau_{u_0:u_T}} p_\theta(\tau_{u_0:u_T}|x_0)(\sum_{t=0}^{T}\gamma^t r(x_t, u_t))d\tau_{u_0:u_T}]p(x_0) dx_0
\end{align*}
위 식의 대괄호 항은 상태가치 함수 $V^{\pi_\theta}(x_0)$이므로 목적함수는 아래와 같이 표현할 수 있다.
즉, 목적함수는 초기 상태변수 $x_0$에 대한 상태가치의 평균값이 된다.
\begin{align*}
J(\theta) &= \int_{x_0} V^{\pi_\theta}(x_0)p(x_0)dx_0 \\
&= E_{x_0 \sim p(x_0)}[V^{\pi_\theta}(x_0)]
\end{align*}
[출처]
박성수, 「수학으로 풀어보는 강화학습 원리와 알고리즘」, 위키북스(2020)