Bagaimana cara melatih jaringan saraf untuk permainan papan berbasis bulat?

11

Saya bertanya-tanya bagaimana cara melatih jaringan saraf untuk permainan papan berbasis bulat seperti, tic-tac-toe, catur, risiko atau permainan berbasis putaran lainnya. Mendapatkan langkah selanjutnya dengan inferensi tampaknya cukup mudah, dengan memberi makan status permainan sebagai input dan menggunakan output sebagai langkah untuk pemain saat ini. Namun melatih AI untuk tujuan itu tampaknya tidak lurus ke depan, karena:

  1. Mungkin tidak ada peringkat jika satu gerakan baik atau tidak, jadi pelatihan gerakan tunggal tampaknya bukan pilihan yang tepat
  2. Menggunakan semua status permainan (input) dan gerakan (output) dari seluruh permainan untuk melatih jaringan saraf, tampaknya bukan pilihan yang tepat karena tidak semua gerakan dalam game yang hilang mungkin buruk

Jadi saya bertanya-tanya bagaimana cara melatih jaringan saraf untuk permainan papan berbasis bulat? Saya ingin membuat jaringan saraf untuk tic-tac-toe menggunakan tensorflow.

soriak
sumber

Jawaban:

10

Pertanyaan bagus! NN sangat menjanjikan untuk masalah jenis ini: Catur Jerapah . Prestasi Lai dianggap sebagai masalah yang cukup besar , tetapi sayangnya datang hanya beberapa bulan sebelum AlphaGo mendapat sorotan. (Semuanya ternyata baik, karena Lai kemudian disewa oleh DeepMind, meskipun tidak begitu baik untuk mesin Giraffe ;)

Saya menemukan pendekatan Lai sangat membantu, dan didukung oleh hasil yang solid.


Anda mungkin ingin menggunakan " berurutan " sebagai lawan dari "berbasis bulat" karena berurutan adalah istilah yang lebih disukai dalam Teori Permainan dan Teori Permainan Kombinatorial , dan ini adalah bidang yang menerapkan analisis matematika untuk permainan.

Permainan yang Anda daftarkan selanjutnya disebut " abstrak " untuk membedakannya dari boardgames strategi modern, atau game pada umumnya, yang menggunakan tema yang kuat dan umumnya kurang kompak daripada game abstrak dalam hal mekanika dan elemen. Ini membawa peringatan bahwa game abstrak tidak terbatas pada game berurutan atau boardgames, atau bahkan game khusus, seperti dalam kasus teka-teki seperti Sudoku.

Nama resmi untuk kelompok permainan ini umumnya " partisan , sekuensial, deterministik , informasi sempurna " dengan kategorisasi lebih lanjut dari Tic-Tac-Toe sebagai "sepele" (dipecahkan dan mudah dipecahkan) dan non-sepele (sulit dan tidak terpecahkan) untuk game seperti Catur dan Pergi.

DukeZhou
sumber
7

Saya seorang pemain catur dan jawaban saya hanya pada catur.

Pelatihan jaringan netral dengan penguatan pembelajaran bukan hal baru, telah dilakukan berkali-kali dalam literatur.

Saya akan menjelaskan secara singkat strategi umum.

  • Tujuan jaringan adalah untuk mempelajari evaluasi posisi. Kita semua tahu seorang ratu lebih kuat daripada seorang uskup, tetapi dapatkah kita membuat jaringan mengetahuinya tanpa pemrograman secara eksplisit? Bagaimana dengan struktur gadai? Apakah jaringan mengerti bagaimana mengevaluasi apakah suatu posisi menang atau tidak?

  • Sekarang, kita tahu mengapa kita membutuhkan jaringan, kita harus mendesainnya. Desain berbeda secara radikal antara studi. Sebelum pembelajaran mendalam populer, orang-orang menggunakan jaringan yang dangkal. Saat ini, jaringan dengan banyak lapisan menonjol.

  • Setelah kami memiliki jaringan, Anda harus membuat mesin catur. Jaringan saraf tidak bisa secara ajaib bermain catur dengan sendirinya, itu perlu terhubung ke mesin catur. Untungnya, kita tidak perlu menulis kode evaluasi posisi karena jaringan dapat melakukannya untuk kita.

  • Sekarang, kita harus bermain game. Kami bisa mulai dengan beberapa basis data catur berkualitas tinggi atau sebagai gantinya meminta agen AI kami bermain-main dengan pemain lain (misalnya sendiri, agen AI lain, atau manusia). Ini dikenal sebagai pembelajaran penguatan .

  • Saat kami bermain game, kami memperbarui parameter jaringan. Ini dapat dilakukan oleh keturunan gradien stokastik (atau teknik serupa lainnya). Kami mengulangi pelatihan kami selama yang kami inginkan, biasanya lebih dari jutaan iterasi.

  • Akhirnya, kami memiliki model jaringan netral terlatih untuk catur!

Lihatlah sumber daya berikut untuk perincian:

https://chessprogramming.wikispaces.com/Learning

Halo Dunia
sumber
Hanya smallchess yang memilikinya
quintumnia
Ini adalah contoh bagaimana menyediakan tautan eksternal, tanpa meringkas, dapat merusak di masa depan. Karena tautan yang disediakan sekarang mati
Greg Hilston
4

Saya pikir Anda harus terbiasa dengan pembelajaran penguatan. Dalam bidang pembelajaran mesin ini, agen berinteraksi dengan lingkungannya dan setelah itu agen mendapat hadiah. Sekarang, agen adalah jaringan saraf lingkungan permainan dan agen bisa mendapatkan hadiah +1 jika menang atau -1 jika kalah. Anda dapat menggunakan negara ini, tindakan, hadiah pengalaman tuple untuk melatih agen. Saya dapat merekomendasikan ceramah David Silver di youtube dan buku Sutton juga.

Molnár István
sumber