Topic: Algoritmo TDbackpropr per tic tac toe  (Letto 94 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline tommyb1992

  • python neanderthalensis
  • ****
  • Post: 289
  • Punti reputazione: 0
    • Mostra profilo
Algoritmo TDbackpropr per tic tac toe
« il: Ottobre 19, 2018, 18:08 »
Ho implementato un algoritmo di Q-learning per la risoluzione del semplice gioco TicTacToe, essendo a stati finiti ho utilizzato una tabella per rappresentare tutti gli stati,   e convergeva verso l'equilibrio di nash in circa (se non sbaglio) 10K giochi giocando contro se stesso e imparando a giocare perfetto.

Ora ho provato a usare una rete neurale come approssimatore d'errore seguendo questi articoli (che sono per il gioco del backgammon, ma siccome mi interessa più di tanto il backgammon quanto l'applicazione dell'algoritmo io l'ho reimplementato sul TicTacToe)
 - https://www.cs.cornell.edu/boom/2001sp/Tsinteris/gammon.htm
 - http://modelai.gettysburg.edu/2013/tdgammon/pa4.pdf
 - https://web.stanford.edu/group/pdplab/pdphandbook/handbookch10.html
 - http://www.incompleteideas.net/td-backprop-pseudo-code.text

La seconda formula del secondo link l'ho modificata togliendo la sommatoria.

E non riesco a capire neanche come applicare questa:


Oltre al fatto che non riesco a capire anche come sia possibile che applichi il discount rate visto che somma sempre k.

Ma vabbe... dopo molte prove l'algoritmo non funziona:
 - NeuralNetwork.py
 - TicTacToe.py
 - train.py

Grazie
« Ultima modifica: Ottobre 21, 2018, 15:08 da tommyb1992 »

Offline tommyb1992

  • python neanderthalensis
  • ****
  • Post: 289
  • Punti reputazione: 0
    • Mostra profilo
Re:Algoritmo TDbackpropr per tic tac toe
« Risposta #1 il: Ottobre 19, 2018, 20:28 »
Ok ho notato già dei problemi:


Qui assegna l'eligibility traces utilizzando eligibility traces allo step precedente, mentre io lo moltiplico allo stesso step e...

edit// no ho detto una ca**ata si vede che sono stanco, è per forza l'eligibility traces dello stato precedente, quindi va bene così


Utilizza un solo bias sia per l'hidden che per l'output, perciò se provate il codice dovete fare (e forse non solo) queste due modifiche.

Domani aggiorno il codice.
« Ultima modifica: Ottobre 19, 2018, 20:32 da tommyb1992 »

Offline tommyb1992

  • python neanderthalensis
  • ****
  • Post: 289
  • Punti reputazione: 0
    • Mostra profilo
Re:Algoritmo TDbackpropr per tic tac toe
« Risposta #2 il: Ottobre 21, 2018, 15:09 »
Ho aggiornato il codice, capito la prima formula, che essendo stanco non avevo notato che il più di "t+x" era in minuscolo perciò si riferiva all'incremento dell'indice e non una somma di k.

Sembra funzionare "meglio", ovvero giocandoci contro da una parvenza di learning, ma siamo ben lontani dalla risoluzione del gioco...