시작하기무료로 시작하기

Double Q-learning 적용하기

이 연습 문제에서는 Expected SARSA로 풀어 보았던 동일한 사용자 지정 환경에서 Double Q-learning 알고리즘을 적용해 차이를 살펴보겠습니다. Double Q-learning은 두 개의 Q-table을 사용하여 전통적인 Q-learning 알고리즘에 내재한 과대추정 편향을 줄이고, 다른 시차 차이(temporal difference) 방법보다 더 안정적인 학습을 제공합니다. 이 방법을 사용해 격자(grid) 환경을 탐색하면서, 산을 피하고 가능한 한 빨리 목표에 도달하도록 하며 가장 높은 보상을 노려 보세요.

new_cust_env.png

이 연습은 강의의 일부입니다

Python으로 배우는 Gymnasium 기반 Reinforcement Learning

강의 보기

연습 안내

  • 이전 연습 문제에서 코딩한 update_q_tables() 함수를 사용해 Q-table을 업데이트하세요.
  • 두 Q-table을 합산해 결합하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

Q = [np.zeros((num_states, num_actions))] * 2
for episode in range(num_episodes):
    state, info = env.reset()
    terminated = False   
    while not terminated:
        action = np.random.choice(num_actions)
        next_state, reward, terminated, truncated, info = env.step(action)
        # Update the Q-tables
        ____
        state = next_state
# Combine the learned Q-tables        
Q = ____
policy = {state: np.argmax(Q[state]) for state in range(num_states)}
render_policy(policy)
코드 편집 및 실행