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 merupakan bagian dari kursus
Reinforcement Learning dengan Gymnasium di Python
Instruksi 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 langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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}")