Machine Learning: K-Armed Bandit

Mesin casino bandit yang terkenal

Catatan penting : Jika pembaca benar-benar awam tentang apa itu Python, silakan klik artikel saya ini. Jika pembaca awam tentang R, silakan klik artikel ini.

Catatan kedua: Untuk bisa mengerti bahasa Python kali ini, pembaca harus sudah memahami konsep OOP (Object Oriented Programming).

Pembahasan yang akan dibahas kali ini adalah aplikasi real dari Reinforcement Learning (RL).


Studi Kasus: K-Armed Bandit

Kali ini kita akan coba memecahkan masalah yang sangat sederhana yaitu K-armed Bandit. Yang dimaksud dengan K-armed artinya tangannya ada banyak, sebanyak K buah. Sementara bandit yang dimaksud adalah nama sebuah mesin kasino yang terkenal.

Misal, kita memiliki 3 buah mesin seperti di atas, maka permasalahannya menjadi 3-armed bandit. Ilustrasinya sebagai berikut.

Permasalahan 3-armed bandit

Setiap mesin memiliki probabilitas kemenangan yang berbeda-beda. Sebut saja mesin 1, 2 dan 3 probabilitas menangnya adalah 0.2, 0.5, dan 0.6 . Tentunya ini angka permisalan, dalam kondisi nyata kita tidak tahu probabilitas masing-masing mesin.

Nah tugas kita adalah bagaimana caranya mesin bisa belajar dari uji coba (trial error) di semua mesin, sehingga ia bisa melakukan langkah mana yang tepat. Langkah yang tepat adalah langkah memilih mesin yang tepat sehingga kemungkinan menangnya paling tinggi.


Ada dua istilah yang harus dipahami di persoalan K-armed bandit ini, yaitu exploration dan exploitation.

  1. Exploration = Kita mencoba beberapa mesin dan terus belajar dari uji coba ini (mengumpulkan data). Proses pemilihan mesin ini bersifat random.
  2. Exploitation = Kita memilih mesin yang dianggap bisa memaksimalkan kemungkinan menang. Proses pemilihan mesin ini tidak bersifat random.

Dengan demikian, kita harus bisa menyeimbangkan antara eksplorasi dan eksploitasi. Jika kita tidak cukup mengambil banyak data (eksplorasi) maka keputusan eksploitasi kita tentunya tidak optimal. Jika kita tidak segera ekploitasi, maka keputusan kita juga bisa saja rugi, karena terlalu banyak uji coba yang tak jelas arahnya ke mana. Perlu diingat bahwa sekali memutar sebuah mesin, kita mengeluarkan uang.

Permasalahan eksplorasi dan eksploitasi ini sering disebut dengan istilah explore-exploit dilemma. Untuk mendapatkan solusi terhadap dilema ini kita harus berkenalan dengan epsilon greedy, apa itu?

Epsilon greedy kalau diterjemahkan adalah koefisien epsilon yang rakus, terjemahan yang agak aneh memang. Maksudnya adalah, koefisien ini merupakan probabilitas agen untuk melakukan ekplorasi. Umumnya nilainya antara 0.05 dan 0.1 (tentunya bisa diubah terserah kita). Semakin besar nilainya, maka agen akan lebih sering melakukan eksplorasi.

Nilai yang epsilon greedy kita inginkan adalah nilai yang bisa memaksimalkan rewardnya dalam waktu sesingkat mungkin.

Apakah ada angka epsilon greedy yang ideal? Jawabannya tidak ada. Untuk permasalahan tertentu terkadang 0.1 sudah baik, terkadang 0.05 lebih cepat. Bahkan jika ingin lebih kecil lagi, 0.01 bisa jadi yang terbaik.

Untuk melanjutkan membaca silakan klik halaman selanjutnya di bawah ini.

Bagikan artikel ini:

Pages: 1 2 3

Leave a Reply

avatar
  Subscribe  
Notify of