MulaiMulai sekarang secara gratis

Menilai konvergensi pada multi-armed bandit

Mengevaluasi kinerja dan konvergensi strategi pada masalah multi-armed bandit sangat penting untuk memahami efektivitasnya. Dengan menganalisis seberapa sering setiap lengan dipilih dari waktu ke waktu, kita dapat menyimpulkan proses pembelajaran dan kemampuan strategi untuk mengenali serta mengeksploitasi lengan terbaik. Latihan ini melibatkan visualisasi persentase pemilihan setiap lengan sepanjang iterasi untuk menilai konvergensi strategi epsilon-greedy.

Array selected_arms yang menunjukkan lengan mana yang ditarik pada setiap iterasi telah dimuat untuk Anda.

Latihan ini adalah bagian dari kursus

Reinforcement Learning dengan Gymnasium di Python

Lihat Kursus

Petunjuk latihan

  • Inisialisasi array selections_percentage berisi nol, dengan dimensi untuk melacak persentase pemilihan setiap bandit dari waktu ke waktu.
  • Dapatkan selections_percentage dari waktu ke waktu dengan menghitung jumlah kumulatif pemilihan untuk setiap bandit sepanjang iterasi, lalu membaginya dengan nomor iterasi.
  • Plot persentase pemilihan kumulatif untuk setiap bandit, untuk memvisualisasikan seberapa sering setiap bandit dipilih sepanjang iterasi.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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}")
Edit dan Jalankan Kode