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
Petunjuk latihan
- Inisialisasi array
selections_percentageberisi nol, dengan dimensi untuk melacak persentase pemilihan setiap bandit dari waktu ke waktu. - Dapatkan
selections_percentagedari 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}")