Saya saat ini membaca tentang pembelajaran mesin dan bertanya-tanya bagaimana cara menerapkannya untuk bermain Connect Four .
Upaya saya saat ini adalah classificator multiclass sederhana menggunakan model fungsi sigmoid dan metode satu-vs-semua.
Menurut pendapat saya, fitur input harus status (disk pemain 1, disk pemain 2, kosong) dari 7x6 = 42 bidang kisi.
Outputnya akan menjadi jumlah baris untuk memasukkan disk. Karena itu adalah angka diskrit antara 1 dan 7, saya kira ini dapat diperlakukan sebagai masalah klasifikasi multi-kelas.
Tetapi bagaimana saya menghasilkan contoh pelatihan yang dapat digunakan dalam pembelajaran yang diawasi?
Tujuan utamanya adalah untuk memenangkan permainan, tetapi hasilnya jelas tidak diketahui saat melakukan setiap kecuali giliran terakhir. Jika saya membiarkan dua pemain yang memutuskan secara acak apa yang harus dilakukan bermain melawan ribuan kali, apakah itu cukup untuk hanya mengambil semua belokan yang dibuat oleh pemenang setiap putaran permainan sebagai contoh pelatihan? Atau apakah saya harus melakukan ini dengan cara yang sama sekali berbeda?
Sunting: Seperti yang disarankan dalam komentar saya membaca sedikit tentang pembelajaran penguatan. Dari apa yang saya ketahui pahami, Q-Learning harus melakukan triknya, yaitu saya harus memperkirakan fungsi Q dari kondisi saat ini dan tindakan yang harus diambil untuk menjadi imbalan kumulatif maksimum yang dimulai di negara tersebut. Maka setiap langkah akan memilih tindakan yang menghasilkan nilai maksimum Q. Namun, game ini memiliki terlalu banyak negara untuk melakukan hal ini misalnya sebagai tabel pencarian. Jadi, apa cara efektif untuk memodelkan Fungsi-Q ini?
Jawaban:
Hanya untuk menawarkan alternatif yang lebih sederhana untuk pembelajaran penguatan, Anda dapat menggunakan algoritma minimax dasar untuk mencari gerakan yang baik, dan menggunakan pembelajaran mesin untuk mengevaluasi posisi dewan.
Untuk memperjelas, minimax membangun pohon permainan di mana setiap node diberi label dengan hasil dari daun (1 = pemain A menang, 0 = pemain B menang), dengan asumsi bahwa A memilih gerakan yang memaksimalkan angka ini, dan B memilih gerakan yang menguranginya.
Kecuali gimnya sangat sederhana, Anda tidak akan bisa membuat seluruh gim pohon hingga ke terminal. Alih-alih, Anda harus berhenti di posisi dewan yang belum selesai dan mengevaluasi daun dengan beberapa heuristik (pada dasarnya probabilitas bahwa pemain A akan menang dari posisi yang diberikan). Anda dapat membiarkan algoritma pembelajaran mesin seperti jaringan saraf mencoba mempelajari probabilitas ini dari menghubungkan empat posisi dengan hasil yang diketahui.
Untuk menghasilkan contoh pelatihan, Anda dapat membangun pemain minimax Anda dengan heuristik sederhana, biarkan ia bermain sendiri ribuan kali, gunakan game-game itu untuk melatih jaringan saraf pertama Anda, lalu biarkan itu membayar sendiri seribu game dan seterusnya. Dengan sedikit keberuntungan, sistem Anda akan meningkat dengan setiap generasi.
sumber
Saya menulis blogpost tentang menggunakan minimax untuk bermain connect empat waktu lalu. Anda dapat melihat kode beraksi di sini . Jika Anda perlu melatih model Anda, Anda mungkin dapat membiarkannya memainkan beberapa ribu game melawan implementasi minimax saya.
sumber