모델을 모를 때 사용할 수 있는 방법
여기서 모델을 모른다는 건, State Transition Matrix / Reward 등을 모른다는 뜻이다.
여기서 몬테카를로 방법은 '큰 수의 법칙' 을 전제로, 에피소드에 대한 경험을 토대로 학습한다.
- 몬테카를로 방법은 Complete Episode 에서 으로부터 배운다.
직접 측정하기 어려운 통계량이 있을 때 여러 번 샘플링하여 그 값을 가늠하는 기법
Transit & Episode
⎣⎢⎢⎢⎡S1S2SnA1A2...AnR1R2Rn⎦⎥⎥⎥⎤
이 행렬의 한 행을 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)+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)+18
따라서 결국 Value 는 다음과 같이 나온다.
V(s4)=S(s4)/N(s4),V(s2)=S(s2)/N(s2)...
Incremental Mean
mu : value 의 평균값
x : sequence 번호
k : sample 의 개수 (learning rate)
μk=k1j=1∑kxj=k1(xk+j=1∑k−1xj)=k1(xk+(k−1)μk−1)
(시그마가 저렇게 되는 이유는 평균 x 개수 = sum 이기 때문)
μk=μk−1+k1(xk−μk−1)
예전에는 episode 끝날 때 까지 Sum 에 다 쌓아놓고 number 로 나눠서 Value 를 구했는데,
이렇게 하면 value 값만 계속 업데이트하면 됨. (Forget old episode)
N(St)=N(St)+1
V(St)=V(St)+N(St)1(Gt−V(St))
(Gt: Return)