Zacznij terazZacznij za darmo

Ocena zbieżności w problemie wielorękiego bandyty

Ocena skuteczności i zbieżności strategii w problemie wielorękiego bandyty jest kluczowa dla zrozumienia ich działania. Analizując, jak często każde ramię jest wybierane w kolejnych iteracjach, można prześledzić proces uczenia się i zdolność strategii do identyfikowania oraz wykorzystywania najlepszego ramienia. W tym ćwiczeniu zwizualizujesz procentowe udziały wyboru każdego ramienia w kolejnych iteracjach, aby ocenić zbieżność strategii epsilon-zachłannej.

Tablica selected_arms, która pokazuje, które ramię zostało wybrane w każdej iteracji, jest już wczytana i gotowa do użycia.

To ćwiczenie jest częścią kursu

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zainicjalizuj tablicę selections_percentage wypełnioną zerami, o wymiarach umożliwiających śledzenie procentowego udziału wyboru każdego bandyty w czasie.
  • Oblicz wartości selections_percentage w czasie, wyznaczając skumulowaną sumę wyborów dla każdego bandyty w kolejnych iteracjach i dzieląc ją przez numer iteracji.
  • Narysuj wykres skumulowanych procentowych udziałów wyboru dla każdego bandyty, aby zwizualizować, jak często każdy z nich jest wybierany w kolejnych iteracjach.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Initialize the selection percentages with zeros
selections_percentage = ____
for i in range(n_iterations):
    selections_percentage[i, selected_arms[i]] = 1
# Compute the cumulative selection percentages 
selections_percentage = np.____(____, axis=____) / np.arange(1, ____).reshape(-1, 1)
for arm in range(n_bandits):
  	# Plot the cumulative selection percentage for each arm
    plt.plot(____, label=f'Bandit #{arm+1}')
plt.xlabel('Iteration Number')
plt.ylabel('Percentage of Bandit Selections (%)')
plt.legend()
plt.show()
for i, prob in enumerate(true_bandit_probs, 1):
    print(f"Bandit #{i} -> {prob:.2f}")
Edytuj i uruchom kod