Pengantar Q-Learning: pembelajaran penguatan

Artikel ini adalah bagian kedua dari seri "Pembelajaran penguatan mendalam" saya. Serial lengkap akan tersedia baik di Medium dan dalam video di saluran YouTube saya.

Pada bagian pertama dari seri ini kita mempelajari dasar - dasar pembelajaran penguatan .

Q-learning adalah algoritma pembelajaran berbasis nilai dalam pembelajaran penguatan. Di artikel ini, kita belajar tentang Q-Learning dan detailnya:

  • Apa itu Q-Learning?
  • Matematika di balik Q-Learning
  • Implementasinya menggunakan python

Q-Learning - gambaran sederhana

Katakanlah robot harus melewati labirin dan mencapai titik akhir. Ada ranjau , dan robot hanya bisa bergerak satu ubin dalam satu waktu. Jika robot menginjak ranjau, robot itu mati. Robot harus mencapai titik akhir dalam waktu sesingkat mungkin.

Sistem penilaian / penghargaan adalah sebagai berikut:

  1. Robot kehilangan 1 poin di setiap langkah. Ini dilakukan agar robot mengambil jalur terpendek dan mencapai tujuan secepat mungkin.
  2. Jika robot menginjak ranjau, poin kerugiannya adalah 100 dan permainan berakhir.
  3. Jika robot mendapat daya ⚡️, ia memperoleh 1 poin.
  4. Jika robot mencapai tujuan akhir, robot mendapat 100 poin.

Sekarang, pertanyaan yang jelas adalah: Bagaimana kita melatih robot untuk mencapai tujuan akhir dengan jalur terpendek tanpa menginjak ranjau?

Jadi, bagaimana kita mengatasi ini?

Memperkenalkan Q-Table

Q-Table hanyalah nama mewah untuk tabel pencarian sederhana tempat kami menghitung hadiah masa depan maksimum yang diharapkan untuk tindakan di setiap negara bagian. Pada dasarnya, tabel ini akan memandu kita ke tindakan terbaik di setiap negara bagian.

Akan ada empat jumlah tindakan di setiap ubin non-tepi. Saat robot dalam keadaan, ia bisa bergerak ke atas atau ke bawah atau ke kanan atau ke kiri.

Jadi, mari buat model lingkungan ini di Q-Table kita.

Dalam Q-Table, kolom adalah tindakan dan baris adalah status.

Setiap skor Q-tabel akan menjadi hadiah masa depan maksimum yang diharapkan yang akan didapat robot jika mengambil tindakan itu pada keadaan itu. Ini adalah proses berulang, karena kita perlu meningkatkan Q-Table di setiap iterasi.

Tapi pertanyaannya adalah:

  • Bagaimana kita menghitung nilai dari tabel-Q?
  • Apakah nilainya tersedia atau sudah ditentukan sebelumnya?

Untuk mempelajari setiap nilai dari Q-table, kami menggunakan algoritma Q-Learning.

Matematika: algoritma Q-Learning

Fungsi-Q

The Q-fungsi menggunakan persamaan Bellman dan mengambil dua input: Negara ( s ) dan tindakan ( a ).

Menggunakan fungsi di atas, kita mendapatkan nilai Q untuk sel di tabel.

Saat kita mulai, semua nilai dalam tabel-Q adalah nol.

Ada proses berulang untuk memperbarui nilai. Saat kita mulai menjelajahi lingkungan , fungsi-Q memberi kita perkiraan yang lebih baik dan lebih baik dengan terus memperbarui nilai-Q dalam tabel.

Sekarang, mari kita pahami bagaimana pembaruan itu terjadi.

Memperkenalkan proses algoritma pembelajaran-Q

Setiap kotak berwarna adalah satu langkah. Mari kita pahami masing-masing langkah ini secara mendetail.

Langkah 1: Inisialisasi Q-Table

Kami pertama-tama akan membangun Q-table. Ada n kolom, di mana n = jumlah tindakan. Ada m baris, di mana m = jumlah status. Kami akan menginisialisasi nilai pada 0.

Dalam contoh robot kami, kami memiliki empat tindakan (a = 4) dan lima status (s = 5). Jadi kita akan membangun tabel dengan empat kolom dan lima baris.

Langkah 2 dan 3: pilih dan lakukan tindakan

Kombinasi langkah-langkah ini dilakukan untuk waktu yang tidak ditentukan. Ini berarti bahwa langkah ini berjalan hingga saat kita menghentikan pelatihan, atau loop pelatihan berhenti seperti yang ditentukan dalam kode.

Kami akan memilih tindakan (a) di negara bagian berdasarkan Q-Table. Tapi, seperti yang disebutkan sebelumnya, saat episode pertama kali dimulai, setiap nilai Q adalah 0.

Jadi sekarang konsep trade-off eksplorasi dan eksploitasi mulai berlaku. Artikel ini memiliki detail lebih lanjut.

Kami akan menggunakan sesuatu yang disebut strategi rakus epsilon .

Pada awalnya, tingkat epsilon akan lebih tinggi. Robot akan menjelajahi lingkungan dan memilih tindakan secara acak. Logika di balik ini adalah robot tidak tahu apa-apa tentang lingkungan.

Saat robot menjelajahi lingkungan, laju epsilon menurun dan robot mulai mengeksploitasi lingkungan.

Selama proses eksplorasi, robot semakin percaya diri dalam memperkirakan nilai-Q.

Untuk contoh robot, ada empat tindakan yang bisa dipilih : atas, bawah, kiri, dan kanan.Kami memulai pelatihan sekarang - robot kami tidak tahu apa-apa tentang lingkungan. Jadi robot memilih tindakan acak, katakan benar.

Kami sekarang dapat memperbarui nilai-Q untuk berada di awal dan bergerak ke kanan menggunakan persamaan Bellman.

Langkah 4 dan 5: evaluasi

Sekarang kita telah mengambil tindakan dan mengamati hasil dan penghargaan. Kita perlu memperbarui fungsi Q (s, a).

Dalam kasus permainan robot, mengulangi struktur penilaian / penghargaan adalah:

  • daya = +1
  • milikku = -100
  • akhir = +100

Kami akan mengulanginya lagi dan lagi sampai pembelajaran dihentikan. Dengan cara ini Q-Table akan diperbarui.

Implementasi Python dari Q-Learning

Konsep dan implementasi kode dijelaskan dalam video saya.

Berlangganan ke saluran YouTube saya Untuk lebih banyak video AI: ADL .

Akhirnya… mari kita rekap

  • Q-Learning adalah algoritma pembelajaran penguatan berbasis nilai yang digunakan untuk menemukan kebijakan pemilihan tindakan yang optimal menggunakan fungsi Q.
  • Tujuan kami adalah untuk memaksimalkan fungsi nilai Q.
  • Tabel Q membantu kami menemukan tindakan terbaik untuk setiap negara bagian.
  • Ini membantu memaksimalkan imbalan yang diharapkan dengan memilih yang terbaik dari semua tindakan yang mungkin.
  • Q (state, action) mengembalikan reward masa depan yang diharapkan dari tindakan itu pada state itu.
  • Fungsi ini dapat diperkirakan menggunakan Q-Learning, yang secara iteratif memperbarui Q (s, a) menggunakan persamaan Bellman.
  • Awalnya kami menjelajahi lingkungan dan memperbarui Q-Table. Ketika Q-Table siap, agen akan mulai mengeksploitasi lingkungan dan mulai mengambil tindakan yang lebih baik.

Lain kali kita akan mengerjakan contoh pembelajaran-Q yang mendalam .

Sampai saat itu, nikmati AI?.

Penting : Seperti yang dinyatakan sebelumnya, artikel ini adalah bagian kedua dari seri "Pembelajaran Penguatan Mendalam" saya. Serial lengkap akan tersedia baik di artikel di Medium dan di video di saluran YouTube saya.

Jika Anda menyukai artikel saya, silakan klik? untuk membantu saya tetap termotivasi untuk menulis artikel. Silakan ikuti saya di M edium dan media sosial lainnya:

Jika Anda memiliki pertanyaan, beri tahu saya melalui komentar di bawah atau di Twitter .

Berlangganan saluran YouTube saya untuk video teknologi lainnya.