Řešení problému multi-armed bandit
V tomto cvičení implementuješ epsilon-greedy strategii pro řešení problému 10-ramenného bandity, přičemž hodnota epsilon se v průběhu času snižuje – agent se tak postupně přesouvá od průzkumu k využívání naučených znalostí.
Proměnné epsilon, min_epsilon a epsilon_decay jsou již předem definovány. Funkce epsilon_greedy() je také naimportována.
Toto cvičení je součástí kurzu
Reinforcement Learning with Gymnasium in Python
Pokyny k cvičení
- Pomocí funkce
create_multi_armed_bandit()inicializuj problém 10-ramenného bandity – funkce vrátítrue_bandit_probs,counts,values,rewardsaselected_arms. - Vyber rameno k tažení pomocí funkce
epsilon_greedy(). - Simuluj hodnotu
rewardna základě skutečných pravděpodobností bandity. - Sniž hodnotu
epsilontak, aby neklesla pod hodnotumin_epsilon.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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 = ____