НачатьНачать бесплатно

Создание многорукого бандита

Задача многорукого бандита — классический пример из области обучения с подкреплением. Она описывает ситуацию, в которой агент должен выбирать между несколькими действиями (или «рычагами»), не зная заранее ожидаемого вознаграждения за каждое из них. Со временем агент учится определять, какой рычаг даёт наибольшее вознаграждение, исследуя все доступные варианты. В этом упражнении вы создадите базовую структуру для моделирования задачи многорукого бандита.

Библиотека numpy уже импортирована как np.

Это упражнение является частью курса

Обучение с подкреплением с 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
Редактировать и запускать код