2016-06-22 18 views
11

Qual è la differenza tra profondità apprendimento di rinforzo e apprendimento di rinforzo? Fondamentalmente so cos'è l'apprendimento di rinforzo, ma cosa significa in concreto il termine profondo?Apprendimento di rinforzo profondo e apprendimento di rinforzo

Grazie mille per il vostro aiuto.

+1

Non sono sicuro che questa domanda sia adatta per Stack Overflow, sembra piuttosto ampia. – JAL

+1

@ JAL Volevo solo sapere qual è il significato di ** deep ** in questo contesto. Penso che tu abbia ragione, ma non ho trovato nessuna risposta esauriente altrove. La risposta data mi ha davvero aiutato molto. –

risposta

26

Reinforcement Learning

In apprendimento per rinforzo, un agente cerca di venire con la migliore azione determinato uno stato.

E.g. nel videogioco Pac-Man, lo stato sarebbe il mondo di gioco 2D in cui ti trovi, gli oggetti circostanti (pac-punti, nemici, muri, ecc.) e l'azione si muoverà attraverso quello spazio 2D (andando su/giù/sinistra destra).

Così dato, lo stato del mondo di gioco, l'agente deve scegliere l'azione migliore per massimizzare i premi. Attraverso prove ed errori di apprendimento di rinforzo, accumula "conoscenza" attraverso queste coppie (state, action), come in, può dire se ci sarebbe una ricompensa positiva o negativa data una coppia (state, action). Chiamiamo questo valore Q(state, action).

modo rudimentale per memorizzare questa conoscenza sarebbe una tabella come di seguito

state | action | Q(state, action) 
--------------------------------- 
    ... | ... | ... 

Lo spazio (state, action) può essere molto grande

Tuttavia, quando il gioco si complica, lo spazio della conoscenza può diventare enorme e non è più possibile memorizzare tutte le coppie (state, action). Se ci pensate in termini crudi, anche uno stato leggermente diverso è ancora uno stato distinto (ad esempio una diversa posizione del nemico che passa attraverso lo stesso corridoio). È possibile utilizzare qualcosa che può generalizzare la conoscenza invece di memorizzando e guardando su ogni piccolo stato distinto.

Quindi, ciò che si può fare è creare una rete neurale, ad es. predice la ricompensa per un ingresso (state, action) (o scegliere la migliore azione determinato uno stato, come più vi piace di vedere le cose)

ravvicinamento del valore Q con una rete neurale

Quindi quello che hai effettivamente è un NN "cervello intelligente", che prevede il valore Q, in base all'input (state, action). Questo è il modo più trattabile che memorizza ogni possibile valore come abbiamo fatto nella tabella sopra.

Q = neural_network.predict(state, action) 

profonda Reti Neurali

Per essere in grado di farlo per i giochi complicati, NN può avere bisogno di essere "profondo", che significa un paio di livelli nascosti non può bastare di catturare tutti i dettagli intricati di quella conoscenza, quindi l'uso di NN profondi (molti livelli nascosti).

I livelli aggiuntivi nascosti consentono alla rete di individuare internamente funzionalità che possono aiutarlo ad apprendere e a generalizzare problemi complessi che potrebbero essere stati impossibili su una rete poco profonda.

parole di chiusura

In breve, la rete neurale profonda permette apprendimento per rinforzo deve essere applicata a problemi più grandi. È possibile utilizzare qualsiasi approssimatore di funzione invece di un NN per approssimare Q e, se si sceglie NN, non lo è assolutamente. Sono solo i ricercatori che hanno avuto un grande successo usandoli di recente.

+0

Grazie mille per la tua risposta esaustiva. Quindi, come ho capito, il ** profondo ** si riferisce all'approssimazione di Q attraverso una rete neurale e la possibilità associata di utilizzare l'apprendimento di rinforzo su scala più ampia. –

+2

"Deep" proviene da [Deep Learning] (https://en.wikipedia.org/wiki/Deep_learning) (enfasi sui livelli di elaborazione multipli). Per generalizzare, potremmo obiettare che l'etichetta Deep RL potrebbe essere applicata a qualsiasi schema RL che abbia un componente di deep learning. Per esempio. [questo documento] (https://www.aaai.org/ocs/index.php/WS/AAAIW11/paper/viewFile/3898/4303) utilizza [_Deep Belief Networks_] (https://en.wikipedia.org/ wiki/Deep_belief_network) come l'approssimatore. Prima [chiedi] (http://stats.stackexchange.com/questions/51273/what-is-the-difference-between-a-neural-network-and-a-deep-belief-network) :) – bakkal

+1

Altro paper: [Deep Neutral Networks Encoder in Reinforcement Learning] (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.172.1873&rep=rep1&type=pdf), e forse il più conosciuto [ Riproduzione di Atari con Apprendimento approfondito di rinforzo] (https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf), utilizza una rete neurale profonda (e convoluzionale). – bakkal

Problemi correlati