Sì. È fattibile.
Panoramica della domanda
L'obiettivo di progettazione del sistema sembra essere quello di ottenere un vantaggio strategico vincente impiegando una o più reti artificiali in combinazione con un motore di gioco di carte.
La domanda mostra una consapevolezza generale delle basi del gioco, come indicato nella teoria dei giochi di Morgenstern e von Neuman .
- In punti specifici durante il gioco può essere richiesto a un giocatore di eseguire una mossa.
- C'è una serie di opzioni di mossa finite secondo le regole del gioco.
- Alcune strategie per la selezione di una mossa producono record vincenti più elevati su più giochi rispetto ad altre strategie.
- Una rete artificiale può essere impiegata per produrre strategie di gioco vittoriose più frequentemente della selezione di mosse casuali.
Altre caratteristiche del gioco possono essere o meno ovvie.
- Ad ogni punto di movimento c'è uno stato di gioco, necessario per qualsiasi componente coinvolto nel miglioramento del successo del gioco.
- Oltre a non sapere quando l'avversario blufferà, nei giochi di carte, l'ordine segreto delle carte mescolate può introdurre l'equivalente di un giocatore virtuale le cui mosse di casualità approssimativa.
- In tre o più partite del giocatore, la segnalazione di partner o potenziali partner può aggiungere un elemento di complessità alla determinazione della strategia di gioco vincente in qualsiasi momento. Sulla base delle modifiche, non sembra che questo gioco abbia tali complessità.
- Anche fattori psicologici come l'intimidazione possono svolgere un ruolo nel vincere il gioco. Non è noto se il motore presenti un volto all'avversario, quindi questa risposta lo salterà.
Suggerimenti per l'approccio comune
Esiste un approccio comune alla mappatura di input e output, ma c'è troppo da spiegare in una risposta di Stack Exchange. Questi sono solo alcuni principi di base.
- Tutta la modellistica che può essere fatta esplicitamente dovrebbe essere fatta. Ad esempio, sebbene una rete artificiale possa teoricamente imparare a contare le carte (tenendo traccia delle possibili posizioni di ciascuna delle carte), un semplice algoritmo di conteggio può farlo, quindi utilizzare l'algoritmo noto e inserire tali risultati nella rete artificiale come ingresso.
- Utilizzare come input qualsiasi informazione correlata all'output ottimale, ma non utilizzare come input qualsiasi informazione che non sia possibile correlare con l'output ottimale.
- Codifica i dati per ridurre la ridondanza nel vettore di input, sia durante l'allenamento che durante il gioco automatizzato. Astrazione e generalizzazione sono i due modi comuni per raggiungere questo obiettivo. L'estrazione di feature può essere utilizzata come strumento per astrarre o generalizzare. Questo può essere fatto sia su ingressi che su uscite. Un esempio è che, in questo gioco, J> 10 allo stesso modo di A> K, K> Q, Q> J e 10> 9, quindi codificare le carte come numeri interi da 2 a 14 o da 0 a 12 di sottraendo uno. Codifica i semi da 0 a 3 invece di quattro stringhe di testo.
Il lavoro di riconoscimento delle immagini è solo in remoto, troppo diverso dal gioco di carte per usarlo direttamente, a meno che non sia necessario riconoscere le carte da un'immagine visiva, nel qual caso potrebbe essere necessario LSTM per vedere cosa hanno scelto gli altri giocatori per le mosse. L'apprendimento di strategie vincenti trarrebbe molto probabilmente beneficio dai progetti MLP o RNN o da uno dei loro progetti di reti artificiali derivate.
Cosa farebbe una rete artificiale ed esempi di formazione
Il ruolo principale delle reti artificiali di questi tipi è quello di imparare una funzione dai dati di esempio. Se hai le sequenze di mosse di giochi reali, questa è una grande risorsa da avere per il tuo progetto. Un gran numero di essi sarà molto utile per la formazione.
Vale la pena considerare come organizzare gli esempi e se e come etichettarli, tuttavia senza le regole del gioco di carte è difficile dare indicazioni affidabili. Se ci sono partner, se si basa sul punteggio, se il numero di mosse per una vittoria e una dozzina di altri fattori forniscono i parametri dello scenario necessari per prendere quelle decisioni.
Studia
Il consiglio principale che posso dare è quello di leggere, non tanto articoli generali sul web, ma leggere alcuni libri e alcuni dei documenti che puoi capire sugli argomenti di cui sopra. Quindi trova del codice che puoi scaricare e prova dopo aver compreso abbastanza bene la terminologia per sapere cosa scaricare.
Ciò significa che le ricerche di libri e le ricerche accademiche hanno molte più probabilità di orientarti nella giusta direzione rispetto alle ricerche web generali. Ci sono migliaia di poser nello spazio web generale, che spiegano i principi dell'IA con un gran numero di errori. Gli editori di libri e articoli accademici sono più esigenti di due diligence nei loro autori.