강화학습: 몬테카를로 정책 평가
1. 정책 평가란?
강화학습에서 정책 평가는 현재의 정책(π)을 따랐을 때 각 상태의 기대 보상, 즉 V(s)
를 추정하는 과정입니다.
2. 몬테카를로 방법이란?
에이전트가 정책을 따르며 환경을 여러 번 경험하고, 각 상태에서 얻는 총 보상의 평균을 가치로 추정합니다. 종료 상태가 있어야 사용 가능합니다.
3. 절차
- 정책 π를 고정하고 여러 에피소드를 생성
- 에피소드 내 상태에서의 총 보상 Gt를 계산
- 각 상태에 대해 Gt의 평균값을 V(s)로 설정
4. 간단한 구현 예제 (Python)
아래 예시는 4개의 상태를 가진 단순한 환경에서 정책 평가를 수행하는 코드입니다.
import random
from collections import defaultdict
# 단순한 1D 환경: S1 -> S2 -> S3 -> S4 -> 종료
states = ['S1', 'S2', 'S3', 'S4']
policy = lambda s: 'right' # 항상 오른쪽으로 이동
num_episodes = 1000
def generate_episode():
episode = []
for state in states:
reward = 1 if state == 'S4' else 0
episode.append((state, reward))
return episode
returns = defaultdict(list)
V = {}
# 몬테카를로 평가 시작
for _ in range(num_episodes):
episode = generate_episode()
G = 0
visited_states = set()
for t in reversed(range(len(episode))):
state, reward = episode[t]
G += reward
if state not in visited_states:
returns[state].append(G)
visited_states.add(state)
# 평균값 계산
for state in states:
V[state] = sum(returns[state]) / len(returns[state])
# 결과 출력
for state in states:
print(f"V({state}) = {V[state]:.2f}")
5. 요약
몬테카를로 정책 평가는 모델 없이도 학습할 수 있는 샘플 기반 강화학습 기법입니다. 실제 환경과의 상호작용을 통해 상태 가치를 직접 평균적으로 추정하므로, 초기 학습이나 간단한 환경 실험에 매우 적합합니다.
댓글 없음:
댓글 쓰기