감쇠된 epsilon-greedy 전략으로 CliffWalking 해결하기
epsilon-greedy 전략을 강화하기 위해 감쇠 계수(decay factor)를 도입해, 에이전트가 환경을 더 잘 알게 될수록 탐색률 epsilon을 점진적으로 낮춥니다. 이 방식은 학습 초기에 탐색을 장려하고, 환경에 익숙해질수록 학습한 지식을 활용하도록 돕습니다. 이제 이 전략을 CliffWalking 환경에 적용해 보세요.
환경은 이미 초기화되어 있으며 변수 env로 접근할 수 있어요. 변수 epsilon, min_epsilon, epsilon_decay는 미리 정의되어 있습니다. 또한 epsilon_greedy()와 update_q_table() 함수가 임포트되어 있어요.
이 연습은 강의의 일부입니다
Python으로 배우는 Gymnasium 기반 Reinforcement Learning
연습 안내
action을 선택하고 실행한 뒤, 받은reward를episode_reward에 누적하고, Q-테이블을 업데이트하여 전체 학습 루프를 구현하세요.epsilon_decay비율을 사용해epsilon을 감소시키되,min_epsilon보다 작아지지 않도록 하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
rewards_decay_eps_greedy = []
for episode in range(total_episodes):
state, info = env.reset()
episode_reward = 0
for i in range(max_steps):
# Implement the training loop
action = ____
new_state, reward, terminated, truncated, info = ____
episode_reward += ____
____
state = new_state
rewards_decay_eps_greedy.append(episode_reward)
# Update epsilon
epsilon = ____
print("Average reward per episode: ", np.mean(rewards_decay_eps_greedy))