First-Visit Monte Carlo 구현하기
Monte Carlo 알고리즘의 목표는 최적 정책을 도출하기 위해 Q-table을 추정하는 것입니다. 이 연습 문제에서는 First-Visit Monte Carlo 방법을 구현해 행동 가치 함수 Q를 추정하고, 이전 연습 문제에서 보았던 커스텀 환경을 해결하기 위한 최적 정책을 계산해 보겠습니다. return을 계산할 때는 할인율을 1로 가정하세요.
Q-값, 누적 보상 합, 그리고 각 상태-행동 쌍의 방문 횟수를 저장하는 numpy 배열 Q, returns_sum, returns_count가 미리 초기화되어 로드되어 있어요.
이 연습은 강의의 일부입니다
Python으로 배우는 Gymnasium 기반 Reinforcement Learning
연습 안내
- First-Visit Monte Carlo 알고리즘에서 확인해야 하는
if조건을 정의하세요. - return(
returns_sum), 그에 대한 카운트(returns_count), 그리고visited_states를 업데이트하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
for i in range(100):
episode = generate_episode()
visited_states = set()
for j, (state, action, reward) in enumerate(episode):
# Define the first-visit condition
if ____ not in ____:
# Update the returns, their counts and the visited states
returns_sum[state, action] += ____([____ for ____ in ____])
returns_count[state, action] += ____
visited_states.____(____)
nonzero_counts = returns_count != 0
Q[nonzero_counts] = returns_sum[nonzero_counts] / returns_count[nonzero_counts]
render_policy(get_policy())