[RL] Monte Carlo Method
동적 프로그래밍으로 최적 가치 함수와 최적 정책을 찾을 수 있었다. DP를 이용하려면 환경 모델 (상태 전이 확률과 보상 함수)을 알고 있어야 한다. 하지만 세상에는 환경 모델을 알 수 없는 문제가 많으며, 알 수 있더라도 DP 방식으로는 계산량이 너무 많아서 사실상 풀 수 없을 때가 많다.
강화학습은 이처럼 환경 모델을 알 수 없는 상황에서 더 나은 정책을 찾는 문제를 주로 다룬다. 이런 상황에서 문제를 풀려면 에이전트가 실제로 행동하여 얻은 경험을 토대로 학습해야 한다.
몬테카를로법 : 데이터를 반복적으로 샘플링하여 그 결과를 토대로 추정하는 방법
강화학습에서는 몬테카를로법을 통해 경험으로부터 가치 함수를 추정할 수 있다. 여기서 경험은 환경과 에이전트가 실제로 상호작용하여 얻은 데이터(일련의 상태, 행동, 보상)이다.
이번 장의 목표는 에이전트가 얻은 경험을 바탕으로 가치 함수를 추정하는 것이다. 이 목표가 달성되면 이어서 최적 정책을 찾을 수 있다.
1. 몬테카를로법 기초
지금까지는 환경 모델이 알려진 문제를 다뤘다. 그리드 월드 문제에서는 에이전트의 행동에 따른 다음 상태와 보상이 명확했다. 이처럼 환경 모델이 알려진 문제에서는 에이전트 측에서 ‘상태, 행동, 보상’의 전이를 시뮬레이션 할 수 있다.
하지만 현실에는 황경 모델을 알 수 없는 문제가 많으며, 상태 전이 확률을 이론적으로 알 수 있더라도 계산량이 너무 많은 경우가 허다하다.
얼마나 많은지 실감할 수 있도록 이번 절에서는 우선 주사위를 예로 들어 간단한 작업을 해보겠다.
1.1 주사위 눈의 합
주사위 두 개를 굴리는 문제를 가정하겠다. 각 눈이 나올 확률은 정확하게 1/6이라고 가정하자.
확률 분포를 얻을 수 있다.
주사위 눈의 합 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|---|---|---|---|
확률 | $\dfrac{1}{36}$ | $\dfrac{2}{36}$ | $\dfrac{3}{36}$ | $\dfrac{4}{36}$ | $\dfrac{5}{36}$ | $\dfrac{6}{36}$ | $\dfrac{5}{36}$ | $\dfrac{4}{36}$ | $\dfrac{3}{36}$ | $\dfrac{2}{36}$ | $\dfrac{1}{36}$ |
이와 같이 확률 분포를 알면 기댓값을 얻을 수 있다.
ps = {2: 1/36, 3: 2/36, 4: 3/36, 5: 4/36, 6: 5/36, 7: 6/36, 8: 5/36, 9: 4/36, 10: 3/36, 11: 2/36, 12: 1/36}
V = 0
for x, p in ps.items():
V += x * p
print(V) # 6.99999999999999
1.2 분포 모델과 샘플 모델
우리는 주사위를 굴리는 시도를 확률 분포로 모델링하였다.
모델링을 표현하는 방법
- 분포 모델 : 확률 분포로 표현된 모델
- 조건 : 확률 분포를 정확하게 안다.
- 샘플 모델 : ‘표본을 추출(샘플링)할 수만 있으면 충분하다’라는 모델. 예를 들어 주사위를 실제로 굴려서(샘플링) 나온 눈의 합을 관찰하는 방법
- 조건 : 샘플링할 수 있다.