다중 슬롯머신 문제 해결하기
이 연습 문제에서는 10개 슬롯(arms)을 가진 밴딧 문제를 해결하기 위해 epsilon-greedy 전략을 구현해 봅니다. 시간에 따라 epsilon 값을 감소시켜 탐색에서 활용으로 점차 전환해 보세요.
epsilon, min_epsilon, 그리고 epsilon_decay는 미리 정의되어 있고, epsilon_greedy() 함수도 이미 가져와 두었습니다.
이 연습은 강의의 일부입니다
Python으로 배우는 Gymnasium 기반 Reinforcement Learning
연습 안내
create_multi_armed_bandit()함수를 사용해 10개 슬롯을 가진 밴딧 문제를 초기화하세요. 이 함수는true_bandit_probs,counts,values,rewards, 그리고selected_arms를 반환합니다.epsilon_greedy()함수를 사용해 당길 슬롯(arm)을 선택하세요.- 실제 밴딧 확률을 기반으로
reward를 시뮬레이션하세요. epsilon값을 감소시키되,min_epsilon값 아래로 내려가지 않도록 하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create a 10-armed bandit
true_bandit_probs, counts, values, rewards, selected_arms = ____
for i in range(n_iterations):
# Select an arm
arm = ____
# Compute the received reward
reward = ____
rewards[i] = reward
selected_arms[i] = arm
counts[arm] += 1
values[arm] += (reward - values[arm]) / counts[arm]
# Update epsilon
epsilon = ____