강화학습 기본 알고리즘(2)
5. 다이내믹 프로그래밍(Dynamic Programming)
다이내믹 프로그래밍이란 환경에 대한 모든 정보를 알고 있는 Model Based 기법이다.
따라서 S, A, P, R, $\gamma$를 알고 있는 상황이다.
이를 활용하여 각 상태에서 가치를 구하여 정책 평가를 한 뒤
이를 활용하여 탐욕적으로 정택을 갱신하여 정책 제어를 한다.
6. 몬테카를로 방법(MC : Monte-Carlo Prediction)
몬테카를로 방법에서는 모델을 알 수 없는 Model Free 에서 사용하는 기법이다.
우선 다음 수식을 보자.
$$v_{\pi}(s) = V(s)\ when\ N(s)\ \rightarrow\ \infty \\ N(s) \leftarrow N(s) + 1 \\ S(s) \leftarrow S(s) + G_t \\ V(s) \leftarrow V(s)/N(s)$$
위와 같이 MC에서는 누적된 반환값을 카운트로 나누어 상태 가치 함수를 구한다.
하지만 위와 같은 방법으로는 프로그램 상에서 비효율적이므로
증분평균(Incremental Mean) 개념을 이용하여 계산한다.
증분 평균이란 평균을 구할 때 이전에 계산한 값을 활용하여 누적 계산하는 방법이다.
$$\begin{matrix} \mu_k &=& {1 \over k} \sum_{j = 1}^k x_j \\ &=& {1 \over k} \left( x_k + \sum_{j = 1}^{k-1} x_j \right) \\ &=& {1 \over k} \left(x_k + \left({k-1 \over k-1}\right) \sum_{j=1}^{k-1} x_j \right) \\ &=& {1 \over k}(x_k + (k - 1) \mu_{k - 1}) \\ &=& \mu_{k-1} + {1 \over k}(x_k - \mu_{k - 1}) \\ &\approx& \mu_k + {1 \over k} \left(x_k - \mu_k \right) \end{matrix}$$
위 식을 이용하여 MC에서 증분평균을 구하면
$$V(s) = V(s) + {1 \over N(s)}(G_t - V(s))$$
가 된다.
최종적으로는 $G_t = V(s)$가 되어 상태가치 함수가 변하지 않는것이 목표이다.
프로그램을 보다 수월하게 하기 위하여 $1/N(s)$을 $\propto$로 변경할 수 있다.
$\propto$은 0과 1 사이의 값의 상수로 고정한다.
$$V(s) = V(s) + \propto(G_t - V(s))$$
7. 시간차 학습(TD : Temporal Difference Learning)과 살사(SARSA)
7.1 TD
MC에서는 에피소드가 완료 된 후에 상태가치 함수를 계산하였다.
이로인해 학습이 느리기 때문에 이를 보완하기 위하여 TD를 정의하였다.
MC에서 정의한 상태 가치 함수 식을 변형해보자.
$$V(s_t) = V(s_t) + \propto(G_t - V(s_t)) \\ V(s_t) = V(s_t) + \propto (R_{t+1} + \gamma V(s_{t+1}) - V(s_t))$$
TD는 에피소드가 끝나지 않아도 계산 가능한 특징때문에
끝이 정해지지 않은 환경에서도 적용 가능하다.
현재상태에서 할 수 있는 행동을 모두 하면서
가장 큰 행동 가치 함수를 찾아 가는 정책을 찾아나가는 것이 TD이다.
7.2 SARSA
TD에서는 정책을 평가할 때 상태 가치 함수를 사용했고
정책 제어시에만 행동 가치 함수를 사용하였다.
하지만 Q함수만으로도 정책을 평가하고 제어하는 것이 가능하다.
$$Q(S, A) = Q(S, A) + \propto (R_{t+1} + \gamma Q(S', A') - Q(S, A))$$
8. Q-learning
8.1 온 폴리시(On Policy)와 오프 폴리시(Off Policy)
SARSA의 경우 정책에 사용되는 정책과 정책을 제어하는 정책이 같았다.
이를 온 폴리시라고 한다.
반면 정책에 사용되는 정책과 정책을 제어하는 정책이 서로 다른 경우를 오프 폴리시라 한다.
8.2 중요도 샘플링(Importance Sampling)
중요도 샘플링이란 기댓값을 계산 할 때 계산하고자 하는 확률 분포를 알지만
그 확률분포의 샘플을 구할 수 없을때 다른 확률 분포에서 구한 샘플로 구하고자 하는 기댓값을 구하는 기법이다.
구하는 방법은 다음과 같다.
$$\sum P(X)f(X) = \sum Q(X) \left[ {P(X) \over Q(X)} f(X) \right]$$
위에서 $P(X)$는 구하고자 하는 기댓값의 확률 분포,
$Q(X)$는 샘플링을 구할 수 있는 확률 분포이다.
8.3 Q Learning
$$Q(S, A) = Q(S, A) + \propto (R_{t+1} + \gamma \underset{a'} \max Q(S', A') - Q(S, A))$$
Comments
Post a Comment