55

Conosco le basi delle reti neurali feedforward e come addestrarle utilizzando l'algoritmo di backpropagation, ma sto cercando un algoritmo di quello che posso usare per addestrare un ANN online con l'apprendimento di rinforzo.Formazione di una rete neurale con apprendimento di rinforzo

Ad esempio, il problema cart pole swing up è uno che vorrei risolvere con una ANN. In quel caso, non so cosa si debba fare per controllare il pendolo, so solo quanto sono vicino alla posizione ideale. Ho bisogno di avere l'ANN imparata sulla base della ricompensa e della punizione. Pertanto, l'apprendimento supervisionato non è un'opzione.

Un'altra situazione è qualcosa come il snake game, in cui il feedback è in ritardo e limitato a obiettivi e anti-obiettivi, piuttosto che ricompensa.

Posso pensare ad alcuni algoritmi per la prima situazione, come l'alpinismo o gli algoritmi genetici, ma immagino che sarebbero entrambi lenti. Potrebbero anche essere applicabili nel secondo scenario, ma incredibilmente lenti e non favorevoli all'apprendimento online.

La mia domanda è semplice: Esiste un semplice algoritmo per addestrare una rete neurale artificiale con l'apprendimento di rinforzo? Principalmente mi interessano le situazioni di ricompensa in tempo reale, ma se è disponibile un algoritmo per situazioni basate sull'obiettivo, ancora meglio.

+1

Buona domanda, e sto pensando quasi esattamente la stessa cosa, dove nel mio caso la rete neurale è ricorrente. Un punto chiave è che stai parlando di 2 diversi algoritmi di apprendimento. Non è possibile applicare 2 diversi algoritmi di apprendimento allo stesso problema senza causare conflitti, a meno che non si disponga di un modo per risolverli. –

risposta

24

Ci sono alcuni articoli di ricerca sul tema:

e un po 'di codice:

  • Code examples per l'apprendimento del rinforzo della rete neurale.

Questi sono solo alcuni dei principali risultati di ricerca di Google sull'argomento. Il primo paio di fogli sembra che siano abbastanza buoni, anche se non li ho letti personalmente. Penso che troverai maggiori informazioni sulle reti neurali con l'apprendimento di rinforzo se esegui una ricerca rapida su Google Scholar.

+0

Il terzo link menzionava qualcosa sul Q-learning. È applicabile al problema del polo cart? –

+0

Sembra applicabile poiché consente di confrontare l'utilità prevista delle azioni disponibili senza avere un modello dell'ambiente. Quindi, se stai facendo un vero problema con l'hardware del carrello, sarà utile. Per maggiori dettagli su Q-learning vedi: http://www.applied-mathematics.net/qlearning/qlearning.html – Kiril

+2

L'apprendimento di Q non comporta un insieme finito di azioni? Il problema del polo cart ideale avrà un insieme continuo di azioni. È un problema? –

7

Se l'output che porta a un premio r è retropropagato nella rete r volte, rinforzerà la rete proporzionalmente alla ricompensa. Questo non è direttamente applicabile ai premi negativi, ma posso pensare a due soluzioni che producono effetti diversi:

1) Se si dispone di una serie di premi in un intervallo rmin-rmax, ridimensionarli a 0-(rmax-rmin) in modo che siano tutto non negativo. Più grande è la ricompensa, più forte è il rinforzo che viene creato.

2) Per una ricompensa negativa -r, retrocopare un'uscita casuale r volte, a condizione che sia diverso da quello che porta alla ricompensa negativa. Ciò non solo rafforzerà gli output desiderati, ma diffonderà o eviterà output negativi.

+0

Interessante. Mi chiedo come questo si applica alla ricompensa ritardata. Sto indovinando che avrebbe funzionato per specificare tutto ciò che non è un obiettivo come una piccola ricompensa negativa. –

+0

@Kendall Frey: per una rete neurale in grado di gestire i ritardi meglio delle normali reti neurali, vedere [Memoria a breve termine] (https://en.wikipedia.org/wiki/Long_short_term_memory) ([Video di YouTube] (http://www.youtube.com/watch?v=izGl1YSH_JA)) o vedi [memoria temporale gerarchica] (https://en.wikipedia.org/wiki/Hierarchical_temporal_memory) ([Video di YouTube] (http://www.youtube .com/watch? v = 48r-IeYOvG4)). – HelloGoodbye

+3

Perché dovresti riscalare i premi in questo modo? Hanno bisogno di riscalare? Facendo ciò, una ricompensa 'rmin' diventa' 0' dopo il riscalamento, quindi quello che doveva essere un premio si rivelerebbe avere alcun effetto di rinforzo sulla rete. – HelloGoodbye

Problemi correlati