Pengetahuan apa yang saya butuhkan untuk menulis program AI sederhana untuk bermain game?

8

Saya lulusan B.Sc. Salah satu kursus saya adalah 'Pengantar Pembelajaran Mesin', dan saya selalu ingin melakukan proyek pribadi dalam subjek ini.

Baru-baru ini saya mendengar tentang pelatihan AI yang berbeda untuk bermain game seperti Mario, Go, dll.

Pengetahuan apa yang perlu saya peroleh untuk melatih program AI sederhana untuk bermain game? Dan game apa yang Anda rekomendasikan untuk pemula?

Inilah yang saya tahu di Machine Learning sejauh ini -

  • Pengantar kursus dan pembelajaran mesin. Algoritma K-Nearest Neighbor, dan algoritma K-means
  • Inferensi Statistik
  • Gaussian Mixture Model (GMM) dan Maksimalisasi Ekspektasi (EM)
  • Kemungkinan model Approach Correct (PAC), termasuk batas generalisasi dan pemilihan model
  • Algoritma hyperplane dasar: Perceptron dan Winnow.
  • Mendukung Mesin Vektor (SVM)
  • Kernel
  • Meningkatkan pelajar yang lemah menjadi pelajar yang kuat: AdaBoost
  • Margin-Perceptron
  • Regresi
  • PCA
  • Pohon Keputusan
  • Pohon Keputusan pemangkasan dan hutan acak
Niv Hoffman
sumber

Jawaban:

8

Ada beberapa cara untuk mendekati pemecahan masalah bermain game. Beberapa game dapat diselesaikan dengan algoritma pencarian misalnya. Ini berfungsi baik untuk permainan kartu dan papan hingga tingkat kompleksitas tertentu. Sebagai contoh, Deep Blue IBM pada dasarnya adalah pencarian heuristik yang digerakkan cepat untuk gerakan optimal.

Namun, mungkin algoritma pembelajaran mesin paling umum untuk melatih agen untuk melakukan tugas secara optimal adalah pembelajaran penguatan . Secara teknis ini bukan satu algoritma, tetapi keluarga besar dari algoritma terkait yang semuanya menyelesaikan formalisasi spesifik dari masalah pembelajaran.

Secara informal, Penguatan Belajar (RL) adalah tentang menemukan solusi optimal untuk masalah didefinisikan dalam hal suatu agen yang dapat mengamati keadaan dari lingkungan , mengambil tindakan dalam lingkungan dan pengalaman imbalan yang entah bagaimana berhubungan dengan negara dan tindakan. Pemecah RL perlu dirancang untuk mengatasi situasi di mana hadiah diterima lebih lambat daripada ketika tindakan penting diambil, dan ini biasanya dicapai dengan algoritma yang mempelajari ekspektasi internal imbalan kemudian terkait dengan pasangan negara dan / atau tindakan negara.

Berikut adalah beberapa sumber untuk mempelajari Penguatan Pembelajaran:

Anda akan menemukan subjek itu sendiri cukup besar karena variasi algoritma yang lebih dan lebih canggih diperlukan karena masalah untuk dipecahkan menjadi lebih sulit.

Memulai permainan untuk mempelajari pembelajaran penguatan mungkin termasuk:

  • Tik-tac-toe (alias Noughts dan crosses) - ini dapat diselesaikan dengan mudah menggunakan pencarian, tetapi itu membuat masalah mainan sederhana untuk dipecahkan dengan menggunakan teknik RL dasar.

  • Labirin - dalam literatur pembelajaran penguatan, ada banyak contoh permainan "dunia kisi" di mana agen bergerak dalam langkah N, E, S, W tunggal di papan kecil yang dapat diisi dengan bahaya dan tujuan.

  • Blackjack (alias 21)

Jika Anda ingin bekerja dengan agen untuk bermain video game, Anda juga ingin belajar tentang jaringan saraf dan mungkin dalam beberapa detail - Anda perlu jaringan saraf yang dalam dan konvolusional untuk memproses grafik layar.

Sumber daya yang relatif baru untuk RL adalah OpenAI Universe . Mereka telah melakukan banyak pekerjaan untuk mengemas lingkungan yang siap untuk melatih agen, yang berarti Anda dapat berkonsentrasi mempelajari algoritma pembelajaran, sebagai lawan dari upaya pengaturan lingkungan.


Mengenai daftar keterampilan Anda saat ini: Tidak satu pun dari mereka yang secara langsung relevan dengan pembelajaran penguatan. Namun:

  • Jika Anda dapat memahami matematika dan teori dari kursus sebelumnya, maka Anda juga harus bisa memahami teori belajar penguatan.

  • Jika Anda telah mempelajari teknik pembelajaran yang diawasi secara online atau batch, maka ini dapat digunakan sebagai komponen di dalam kerangka kerja RL. Biasanya mereka dapat digunakan untuk memperkirakan fungsi nilai dari kondisi permainan, berdasarkan umpan balik dari keberhasilan dan kegagalan sejauh ini.

Neil Slater
sumber
7

Ini sangat tergantung pada jenis permainan dan informasi tentang keadaan permainan yang tersedia untuk AI Anda.

Beberapa permainan AI yang paling terkenal dalam beberapa tahun terakhir didasarkan pada pembelajaran penguatan yang mendalam (misalnya Bermain Atari dengan Pembelajaran Penguatan Jauh ), yang merupakan pembelajaran penguatan normal (misalnya pembelajaran-Q) dengan jaringan saraf yang dalam sebagai pendekatan fungsi nilai hadiah. Pendekatan-pendekatan ini menerima piksel mentah game plus poin pemain, dan menghasilkan aksi-aksi dari sebuah game pad, mirip seperti manusia. Untuk melakukan sesuatu seperti itu, Anda perlu menguasai pembelajaran penguatan (lihat buku mani Sutton dan Barto ) dan pembelajaran mendalam (lihat buku Ian Goodfellow et al. ), Dan kemudian bagaimana memadukan mereka ke dalam pembelajaran penguatan yang dalam (cari penguatan) belajar "dalam daftar makalah pembelajaran mendalam seperti ini).

Namun, jika informasi tentang permainan yang tersedia untuk AI Anda lebih terstruktur daripada itu (misalnya posisi pemain, deskripsi lingkungan), Anda dapat melakukannya dengan baik dengan pendekatan yang lebih klasik di mana Anda menguraikan permainan Anda menjadi masalah yang bisa ditelusuri dan menyelesaikan masing-masing dengan algoritma misalnya dengan mencari dengan A * .

ncasas
sumber
3

Apa yang Anda cari disebut Reinforcement Learning . Di universitas saya, ada kursus lengkap ( ) hanya untuk memperkenalkan siswa dengan topik ini. Ini adalah catatan kuliah saya (kebanyakan Jerman) untuk perencanaan probabilistik . Saya akan mengatakan ini secara definitif merupakan topik lanjutan untuk pembelajaran mesin.153h=45h

Topcis untuk dipelajari

  • Proses Keputusan Markov (MDPs)
    • Kebijakan dan Nilai iterasi
    • Proyek: Rock-Paper-Gunting / Tic-Tac-Toe
  • Proses Keputusan Markov yang Dapat Diterima Sebagian
    • Proyek: Black Jack
  • Pembelajaran penguatan
    • Q-Learning
    • SARSA

Game sederhana lainnya

Sumber daya lainnya

Martin Thoma
sumber