Come definire gli stati nell'apprendimento per rinforzo?


14

Sto studiando l'apprendimento per rinforzo e le sue varianti. Sto iniziando a capire come funzionano gli algoritmi e come si applicano a un MDP. Quello che non capisco è il processo di definizione degli stati dell'MDP. Nella maggior parte degli esempi e tutorial, rappresentano qualcosa di semplice come un quadrato in una griglia o simile.

Per problemi più complessi, come un robot che impara a camminare, ecc., Come si fa a definire quegli stati? Puoi usare gli algoritmi di apprendimento o classificazione per "apprendere" quegli stati?

Risposte:


14

Il problema della rappresentazione dello stato in Reinforcement Learning (RL) è simile ai problemi di rappresentazione delle funzioni, selezione delle caratteristiche e ingegneria delle funzioni nell'apprendimento supervisionato o non supervisionato.

La letteratura che insegna le basi di RL tende ad usare ambienti molto semplici in modo che tutti gli stati possano essere enumerati. Ciò semplifica le stime di valore in medie mobili di base in una tabella, che sono più facili da comprendere e implementare. Gli algoritmi di apprendimento tabulare hanno anche ragionevoli garanzie teoriche di convergenza, il che significa che se puoi semplificare il tuo problema in modo che abbia, diciamo, meno di qualche milione di stati, allora vale la pena provare.

I problemi di controllo più interessanti non rientrano in quel numero di stati, anche se li discretizzi. Ciò è dovuto alla " maledizione della dimensionalità ". Per questi problemi, in genere rappresenterai il tuo stato come un vettore di caratteristiche diverse, ad esempio per un robot, varie posizioni, angoli, velocità delle parti meccaniche. Come per l'apprendimento supervisionato, potresti volerli trattare per un processo di apprendimento specifico. Ad esempio, in genere si desidera che siano tutti numerici e se si desidera utilizzare una rete neurale, è necessario normalizzarli in un intervallo standard (ad esempio, da -1 a 1).

Oltre alle preoccupazioni sopra menzionate che si applicano per altri machine learning, per RL, devi anche preoccuparti della proprietà Markov : che lo stato fornisca informazioni sufficienti, in modo da poter prevedere con precisione le prossime ricompense attese e i prossimi stati con un'azione, senza la necessità di ulteriori informazioni. Questo non deve essere perfetto, piccole differenze dovute ad esempio a variazioni della densità dell'aria o della temperatura per un robot su ruote non avranno di solito un grande impatto sulla sua navigazione e possono essere ignorate. Qualsiasi fattore essenzialmente casuale può anche essere ignorato mentre si attacca alla teoria RL: potrebbe rendere l'agente meno ottimale nel complesso, ma la teoria continuerà a funzionare.

Se ci sono fattori sconosciuti coerenti che influenzano il risultato e potrebbero logicamente essere dedotti - forse dalla storia dello stato o delle azioni - ma li hai esclusi dalla rappresentazione dello stato, allora potresti avere un problema più serio e l'agente potrebbe non riuscire a imparare .

Vale la pena notare qui la differenza tra osservazione e stato . Un'osservazione è alcuni dati che è possibile raccogliere. Ad esempio, è possibile che sul robot siano presenti sensori che alimentano le posizioni delle articolazioni. Poiché lo stato deve possedere la proprietà Markov, un'unica osservazione non elaborata potrebbe non essere sufficiente per creare uno stato adeguato. In tal caso, puoi applicare le tue conoscenze di dominio al fine di costruire uno stato migliore dai dati disponibili, oppure puoi provare a utilizzare tecniche progettate per MDP parzialmente osservabili (POMDP) , che cercano effettivamente di costruire parti mancanti di dati di stato statisticamente. È possibile utilizzare un RNN o un modello markov nascosto (chiamato anche "stato di convinzione") per questo, e in qualche modo utilizza un "algoritmi di apprendimento o classificazione per "apprendere" quegli stati "come richiesto.

Infine, è necessario considerare il tipo di modello di approssimazione che si desidera utilizzare. Un approccio simile si applica qui come per l'apprendimento supervisionato:

  • Una semplice regressione lineare con funzionalità progettate in base alla conoscenza del dominio può fare molto bene. Potrebbe essere necessario lavorare sodo per provare diverse rappresentazioni di stato in modo che l'approssimazione lineare funzioni. Il vantaggio è che questo approccio più semplice è più robusto rispetto ai problemi di stabilità rispetto all'approssimazione non lineare

  • Un approssimatore di funzioni non lineari più complesso, come una rete neurale multistrato. Puoi alimentare un vettore di stato più "grezzo" e sperare che i livelli nascosti trovino una struttura o una rappresentazione che porti a buone stime. In un certo senso, anche questo è " algoritmi di apprendimento o classificazione per" apprendere "quegli stati ", ma in modo diverso da un RNN o HMM. Questo potrebbe essere un approccio sensato se il tuo stato fosse espresso in modo naturale come un'immagine sullo schermo: capire a mano l'ingegnerizzazione delle funzionalità per i dati delle immagini è molto difficile.

Il lavoro Atari DQN del team DeepMind ha utilizzato una combinazione di ingegneria delle funzionalità e basandosi sulla rete neurale profonda per ottenere i suoi risultati. L'ingegnerizzazione delle caratteristiche includeva il downsampling dell'immagine, riducendola in scala di grigi e - soprattutto per la proprietà Markov - usando quattro frame consecutivi per rappresentare un singolo stato, in modo che le informazioni sulla velocità degli oggetti fossero presenti nella rappresentazione dello stato. Il DNN ha quindi elaborato le immagini in funzionalità di livello superiore che potrebbero essere utilizzate per fare previsioni sui valori di stato.


3

Un approccio iniziale comune alla modellizzazione di problemi complessi era la discretizzazione . A livello base, questo sta dividendo uno spazio complesso e continuo in una griglia. Quindi è possibile utilizzare una qualsiasi delle tecniche classiche RL progettate per spazi discreti, lineari. Tuttavia, come puoi immaginare, se non stai attento, questo può causare molti problemi!

Il libro classico di Sutton & Barto Reinforcement Learning ha alcuni suggerimenti su altri modi per farlo. Uno è la codifica delle piastrelle , trattata nella sezione 9.5.4 della nuova seconda edizione . Nella codifica delle piastrelle, generiamo un gran numero di griglie, ognuna con una diversa spaziatura della griglia. Quindi sovrapponiamo le griglie una sopra l'altra. Questo crea regioni non uniformi e può funzionare bene per una varietà di problemi.

La Sezione 9.5 tratta anche una varietà di altri modi per codificare uno spazio continuo in un MDP discreto, incluse funzioni a base radiale e codifiche grossolane. Controlla!

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.