come fare una funzione di ricompensa nell'apprendimento di rinforzo


18

Mentre studiavo l'apprendimento per rinforzo, mi sono imbattuto in molte forme della funzione di ricompensa: , R ( s , a , s ) e persino una funzione di ricompensa che dipende solo dallo stato attuale. Detto questo, mi sono reso conto che non è molto facile "creare" o "definire" una funzione di ricompensa.R(s,a)R(s,a,s)

Ecco le mie domande:

  1. Ci sono regole su come rendere le funzioni di ricompensa?
  2. Esistono altre forme della funzione di ricompensa? Ad esempio, una forma polinomiale forse dipende dallo stato?

Risposte:


25

Le funzioni di ricompensa descrivono come l'agente "dovrebbe" comportarsi. In altre parole, hanno un contenuto "normativo", che stabilisce ciò che si desidera che l'agente realizzi. Ad esempio, alcuni gratificante stato S potrebbe rappresentare il gusto del cibo. O forse, (S,un') potrebbe rappresentare l'atto di assaggiare il cibo. Quindi, nella misura in cui la funzione di ricompensa determina quali sono le motivazioni dell'agente, sì, devi inventarla!

Non ci sono restrizioni assolute, ma se la tua funzione di ricompensa è "meglio comportata", l'agente imparerà meglio. In pratica, questo significa velocità di convergenza e non rimanere bloccati nei minimi locali. Ma ulteriori specifiche dipenderanno fortemente dalle specie di apprendimento di rinforzo che stai utilizzando. Ad esempio, lo spazio stato / azione è continuo o discreto? Il mondo o la selezione dell'azione sono stocastici? La ricompensa viene continuamente raccolta o solo alla fine?

Un modo per visualizzare il problema è che la funzione di ricompensa determina la durezza del problema. Ad esempio, tradizionalmente, potremmo specificare un singolo stato da ricompensare:

R(S1)=1
R(S2 ..n)=0
In questo caso, il problema da risolvere è piuttosto difficile, rispetto a, ad esempio, R(Sio)=1/io2 , dove esiste un gradiente di ricompensa rispetto agli stati. Per problemi difficili, specificare maggiori dettagli, ad es. R(S,un') o R(S,un',S') possono aiutare alcuni algoritmi fornendo ulteriori indizi, ma potenzialmente a scapito di richiedere più esplorazioni. Potrebbe essere necessario includere i costi come termini negativi inR (ad es.Costi energetici), per rendere il problema ben specificato.

Nel caso di uno spazio di stato continuo, se si desidera che un agente apprenda facilmente, la funzione di ricompensa dovrebbe essere continua e differenziabile . Quindi i polinomi possono funzionare bene per molti algoritmi. Inoltre, prova a rimuovere i minimi localizzati. Esistono numerosi esempi di come NON eseguire una funzione di ricompensa, come la funzione di Rastrigin . Detto questo, diversi algoritmi RL (ad es. Macchine Boltzmann ) sono piuttosto robusti per questi.

Se stai usando RL per risolvere un problema del mondo reale, probabilmente scoprirai che sebbene la ricerca della funzione di ricompensa sia la parte più difficile del problema, è intimamente legata a come specifichi lo spazio degli stati . Ad esempio, in un problema che dipende dal tempo, la distanza dall'obiettivo fa spesso una cattiva funzione di ricompensa (ad es. Nel problema della mountain car ). Tali situazioni possono essere risolte utilizzando spazi di stati di dimensione superiore (stati nascosti o tracce di memoria) o mediante RL gerarchico.

Ad un livello astratto, si supponeva che l'apprendimento senza supervisione potesse evitare di stipulare prestazioni "giuste e sbagliate". Ma ora possiamo vedere che RL sposta semplicemente la responsabilità dell'insegnante / critico alla funzione di ricompensa. C'è un modo meno circolare per risolvere il problema: cioè inferire la migliore funzione di ricompensa . Un metodo è chiamato RL inverso o "apprendimento dell'apprendistato" , che genera una funzione di ricompensa che riproduce i comportamenti osservati. Trovare la migliore funzione di ricompensa per riprodurre una serie di osservazioni può essere implementato anche con metodi teorici MLE, bayesiani o informativi, se si cerca su Google "apprendimento inverso di rinforzo".


Ciao, perché il problema della macchina di montagna è un problema dipendente dal tempo?
GoingMyWay,

Suppongo che il problema della mountain car sia "dipendente dal tempo" in quanto il problema richiede che la rete fornisca la sequenza appropriata di comandi o una politica che determini la sequenza. L'idea è che se tratti solo la "posizione" come il tuo stato, allora il problema è difficile da risolvere - devi anche considerare la tua velocità (o energia cinetica ecc.). Questo è davvero tutto ciò che intendevo implicare, per quanto riguarda la scelta saggia del tuo spazio di stato in problemi dipendenti dal tempo.
Sanjay Manohar,

@SanjayManohar Non credo che il problema della mountain car sia "dipendente dal tempo", a meno che, a seconda del tempo, tu stia parlando di introdurre un orizzonte temporale finito. Posizione e velocità sono sufficienti.
user76284

Penso che questa risposta mescoli funzioni di ricompensa e valore. Ad esempio, parla di "trovare" una funzione di ricompensa, che potrebbe essere qualcosa che fai nell'apprendimento del rinforzo inverso , ma non in RL usato per il controllo. Inoltre, parla della necessità che la funzione di ricompensa sia continua e differenziabile e che non solo non è richiesta, di solito non è così. È molto più probabile trovare un semplice +1 per il successo, o fisso -1 per volta passo nella letteratura, piuttosto che trovare un euristico differenziabile accuratamente costruito.
Neil Slater,

Grazie @NeilSlater, hai ragione, avrei dovuto dire "costruire" una funzione di ricompensa piuttosto che trovarla. Per quanto riguarda la "funzione del valore", di solito riservo questo termine per mappature del valore di stato o del valore di azione, ovvero una funzione che l'agente utilizza per stimare la stima della ricompensa futura. Quindi il "valore" è legato al "premio", ma il premio fa parte del problema, non l'algoritmo che risolve il problema. Forse l'enfasi nell'intelligenza artificiale è stata sulla messa in mostra del tuo algoritmo di apprendimento, stipulando ricompense binarie, distali, sparse - ma se hai il controllo sulla funzione di ricompensa, la vita è più facile se è "bella".
Sanjay Manohar,

4

La progettazione di funzioni di ricompensa è davvero un problema difficile. Generalmente, le funzioni di ricompensa sparse sono più facili da definire (ad esempio, ottieni +1 se vinci la partita, altrimenti 0). Tuttavia, anche i premi sparsi rallentano l'apprendimento perché l'agente deve intraprendere molte azioni prima di ottenere una ricompensa. Questo problema è anche noto come problema di cessione del credito .

Invece di avere una rappresentazione in tabella per i premi, puoi usare anche funzioni continue (come un polinomio). Questo è solitamente il caso in cui lo spazio degli stati e lo spazio d'azione sono continui piuttosto che discreti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.