9

Non riuscivo a capire come aggiornare i valori di Q per il gioco tic tac toe. Ho letto tutto su questo, ma non riuscivo a immaginare come farlo. Ho letto che il valore Q è aggiornato alla fine del gioco, ma non ho capito che se c'è un valore Q per ogni azione?Q Algoritmo di apprendimento per Tic Tac Toe

risposta

6

Hai un valore Q per ciascuna coppia azione-stato. Si aggiorna un valore Q dopo ogni azione eseguita. Più precisamente, se l'applicazione di azioni a1 da stato s1 si ottiene in stato di s2 e vi porta una ricompensa r, quindi si aggiorna Q(s1, a1) come segue:

Q(s1, a1) = Q(s1, a1) + learning_rate * (r + discount_factor * max Q(s2, _) - Q(s1, a1)) 

In molti giochi, come il tic-tac-toe si don' ottenere premi fino alla fine del gioco, ecco perché è necessario eseguire l'algoritmo attraverso diversi episodi. Ecco come le informazioni sull'utilità degli stati finali vengono propagate ad altri stati.

+0

Grazie per la risposta . Ma non riesco a capire Q che impara per il tic tac toe. Hai detto che non ricevi premi fino alla fine del gioco. Capito. Non riesco a capire come la macchina decida la prima azione? Ad esempio, inserisco "X" e la macchina inserirà "O".Come la macchina decide dove mettere questa "O", perché capisco che c'è un solo valore di Q per il gioco completo. – bzkrtmurat

+1

Tic-tac-toe è un gioco per due giocatori. Quando impari usando Q-Learning hai bisogno di un avversario contro cui giocare durante l'apprendimento. Ciò significa che devi implementare un altro algoritmo (ad es. Minimax), giocare da solo o utilizzare un altro agente di apprendimento di rinforzo (potrebbe essere lo stesso algoritmo di Q-learning). –

+2

Per decidere quale azione intraprendere in un particolare stato, è necessario un criterio. Un'opzione comune quando si implementa Q-Learning è l'uso di epsilon-greedy (con un epsilon in decomposizione), che considera il trade-off tra esplorazione e sfruttamento. –

2

Il problema dell'algoritmo Q Learning standard è che impiega troppo tempo per propagare i valori dalla finale alla prima mossa perché al termine di essa si conosce solo l'esito del gioco.

Pertanto, l'algoritmo di Q Learning deve essere modificato. Il seguente articolo fornisce alcuni dettagli sulle possibili modifiche:

  1. una ricompensa non negativo viene dato dopo il gioco finisce (ad eccezione di pareggio), quindi gli aggiornamenti Q non viene eseguita ad ogni passo azione (che cambia niente), ma solo dopo la fine del gioco
  2. gli aggiornamenti Q viene eseguita propagando il nuovo valore dall'ultimo passaggio indietro nella prima mossa
  3. un'altra formula aggiornamento è incorporato che considera anche il punto avversaria vista a causa della natura del gioco a due giocatori

Abstract:

Questo articolo riporta il nostro esperimento su come applicare un algoritmo di apprendimento Q per imparare a giocare a Tic-tac-toe. L'algoritmo originale viene modificato da aggiornando il valore Q solo quando il gioco termina, propagando il processo di aggiornamento dallo spostamento finale indietro alla prima mossa e incorporando una nuova regola di aggiornamento. Valutiamo le prestazioni dell'agente utilizzando rappresentazioni di schede complete e parziali. In questa valutazione , l'agente gioca il gioco tic-tac-toe contro i giocatori umani . I risultati della valutazione mostrano che le prestazioni dell'algoritmo di apprendimento Q modificato con la rappresentazione della scheda parziale sono paragonabili a a quelle dei giocatori umani.

Learning to Play Tic-Tac-Toe (2009) by Dwi H. Widyantoro & Yus G. Vembrina

(Purtroppo è dietro un paywall O si ha accesso all'archivio IEEE o si può chiedere agli autori di fornire una copia su ResearchGATE:. https://www.researchgate.net/publication/251899151_Learning_to_play_Tic-tac-toe)