Anda pasti ingin jaringan Anda mengetahui informasi penting tentang permainan, seperti kartu apa yang dimiliki agen AI (nilai dan jenisnya), kolam mana, berapa banyak kartu di atas meja dan nilainya, jumlah belokan dan sebagainya. Hal-hal ini yang harus Anda pikirkan sendiri, pertanyaan yang harus Anda tanyakan kepada diri sendiri adalah "Jika saya menambahkan nilai ini untuk memasukkan bagaimana dan mengapa hal itu akan meningkatkan sistem saya". Tetapi hal pertama yang perlu dipahami adalah bahwa sebagian besar NN dirancang untuk memiliki ukuran input yang konstan, dan saya akan menganggap ini adalah masalah dalam permainan ini karena pemain dapat memiliki jumlah kartu yang berbeda di tangan mereka atau di atas meja. Misalnya, Anda ingin memberi tahu NN kartu apa yang dimilikinya, misalkan pemain dapat memiliki maksimal 5 kartu di tangannya dan setiap kartu dapat memiliki 3 nilai (mana, serangan dan kesehatan), sehingga Anda dapat menyandikan ini sebagai 5 * 3 vektor, di mana 3 nilai pertama mewakili kartu nomor satu dan seterusnya. Tetapi bagaimana jika pemain saat ini memiliki 3 kartu, pendekatan sederhana akan menetapkan nol untuk 6 input terakhir, tetapi ini dapat menyebabkan masalah karena beberapa kartu dapat memiliki 0 biaya mana atau 0 serangan. Jadi, Anda perlu mencari cara untuk menyelesaikan masalah ini. Anda dapat mencari model NN yang dapat menangani ukuran input variabel atau mencari cara untuk menyandikan input sebagai vektor ukuran konstan.
Kedua, output juga merupakan vektor ukuran konstan. Dalam hal jenis permainan ini, itu bisa menjadi vektor yang menyandikan tindakan yang bisa dilakukan agen. Jadi katakanlah kita memiliki 3 tindakan: letakkan kartu, lewati giliran dan kemasukan. Jadi itu bisa menjadi salah satu penyandi panas, misalnya jika Anda memiliki keluaran 1 0 0, ini berarti bahwa agen harus meletakkan beberapa kartu. Untuk mengetahui kartu apa yang harus diletakkan, Anda dapat menambahkan elemen lain ke output yang akan menghasilkan angka dalam kisaran 1 hingga 5 (5 adalah jumlah maksimal kartu di tangan).
Tetapi bagian terpenting dari pelatihan jaringan saraf adalah Anda harus menemukan fungsi kerugian yang sesuai untuk tugas Anda. Mungkin fungsi kerugian standar seperti Mean-squared loss atau L2 akan bagus, mungkin Anda harus mengubahnya agar sesuai dengan kebutuhan Anda. Ini adalah bagian di mana Anda perlu melakukan penelitian. Saya belum pernah bekerja dengan NEAT sebelumnya, tetapi seperti yang saya pahami dengan benar menggunakan beberapa algoritma genetika untuk membuat dan melatih NN, dan GA menggunakan beberapa fungsi kebugaran untuk memilih seorang individu. Jadi pada dasarnya Anda perlu tahu metrik apa yang akan Anda gunakan untuk mengevaluasi seberapa baik kinerja model Anda dan berdasarkan metrik ini Anda akan mengubah parameter model.
PS. Dimungkinkan untuk menyelesaikan masalah ini dengan jaringan saraf, namun, jaringan saraf bukan sihir dan bukan solusi universal untuk semua masalah. Jika tujuan Anda adalah untuk memecahkan masalah tertentu ini, saya juga akan merekomendasikan Anda untuk menggali teori permainan dan penerapannya dalam AI. Saya akan mengatakan, bahwa menyelesaikan masalah ini akan membutuhkan pengetahuan yang kompleks dari berbagai bidang AI.
Namun, jika tujuan Anda adalah belajar tentang jaringan saraf saya akan merekomendasikan mengambil tugas yang jauh lebih sederhana. Misalnya, Anda dapat menerapkan NN yang akan berfungsi pada dataset benchmark, misalnya, NN yang akan mengklasifikasikan digit dari dataset MNIST. Alasan untuk ini adalah bahwa banyak artikel ditulis tentang bagaimana melakukan klasifikasi pada dataset ini dan Anda akan belajar banyak dan Anda akan belajar lebih cepat dari menerapkan hal-hal sederhana.