강화학습_Monte Carlo Algorithm

지토·2023년 4월 1일
0

강화학습

목록 보기
3/4

모델을 모를 때 사용할 수 있는 방법

여기서 모델을 모른다는 건, State Transition Matrix / Reward 등을 모른다는 뜻이다.

여기서 몬테카를로 방법은 '큰 수의 법칙' 을 전제로, 에피소드에 대한 경험을 토대로 학습한다.

  • 몬테카를로 방법은 Complete Episode 에서 으로부터 배운다.

직접 측정하기 어려운 통계량이 있을 때 여러 번 샘플링하여 그 값을 가늠하는 기법

Transit & Episode

[S1A1R1S2A2R2...SnAnRn]\begin{bmatrix} S_{1} & A_{1} & R_{1} \\ S_{2} & A_{2} & R_{2}\\ & ... & \\ S_{n} & A_{n} & R_{n} \end{bmatrix}

이 행렬의 한 행을 Transit 이라고 하고, Transit 의 시퀀스들을 Episode 라고 한다.
몬테카를로의 경우, SAR 을 한 Transit 으로 본다.

Complete Episode 가 있어야 return 을 계산할 수 있기 때문에, 몬테카를로는 Complete Episode 가 있어야 계산할 수 있다.

Monte-Carlo RL

  • Increment Counter : N(s) = N(s) + 1
  • Increment Total Return : S(s) = S(s) + Gt
  • Value is estimated by mean return = V(s) = S(s)/N(s)

예시

discount factor 가 1일 때

  • S = {1,2,...,10,T}

  • A = {1,2,3,4}

  • Episode : Sequence of transit (s,a,r)

  • Episode 1 : (s1,a1,3) (s3,a2,2) (s9,a3,10) (s2,a1,2) (s4,a4,1)

  • Return : 3+2+10+2+1

  • Increment count of state

    N(s1)=N(s1+1),...N(s4)=N(s4)+1N(s_{1}) = N(s_{1}+1), ... N(s_{4})=N(s_{4})+1
  • Accumulated Reward from the state :

S(s4)=S(s4)+1,S(s2)=S(s2)+3,S(s9)=S(s9)+13,S(s3)=S(s3)+15,S(s1)=S(s1)+18S(s_{4}) = S(s_{4})+1, S(s_{2}) = S(s_{2})+3, S(s_{9}) = S(s_{9})+13, S(s_{3}) = S(s_{3})+15, S(s_{1}) = S(s_{1})+18

따라서 결국 Value 는 다음과 같이 나온다.

V(s4)=S(s4)/N(s4),V(s2)=S(s2)/N(s2)...V(s_{4}) = S(s_{4})/N(s_{4}), V(s_{2}) = S(s_{2})/N(s_{2})...

Incremental Mean

mu : value 의 평균값
x : sequence 번호
k : sample 의 개수 (learning rate)

μk=1kj=1kxj=1k(xk+j=1k1xj)=1k(xk+(k1)μk1)\mu _{k} = \frac{1}{k}\sum_{j=1}^{k}x_{j} = \frac{1}{k}(x_{k}+\sum_{j=1}^{k-1}x_{j}) = \frac{1}{k}(x_{k}+(k-1)\mu_{k-1})

(시그마가 저렇게 되는 이유는 평균 x 개수 = sum 이기 때문)

μk=μk1+1k(xkμk1)\mu _{k} = \mu_{k-1}+\frac{1}{k}(x_{k}-\mu_{k-1})

예전에는 episode 끝날 때 까지 Sum 에 다 쌓아놓고 number 로 나눠서 Value 를 구했는데,
이렇게 하면 value 값만 계속 업데이트하면 됨. (Forget old episode)

N(St)=N(St)+1N(S_{t}) = N(S_{t})+1
V(St)=V(St)+1N(St)(GtV(St))V(S_{t}) = V(S_{t})+\frac{1}{N(S_{t})}(G_{t}-V(S_{t}))

(Gt: Return)

0개의 댓글