Pembelajaran Penguatan Dengan Agen Tensorflow [2022]

Diterbitkan: 2021-01-01

Pembelajaran penguatan telah mendapatkan popularitas yang berharga dengan keberhasilan metode AlphaGo DeepMind yang relatif baru untuk mengalahkan pemain juara dunia Go. Metode AlphaGo dididik sebagian oleh pembelajaran penguatan pada jaringan saraf yang dalam.

Gaya pembelajaran ini adalah fitur berbeda dari pembelajaran mesin dari paradigma klasik yang diawasi dan tidak diawasi. Dalam pembelajaran penguatan, jaringan merespons data lingkungan (disebut keadaan) menggunakan jaringan saraf dalam, dan memengaruhi perilaku agen untuk mencoba mengoptimalkan hadiah.

Teknik ini membantu jaringan untuk mempelajari cara bermain olahraga, seperti Atari atau permainan video lainnya, atau beberapa tantangan lain yang dapat ditulis ulang sebagai bentuk permainan. Dalam tutorial ini, model umum pembelajaran penguatan, saya akan memperkenalkan prinsip-prinsip luas pembelajaran Q, dan saya akan menunjukkan cara menggabungkan pembelajaran Q mendalam di TensorFlow.

Daftar isi

Pengantar pembelajaran penguatan

Seperti disebutkan di atas, pembelajaran penguatan terdiri dari beberapa entitas atau prinsip dasar. Mereka adalah: lingkungan yang menciptakan kondisi dan penghargaan, dan entitas yang melakukan tindakan di lingkungan tertentu. Dalam diagram di bawah, Anda melihat interaksi ini:

Tugas agen dalam pengaturan seperti itu adalah menganalisis keadaan dan informasi insentif yang diterimanya dan memilih perilaku yang memaksimalkan input yang diterimanya dari hadiah. Agen belajar melalui kontak berulang dengan dunia, atau, dengan kata lain, bermain game secara berulang.

Agar berhasil, agen perlu:

1. Pelajari hubungan antara keadaan, perilaku, dan insentif yang dihasilkan

2. Tentukan langkah mana yang terbaik untuk dipilih (1)

Implementasi (1) memerlukan pendefinisian seperangkat prinsip tertentu yang dapat digunakan untuk memberitahukan (2) dan (2) disebut sebagai strategi operasi. Salah satu metode paling umum untuk menerapkan (1) dan (2) menggunakan deep Q adalah jaringan Deep Q dan kebijakan epsilon-greedy.

Pelajari: 5 Proyek TensorFlow Paling Populer untuk Pemula

pembelajaran Q

Pembelajaran Q adalah cara penyampaian data berbasis nilai untuk memberi tahu tindakan mana yang dapat dilakukan agen. Untuk membuat tabel yang meringkas manfaat dari mengambil tindakan pada beberapa permainan dalam keadaan adalah konsep awalnya intuitif menghasilkan prinsip-prinsip yang menjadi dasar tindakan. Ini akan melacak gerakan mana yang paling menguntungkan. Sebagai permulaan, mari kita pertimbangkan permainan sederhana di setiap negara bagian dengan 3 status dan dua tindakan potensial - sebuah tabel dapat mewakili hadiah untuk game ini:

Aksi 1 Aksi 2
Negara bagian 1 0 10
Negara bagian 2 10 0
Negara 3 0 10

Anda dapat melihat pada tabel di atas bahwa untuk permainan sederhana ini, ketika agen adalah Negara 1 dan mengambil Tindakan 2, jika mengambil Tindakan 1, ia akan menerima hadiah 10 tetapi hadiah nol. Di Negara 2, kondisinya terbalik, dan Negara 3 akhirnya menyerupai Negara 1. Jika agen secara sewenang-wenang menjelajahi permainan ini dan menghitung perilaku memperoleh hadiah paling banyak di salah satu dari tiga keadaan (menyimpan pengetahuan ini dalam array, katakanlah), sehingga bentuk praktis tabel di atas akan diketahui secara efektif.

Dengan kata lain, jika agen benar-benar memilih perilaku yang telah dipelajarinya di masa lalu yang memberikan penghargaan tertinggi (mempelajari beberapa bentuk tabel di atas secara efektif), ia akan belajar cara memainkan permainan secara efektif. Ketika tepat untuk membuat tabel dengan penjumlahan, mengapa kita membutuhkan ide-ide mewah seperti pembelajaran Q dan kemudian jaringan saraf?

Hadiah yang ditangguhkan

Nah, jawaban pertama yang jelas adalah bahwa permainan di atas sangat sederhana, dengan hanya 3 keadaan dan 2 babak per keadaan. Game yang sebenarnya secara signifikan lebih kompleks. Prinsip imbalan tertunda dalam kasus di atas adalah konsep penting lainnya yang tidak ada. Seorang agen harus belajar untuk dapat mengambil langkah-langkah untuk memainkan permainan yang paling realistis dengan benar, yang mungkin tidak selalu mengarah pada hadiah, tetapi dapat menghasilkan hadiah yang signifikan di kemudian hari.

Aksi 1 Aksi 2
Negara bagian 1 0 5
Negara bagian 2 0 5
Negara 3 0 5
Negara bagian 4 20 0

Jika Tindakan 2 dilakukan di semua keadaan dalam permainan yang disebutkan di atas, agen bergerak kembali ke Keadaan 1, yaitu kembali ke awal. Di Negara bagian 1 sampai 3, bahkan mendapat kredit 5 saat melakukannya. Oleh karena itu, jika Tindakan 1 diambil di semua Negara Bagian 1-3, agen akan melakukan perjalanan ke Negara Bagian berikutnya, tetapi tidak akan menerima hadiah sampai memasuki Negara Bagian 4, di mana ia akan menerima hadiah 20.

Dengan kata lain, agen lebih baik jika tidak mengambil Tindakan 2 untuk mendapatkan hadiah instan 5, tetapi dapat memilih Tindakan 1 untuk melanjutkan terus menerus melalui negara untuk mendapatkan hadiah 20. Agen ingin dapat untuk memilih tindakan yang menghasilkan hadiah tertunda ketika nilai hadiah tertunda terlalu tinggi.

Baca Juga: Klasifikasi Gambar Tensorflow

Aturan belajar Q

Ini mendorong kami untuk mengklarifikasi aturan pembelajaran Q. Dalam pembelajaran Q mendalam, jaringan saraf perlu mengambil keadaan sekarang, s, sebagai vektor dan mengembalikan nilai Q untuk setiap perilaku potensial, a, dalam keadaan itu, yaitu Perlu mengembalikan Q(s, a) untuk keduanya s dan a. Q(s, a) ini perlu direvisi dalam pelatihan melalui aturan berikut:

Q(s,a) = Q(s,a) + alp[r+γmaks Q(s',a ') – Q(s,a)] + alp[r+ maks Q(s',a')

Undang-undang ini perlu sedikit membongkar untuk peningkatan. Kedua, Anda dapat melihat bahwa nilai baru Q(s, a) memerlukan perubahan nilai yang ada dengan memasukkan beberapa bit tambahan di sisi kanan persamaan di atas. Beralih dari kiri ke kanan. Lupakan alfa untuk sementara waktu. Di dalam tanda kurung siku, kita melihat kata pertama adalah r, yang merupakan singkatan dari penghargaan yang diperoleh karena mengambil tindakan di negara bagian.

Ini adalah hadiah instan; belum ada kepuasan yang ditangguhkan. Kata selanjutnya adalah estimasi insentif yang ditangguhkan. Pertama-tama, kami memiliki nilai yang mendiskon efek hadiah tertunda, yang selalu antara 0 dan 1. Lebih lanjut tentang itu dalam satu detik. Suku berikutnya maxa'Q(s, 'a') adalah nilai Q maksimum yang tersedia pada kondisi berikutnya.

Mari kita buat sedikit lebih mudah-agen mulai di negara bagian, mengambil tindakan a, selesai di negara bagian, dan kemudian kode menentukan nilai maksimum Q di negara bagian, yaitu maks a 'Q(s',a'). Mengapa pengertian Max a 'Q(s',a') dipertimbangkan? Jika itu berlaku dan dalam keadaan s, diketahui mewakili hadiah penuh yang mungkin diberikan kepada pawang.

Namun, mendiskon nilai ini dengan mempertimbangkan bahwa menunggu insentif yang mungkin selamanya tidak diinginkan oleh agen-lebih baik bagi agen untuk menargetkan hadiah terbesar dengan waktu paling sedikit. Perhatikan bahwa nilai Q(s',a)' juga secara implisit mempertahankan insentif diskonto tertinggi untuk perekonomian setelah itu, yaitu Q(s',a)' karena mempertahankan motivasi diskonto untuk negara bagian Q(s',a) ' dan seterusnya.

Ini karena agen akan memilih tindakan tidak hanya berdasarkan imbalan langsung r, tetapi juga berdasarkan potensi insentif diskon di masa depan.

Pembelajaran Q yang mendalam

Pembelajaran Q mendalam mengikuti hukum pembaruan pembelajaran Q selama fase pelatihan. Dengan kata lain, jaringan saraf dibuat yang mengambil keadaan s sebagai inputnya, dan kemudian jaringan dilatih untuk menghasilkan nilai Q(s, a) yang sesuai untuk setiap perilaku dalam keadaan s. Tindakan agen kemudian akan dipilih dengan mengambil tindakan dengan nilai Q(s, a) terbesar (dengan mengambil argmax dari output jaringan saraf). Hal ini dapat dilihat pada langkah pertama dari diagram di bawah ini:

Langkah-langkah pemilihan tindakan dan pelatihan – Pembelajaran Q mendalam

Setelah transfer ini dilakukan dan tindakan telah dipilih, agen akan melakukan tindakan tersebut. Agen kemudian akan mendapatkan umpan balik tentang insentif apa yang diberikan untuk mengambil tindakan dari keadaan itu. Sesuai dengan Q Learning Guideline, langkah selanjutnya yang ingin kami lakukan sekarang adalah melatih jaringan. Pada bagian kedua, hal ini dapat dilihat pada diagram di atas.

Vektor keadaan s adalah larik masukan x untuk pelatihan jaringan, dan sampel pelatihan keluaran y adalah vektor Q(s, a) yang dikumpulkan selama proses pemilihan tindakan. Namun, salah satu nilai Q(s,a), yang berhubungan dengan aksi a, diatur untuk memiliki tujuan r+γQ(s',a '), seperti yang dapat dilihat pada gambar di atas. Dengan melatih jaringan dengan cara ini untuk memberi tahu agen perilaku apa yang terbaik untuk dipilih demi keuntungan jangka panjangnya, vektor keluaran Q(s, a) dari jaringan akan menjadi lebih kuat dari waktu ke waktu.

Kelebihan Pembelajaran Penguatan:

  • Pembelajaran penguatan dapat digunakan untuk memecahkan tantangan yang sangat menantang yang tidak dapat diatasi dengan pendekatan konvensional.
  • Strategi ini dipilih untuk menghasilkan hasil jangka panjang, yang sangat sulit dicapai.
  • Pola belajar ini agak mirip dengan belajar manusia. Oleh karena itu, hampir mencapai kesempurnaan.
  • Model akan memperbaiki kesalahan yang terjadi selama fase pengujian.
  • Jika kesalahan dikoreksi oleh model, kemungkinan kesalahan yang sama terjadi sedikit lebih rendah.
  • Ini akan menciptakan paradigma terbaik untuk masalah tertentu yang harus dipecahkan.

Kontra Pembelajaran Penguatan

  • Pembelajaran penguatan sebagai skema tidak benar dalam banyak hal yang berbeda, tetapi justru kualitas inilah yang membuatnya berguna.
  • Terlalu banyak pembelajaran penguatan dapat mengakibatkan keadaan menjadi kewalahan, yang dapat mengurangi hasil.
  • Pembelajaran penguatan tidak lebih baik digunakan untuk memecahkan masalah mendasar.
  • Pembelajaran penguatan membutuhkan banyak kecerdasan dan banyak perhitungan. Ini haus data. Itulah mengapa ini sangat cocok untuk video game, sehingga Anda dapat memainkan game tersebut berulang kali, dan tampaknya mungkin untuk mendapatkan banyak detail.
  • Pembelajaran penguatan mengasumsikan bahwa alam semesta adalah Markovian, padahal bukan. Model Markovian menggambarkan urutan kejadian yang mungkin di mana probabilitas setiap kejadian hanya bergantung pada kondisi yang dicapai pada kejadian sebelumnya.

Apa selanjutnya?

Jika Anda ingin menguasai pembelajaran mesin dan mempelajari cara melatih agen untuk bermain tic tac toe, melatih chatbot, dll., lihat kursus Diploma PG Pembelajaran Mesin & Kecerdasan Buatan Grad.

Apa itu TensorFlow?

Python, bahasa pemrograman yang populer digunakan dalam pembelajaran mesin, hadir dengan perpustakaan fungsi yang luas. TensorFlow adalah salah satu pustaka Python yang diluncurkan oleh Google, yang mendukung penghitungan numerik yang cepat dan efisien. Ini adalah perpustakaan open-source yang dibuat dan dikelola oleh Google yang banyak digunakan untuk mengembangkan model Deep Learning. TensorFlow juga digunakan bersama dengan library wrapper lainnya untuk menyederhanakan proses. Tidak seperti beberapa library numerik lain yang juga digunakan dalam Deep Learning, TensorFlow dikembangkan untuk penelitian dan pengembangan aplikasi dan fungsi lingkungan produksi. Itu dapat dijalankan pada mesin dengan CPU tunggal, perangkat seluler, dan sistem komputer terdistribusi.

Apa saja perpustakaan lain seperti TensorFlow dalam pembelajaran mesin?

Selama hari-hari sebelumnya, insinyur pembelajaran mesin biasa menulis semua kode untuk berbagai algoritma pembelajaran mesin secara manual. Sekarang menulis baris kode yang sama setiap kali untuk algoritma yang sama, model statistik dan matematika tidak hanya memakan waktu tetapi juga tidak efisien dan membosankan. Sebagai solusinya, library Python diperkenalkan untuk menggunakan kembali fungsi dan menghemat waktu. Koleksi library Python sangat luas dan serbaguna. Beberapa library Python yang paling umum digunakan adalah Theano, Numpy, Scipy, Pandas, Matplotlib, PyTorch, Keras, dan Scikit-learn, selain TensorFlow. Pustaka Python juga mudah kompatibel dengan pustaka C/C++.

Apa keuntungan menggunakan TensorFlow?

Banyaknya keunggulan TensorFlow menjadikannya pilihan yang sangat populer untuk mengembangkan model komputasi dalam pembelajaran mendalam dan pembelajaran mesin. Pertama, ini adalah platform sumber terbuka yang mendukung format visualisasi data yang disempurnakan dengan presentasi grafisnya. Pemrogram juga dapat dengan mudah menggunakannya untuk men-debug node yang menghemat waktu dan menghilangkan kebutuhan untuk memeriksa seluruh panjang kode jaringan saraf. TensorFlow mendukung semua jenis operasi, dan pengembang dapat membangun semua jenis model atau sistem di platform ini. Ini mudah kompatibel dengan bahasa pemrograman lain seperti Ruby, C++ dan Swift.