[Deep Reinforcement Learning] 11강 Monte Carlo method1

Woosci·2025년 7월 10일

👨‍🏫학습목표

오늘은 Monte Carlo methodMC Prediction 그리고 Incremental Mean에 대해 배워볼 예정이다.

👨‍🎓강의영상: https://www.youtube.com/watch?v=eibrMjPEAMg&list=PLvbUC2Zh5oJtYXow4jawpZJ2xBel6vGhC&index=11

1️⃣ Monte Carlo method

🔷 Monte Carlo

출처: https://medium.com/@miyoko_shimura/monte-carlo-simulation-using-python-random-sampling-by-calculating-π-be3cdd326361
  • Random sampling을 통해서 특정 수치적 결과를 얻는 방법이다.

  • Q-table (Action-value function table)을 사용한다.

  • MC Policy Iteration은 Episode를 하나의 단위로 하여 GPI를 수행한다.

  • 하나의 sample은 하나의 episode의 끝 terminal state까지의 단계를 포함한다.

  • Sample data의 state만 고려하여 계산하기 때문에 연산량이 적다.

  • Monte Carlo는 Markov property를 일부 따르지 않더라도 큰 문제가 없다.

  • Q(s,a)Q(s,a)를 업데이트하기 위해서는 GtG_t 혹은 Rt+1+γQ(St+1,At+1)R_{t+1} + \gamma Q(S_{t+1}, A_{t+1})를 사용할 수 있는데, Monte Carlo는 GtG_t를 사용하여 업데이트하기 때문이다.

  • 반면, 이후에 살펴볼 Temporal Difference (TD)는 Rt+1+γQ(St+1,At+1)R_{t+1} + \gamma Q(S_{t+1}, A_{t+1})를 사용하여 Q(s,a)Q(s,a)를 업데이트 하기 때문에 Markov property를 따르지 않을 경우 문제가 발생한다.



2️⃣ MC Prediction

🔷 MC Prediction

  • Dynamic Programmin에서는 모든 state를 계산하기 때문에 evaluation이라는 표현이 적합하지만, Monte Carlo에서는 sample data만으로 추정을 하기 때문에 prediction이라는 표현이 더 적합하다.

  • 목표: 현재 policy에서 model이 경험을 통해 하나의 episode sample을 수집한 후, 해당 정보를 이용하여 qπq_\pi를 구하는 것이다.

  • Episode 정보: S0,A0,R1,S1,,RT,STS_0, A_0, R_1, S_1, \dots, R_T, S_T

  • Return: Gt=Rt+1+γRt+2++γTt1RTG_t = R_{t+1} + \gamma R_{t+2} + \dots + \gamma^{T-t-1} R_T

  • Action-value function: qπ(s,a)=Eπ[GtSt=s,At=a]q_\pi(s, a) = \mathbb{E}_\pi[G_t | S_t = s, A_t = a]


❗ 여기서 잠깐

Monte Carlo는 sample을 이용하여 계산하기 때문에 EE 기대값을 구할 수 없다. 따라서 하나의 시나리오에 대한 sample들의 GtG_t의 평균을 대신 사용한다.

또한 하나의 시나리오 안에서도 동일한 (s,a)(s, a)이 나타날 수 있다. 첫 번째 쌍만 사용할지, 모든 쌍을 사용할지에 따라 First-Visit MCEvery-Visit MC로 나뉜다.

  • 각 state-action 쌍에 대한 return의 평균을 구할 때, 각 return이 서로 독립이고, sample의 수가 충분히 크다면 큰 수의 법칙에 따라 Q(s,a)qπ(s,a)Q(s,a) \rightarrow q_\pi(s,a)를 만족한다.

  • 이러한 각 Q(s,a)Q(s,a)계산하는 과정을 조금 더 간단하게 만든 것이 Incremental mean이다.



3️⃣ Incremental Mean

🔷 Incremental mean

μk=1ki=1kxi=1k(i=1k1xi+xk)=1k((k1)μk1+xk)=μk1+1k(xkμk1)\mu_k = \frac{1}{k} \sum_{i=1}^k x_i = \frac{1}{k} \left( \sum_{i=1}^{k-1} x_i + x_k \right) = \frac{1}{k} ((k-1)\mu_{k-1} + x_k)\\ = \mu_{k-1} + \frac{1}{k}(x_k - \mu_{k-1})
  • 정리하면 아래와 같다.
μk=μk1+1k(xkμk1)\mu_k = \mu_{k-1} + \frac{1}{k}(x_k - \mu_{k-1})

🔷 Incremental Monte Carlo updates

  • Episode 정보: S0,A0,R1,S1,,RT,STS_0, A_0, R_1, S_1, \dots, R_T, S_T
n(St,At)n(St,At)+1n(S_t, A_t) \leftarrow n(S_t, A_t) + 1

Q(St,At)Q(St,At)+1n(St,At)[GtQ(St,At)]Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \frac{1}{n(S_t, A_t)} [G_t - Q(S_t, A_t)]
  • 모든 GtG_t를 기억할 필요 없이 이전 Q(St,At)Q(S_t, A_t)새로운 GtG_t에 대한 정보만 알고 있으면 된다.

  • 그런데 Reinforcement Learning에서 model은 시간이 지날수록 성능이 개선된다.

  • 따라서 미래에 얻게 되는 Return GtG_t가 더 중요하다는 의미이기도 한다.

  • 하지만 현재 방식은 모든 시간의 GtG_t를 동등한 중요도로 보고 평균을 구하는 방식이다.

  • 이러한 한계를 극복하기 위해 새로운 방식이 등장한다.


🔷 Constanst - α\alpha MC Policy Evaluation

Q(St,At)Q(St,At)+α[GtQ(St,At)]Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [G_t - Q(S_t, A_t)]
  • 1n(St,At)\frac{1}{n(S_t, A_t)}대신 상수 α\alpha를 사용한다.

  • α\alpha를 사용하게 되면 최근의 Return GtG_t를 더 많이 반영하는 효과가 나타한다.

  • 또한 1n(St,At)\frac{1}{n(S_t, A_t)}를 계속 연산하지 않기 때문에 연산량이 감소한다.

  • 또한 model의 성능은 계속해서 좋아지기 때문에 GtG_t는 엄밀하게 보면 iidiid를 만족하지 않는다.

  • 식을 정리하면 아래와 같다.

Q(St,At)(1α)Q(St,At)+αGtQ(S_t, A_t) \leftarrow(1 - \alpha) Q(S_t, A_t) + \alpha G_t
  • Old episode를 (1α)(1-\alpha)만큼 감소시키는 효과가 있다.


4️⃣ 정리

🔷 11강에서 배운 내용은 아래와 같다.

  1. Monte Carlo method에 대해 배웠다.
  2. MC Prediction 단계에서 qπ(s,a)q_\pi(s, a)를 추정하는 방법을 살펴보았다.
  3. Incremental Monte Carlo를 배웠다.
  4. 최근의 Return GtG_t를 더 많이 반영하는 Constanst - α\alpha MC Policy Evaluation를 살펴보았다.
profile
I'm curious about AI

0개의 댓글