RL: Tindakan pengkodean dikondisikan pada tindakan sebelumnya

Dec 27 2020

Saya memiliki permainan kartu di mana pada giliran pemain, pemain tersebut secara berurutan menarik dua kartu. Setiap kartu dapat diambil dari tumpukan buangan pemain lain (menghadap ke atas), atau dari tumpukan (menghadap ke bawah).

Berpikir bagaimana menyandikan ini ke dalam ruang aksi, saya dapat dengan naif berasumsi bahwa kedua undian itu independen. Ruang tindakan hanya akan menjadi vektor biner 2 * (1 + (number_of_players - 1)), yang dapat saya posting-filter untuk membatasi tumpukan gambar kosong (dan tidak dapat menggambar dari tumpukan sendiri).

Namun, saat bermain sendiri, saya perhatikan bahwa terkadang menguntungkan untuk menarik kartu awal dari tumpukan, lalu memilih tumpukan kartu untuk kartu kedua berdasarkan nilai kartu pertama yang ditarik. Tapi bagaimana ini akan dikodekan menjadi ruang aksi? Apakah lebih baik untuk berpikir bahwa ini adalah dua tindakan yang terpisah, meskipun mereka adalah bagian dari "giliran" yang sama?

Jawaban

2 NeilSlater Dec 27 2020 at 22:31

Sulit untuk mengatakan dengan pasti tanpa mengetahui detail lengkap dan hasil eksperimen.

Namun, jika permainan memungkinkan untuk membagi keputusan, kemungkinan akan lebih baik bagi agen untuk memanfaatkan pengetahuan ekstra tentang nilai kartu yang sebelumnya tersembunyi yang baru saja diambil dari tumpukan undian.

Secara umum, jika setiap keputusan pemain diambil secara berurutan, sehingga terjadi perubahan status, maka itu adalah tindakan terpisah pada langkah waktu terpisah sesuai dengan model teoritis MDP yang digunakan dalam pembelajaran penguatan (RL). Anda mungkin ingin mendeskripsikan / memberi tahu langkah-langkah waktu secara berbeda agar sesuai dengan proses permainan game. Namun, untuk tujuan RL, setiap titik keputusan harus berada pada langkah waktu baru, dan harus menghasilkan keadaan baru, perkiraan nilai baru, dll.

Demikian pula, apakah pilihan saat ini adalah kartu pertama pemain atau kartu kedua yang akan ditarik harus menjadi bagian dari negara bagian. Rincian keadaan ini mungkin sudah tercakup oleh jumlah kartu di tangan pemain, jika secara logis jumlah kartu selalu sama di setiap tahap. Namun, jika ukuran tangan dapat bervariasi karena alasan lain, perlu menambahkan tanda eksplisit untuk "pilihan gambar pertama" atau serupa sehingga agen dapat menggunakan informasi tersebut.

Anda memiliki kebebasan untuk mengenkode ruang aksi. Jika menggambar kartu adalah satu-satunya tindakan yang mungkin dalam permainan ini di semua tahapan, maka vektor keluaran biner dari dimensi 1 + (number_of_players - 1) akan cocok. Pengkodean lain juga dapat bekerja dengan baik, itu tergantung apakah ada struktur logis untuk pilihan atau beberapa data turunan yang menyandikan informasi permainan yang berguna.

Mungkin berguna untuk mengatur pilihan tindakan sehingga indeks untuk menggambar dari tumpukan buangan setiap pemain dianggap relatif terhadap giliran pemain saat ini. Artinya, alih-alih tindakan diatur$[draw, discard P1, discard P3, discard P4, discard P5]$ untuk P2 akan diatur $[draw, discard P3, discard P4, discard P5, discard P1]$ dan untuk P3 akan berbeda: $[draw, discard P4, discard P5, discard P1, discard P2]$. . . yang secara inheren memungkinkan sifat siklus belokan. Representasi negara perlu merotasi pengetahuan yang sama tentang setiap pemain untuk mencocokkan ini. Anda mungkin tidak perlu melakukan ini, tetapi saya akan merekomendasikannya untuk game di mana ada banyak logika umum mengenai pilihan tindakan relatif terhadap posisi belok yang dapat Anda manfaatkan. Kebalikannya akan berlaku (dan Anda akan menggunakan posisi pemain absolut) jika ada perbedaan penting sepanjang permainan antara menjadi P1, P2, P3, dll.