Domanda

Supponiamo che siamo in una stanza dove il nostro agente può spostarsi lungo l'asse XX e YY. Ad ogni punto può muoversi su, giù, destra e sinistra. Così il nostro spazio di stato può essere definito da (x, y) e le nostre azioni in ogni punto sono date da (su, giù, destra, sinistra). Supponiamo che, ovunque il nostro agente fa un'azione che farà lo ha colpito un muro gli daremo un premio negativo di -1, e rimetterlo nello stato che era prima. Se trova nel centro della stanza un fantoccio vince +10 ricompensa.

Quando aggiorniamo il nostro QValue per una data coppia / azione dello Stato, stiamo vedendo le azioni che possono essere eseguite nel nuovo stato e calcolando qual è la QValue massimo che è possibile arrivare, in modo che possiamo aggiornare il nostro Q (s , a) il valore per il nostro attuale stato / azione. Ciò significa che se abbiamo uno stato obiettivo nel punto (10, 10), tutti gli stati intorno ad esso avrà un QValue un po 'più piccolo e più piccolo mentre ottengono più lontano. Ora, in relazione alle pareti, mi sembra lo stesso non è vero.

Quando l'agente colpisce un muro (supponiamo che sia nella posizione (0, 0) e ha fatto l'UP azione), riceverà per questo Stato / azione una ricompensa di -1, ottenendo così un QValue di -1.

Ora, se poi io sono in stato di (0, 1), e assumendo tutte le altre azioni di stato (0,0 0) sono pari a zero, nel calcolo del QValue di (0, 1) per la sinistra l'azione, si calcola nel modo seguente:

Q([0,1], LEFT) = 0 + gamma * (max { 0, 0, 0, -1 } ) = 0 + 0 = 0

Questa è, dopo aver colpito il muro non si propaga a stati vicini, al contrario di ciò che accade quando si hanno gli stati ricompensa positivi.

Nella mia ottica questo sembra strano. In un primo momento ho pensato di trovare statali coppie / azione che danno ricompense negativo sarebbe learningwise buono come ricompense positive, ma l'esempio che ho mostrato sopra, questa affermazione non sembra tenere vero. Sembra che ci sia una distorsione nella algoritmo per prendere molto più in considerazione ricompense positive rispetto a quelle negative.

E 'questo il comportamento previsto di QLearning? Non dovrebbero cattivi ricompense essere altrettanto importanti quanto quelli positivi? Cosa sono i "work-around" per questo?

È stato utile?

Soluzione

È possibile evitare riconoscimenti negativi aumentando la ricompensa di default da 0 a 1, la ricompensa obiettivo 10-11, e la sanzione da -1 a 0.

Ci sono tonnellate di pubblicazioni scientifiche su Q-learning, quindi sono sicuro che ci sono altre formulazioni che consentano di feedback negativo.

EDIT: Mi correggo, questo non cambia il comportamento, come ho detto in precedenza. Il mio processo di pensiero è stato che la formulazione con feedback negativo potrebbe essere sostituito da uno senza.

La ragione per la sua osservazione è che non avete l'incertezza sul risultato delle vostre azioni o stato in cui si trova, quindi, il vostro agente può sempre scegliere l'azione si crede ha ricompensa ottimale (in tal modo, il massimo valore Q su tutto azioni future). Questo è il motivo per cui le vostre risposte negative non propaga:. L'agente sarà semplicemente evitare che l'azione in futuro

Se, tuttavia, il modello sarebbe includono l'incertezza sul risultato sopra le vostre azioni (ad esempio, c'è sempre una probabilità del 10% di muoversi in una direzione casuale), la regola di apprendimento dovrebbe integrare su tutte le possibili ricompense future (in pratica la sostituzione del max da una somma pesata). In tal caso un feedback negativo può essere propagato troppo (questo ho pensato che dovrebbe essere possibile: p). Esempi di tali modelli sono POMDPs .

Altri suggerimenti

retroazione negativa si propaga solo quando è l'unica soluzione possibile da un particolare movimento.

Se questo è intenzionale o non intenzionale Non lo so.

La tua domanda si risponde nel libro di "apprendimento per rinforzo: An Introduction", che ha una sezione di "massimizzazione Bias e Double Learning"

.

Il "Q-Learing" algoritmo ha un inconveniente, in cui viene utilizzato implicitamente un massimo in corrispondenza di valori stimati come una stima del valore massimo, che può portare a un significativo errore positivo.

Il "Double Q-Learning" algoritmo in grado di evitare distorsioni di massimizzazione e risolvere la tua domanda, in cui è necessario imparare due stime indipendenti, chiamato Q_1 (a) e Q_2 (a). Qui incollo lo pseudocodice per voi: doppio Q-Learning

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top