Reinforcement learning adalah salah satu jenis model machine learning yang agak berbeda dengan model prediktif lainnya. Model machine learning pada umumnya belajar melalui data yang diberikan untuk membangun model. Kemudian model tersebut akan digunakan untuk membuat prediksi pada masa mendatang. Pada reinforcement learning, alih-alih diberikan data, model hanya memilik sesuatu yang disebut Environment dan Agent yang ada pada environment tersebut. Agent memiliki tujuan. Sementara itu pada Environment terdapat rewards (penghargaan) dan punishment (hukuman) untuk memandu Agent membuat keputusan yang tepat sehingga dapat mencapai tujuannya. Rewards dan punishment akan menjadi data yang digenerate oleh Agent tersebut. Bingung? mari kita perjelas melalui contoh berikut.
Lihatlah gambar di bawah. Kita melihat grid dengan robot di sudut kiri bawah, itu adalah Agent. Tujuannya adalah untuk sampai ke peti harta karun di kanan atas. Namun, di sana juga ada gunung, karena Agent kita tidak bisa mendaki gunung, maka ia tidak boleh melewati kotak tersebut. Selain itu, di sana juga ada seekor naga yang siap untuk menyerang jika agent kita berada di kotak tempat di mana sang naga bertahta. Oleh karenanya, Agent juga tidak boleh melewati kotak yang ada naganya.
Ini adalah permainannya. Untuk memberikan informasi kepada si Agent apakah permainan dapat dilanjutkan atau tidak, kita akan menggunakan skor. Skor dimulai dari nol. Jika Agent berhasil sampai ke peti harta karun, maka kita beri rewards 100 poin. Jika Agent bertemu dengan naga, maka kita berikan punishment 50 poin (poin berkurang sebanyak 50). Dan untuk memastikan bahwa Agent kita bergerak dengan cepat, maka kita dapat menetapkan bahwa setiap langkah yang dilakukan Agent, maka ia akan kehilangan 1 poin, karena Agent kehilangan energi saat berjalan.
Cara melatih algoritma ini, kasarnya sebagai berikut: Agent mulai berjalan-jalan, merekam skornya, dan mengingat langkah apa yang membawanya ke sana. Setelah beberapa titik, ia mungkin bertemu naga dan kehilangan banyak poin. Oleh karena itu, ia akan belajar dengan mengasosiasikan kotak naga dan sekitarnya dengan skor rendah. Pada titik tertentu, mungkin ia juga akan bertemu dengan peti harta karun, sehingga ia belajar untuk mengaitkan kotak tersebut dan kotak yang disekitar harta karun dengan skor tinggi. Setelah memainkan game ini untuk waktu yang lama, Agent kita akan mengingat seberapa bagus setiap kotak yang akan dilaluinya untuk sampai ke harta karun.
Reinforcement Learning telah diaplikasikan ke dalam beberapa bidang, di antaranya:
- Game: Komputer telah dilatih untuk memenangkan beberapa permainan, seperti Go, Catur, Breakout, dan Super Mario.
- Robotika: Reinforcement learning secara luas digunakan untuk membantu robot melakukan tugas-tugas seperti mengambil kotak, membersihkan ruangan, bahkan menari.
- Self-driving Car: Reinforcement learning digunakan untuk membantu mobil melakukan banyak tugas seperti perencanaan jalur dan berperilaku di lingkungan tertentu.