Створення багаторукого бандита
Задача багаторукого бандита — класичний приклад у підкріплювальному навчанні, що описує ситуацію, коли агент має обирати між кількома діями (або «руками»), не знаючи очікуваної винагороди для кожної. З часом агент вчиться, яка «рука» дає найбільшу винагороду, досліджуючи кожен варіант. У цій вправі ви підготуєте базову структуру для моделювання задачі багаторукого бандита.
Бібліотеку numpy вже імпортовано як np.
Ця вправа є частиною курсу
Reinforcement Learning з Gymnasium у Python
Інструкції до вправи
- Згенеруйте масив
true_bandit_probsіз випадковими ймовірностями, що відображають справжню базову ймовірність успіху для кожного бандита. - Ініціалізуйте два масиви —
countsіvalues— нулями;countsвідстежує, скільки разів кожного бандита було обрано, аvaluesподає оцінену ймовірність виграшу для кожного бандита. - Створіть масиви
rewardsіselected_arms, щоб зберігати отримані винагороди та вибрані «руки» на кожній ітерації.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
def create_multi_armed_bandit(n_bandits):
# Generate the true bandits probabilities
true_bandit_probs = ____
# Create arrays that store the count and value for each bandit
counts = ____
values = ____
# Create arrays that store the rewards and selected arms each episode
rewards = ____
selected_arms = ____
return true_bandit_probs, counts, values, rewards, selected_arms