Ho implementato Q-Learning come descritto in,
http://web.cs.swarthmore.edu/~meeden/cs81/s12/papers/MarkStevePaper.pdf
Al fine di ca. Q (S, A) Uso una struttura di rete neurale come la seguente,
- Sigmoide di attivazione
- Ingressi, numero di ingressi + 1 per neuroni d'azione (tutti gli ingressi in scala 0-1)
- Uscite, uscita singola. Q-Valore
- N numero di M strati nascosti.
- Metodo di esplorazione casuale 0 <rand () <propExplore
Ad ogni iterazione di apprendimento utilizzando la seguente formula,
Calcolo un valore Q-Target quindi calcolo un errore usando,
error = QTarget - LastQValueReturnedFromNN
e viceversa propagare l'errore attraverso la rete neurale.
Q1, sono sulla buona strada? Ho visto alcuni documenti che implementano un NN con un neurone in uscita per ogni azione.
Q2, La mia funzione di ricompensa restituisce un numero compreso tra -1 e 1. Va bene restituire un numero tra -1 e 1 quando la funzione di attivazione è sigmoide (0 1)
D3: Dalla mia comprensione di questo metodo, dato un numero sufficiente di esempi di formazione, dovrebbe essere messo in quarantena per trovare una politica ottimale? Quando si allena per XOR a volte lo impara dopo 2k iterazioni a volte non impara nemmeno dopo 40k 50k iterazioni.