2016-06-22 1 views
11

Quelle est la différence entre deep l'apprentissage par renforcement et l'apprentissage par renforcement? Je sais essentiellement ce qu'est l'apprentissage par renforcement, mais que signifie le terme concret profond dans ce contexte?Apprentissage par renforcement profond par rapport à l'apprentissage par renforcement

Merci beaucoup pour votre aide.

+1

Je ne suis pas sûr que cette question est un bon ajustement pour Stack Overflow, il semble plutôt large. – JAL

+1

@JAL Je voulais juste savoir quelle est la signification de ** deep ** dans ce contexte. Je pense que vous avez raison, mais je n'ai trouvé aucune réponse complète ailleurs. La réponse donnée m'a vraiment beaucoup aidé. –

Répondre

26

Apprentissage par renforcement

Dans l'apprentissage de renforcement, un agent essaie de trouver la meilleure action donnée un État.

E.g. dans le jeu vidéo Pac-Man, l'état serait le monde du jeu 2D dans lequel vous êtes, les objets environnants (pac-dots, ennemis, murs, etc.), et l'action se déplacerait dans cet espace 2D (monter/descendre/gauche droite). Donc, compte tenu de l'état du monde du jeu, l'agent doit choisir la meilleure action pour maximiser les récompenses. Par l'essai et l'erreur d'apprentissage par renforcement, il accumule des «connaissances» à travers ces paires (state, action), comme dans, il peut dire s'il y aurait une récompense positive ou négative étant donné une paire (state, action). Appelons cette valeur Q(state, action).

Une façon rudimentaire pour stocker cette connaissance serait une table comme ci-dessous

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

L'espace (state, action) peut être très grand

Cependant, quand le jeu se complique, l'espace de connaissances peut devenir énorme et il ne devient plus possible de stocker tous les (state, action) paires. Si vous y pensez en termes bruts, même un état légèrement différent est toujours un état distinct (par exemple, une position différente de l'ennemi passant par le même couloir). Vous pouvez utiliser quelque chose qui peut généraliser la connaissance au lieu de stocker et en recherchant chaque petit état distinct.

Donc, ce que vous pouvez faire est de créer un réseau de neurones, par exemple. prédit la récompense pour une entrée (state, action) (ou choisir la meilleure action donnée un état, mais vous aimez regarder)

Approximation la valeur Q avec un réseau de neurones

Donc ce que vous avez effectivement un NN "cerveau intelligent", qui prédit la valeur Q, basée sur l'entrée (state, action). C'est beaucoup plus traitable que de stocker toutes les valeurs possibles comme nous l'avons fait dans le tableau ci-dessus.

Q = neural_network.predict(state, action) 

profonde Neural Networks

Pour pouvoir faire pour les jeux compliqués, le NN peut avoir besoin d'être « profond », ce qui signifie quelques couches cachées peut ne pas suffire pour capturer tous les détails complexes de cette connaissance, d'où l'utilisation de NN profonds (beaucoup de couches cachées).

Les couches supplémentaires cachées permettent au réseau de proposer en interne des fonctionnalités qui peuvent l'aider à apprendre et à généraliser des problèmes complexes qui auraient pu être impossibles sur un réseau peu profond.

clôture mots

En bref, le réseau de neurones profond permet l'apprentissage par renforcement à appliquer à des problèmes plus importants. Vous pouvez utiliser n'importe quel approximateur de fonction au lieu d'un NN pour approximer Q, et si vous choisissez NNs, il ne doit pas être absolument un absolument. C'est juste que les chercheurs ont eu beaucoup de succès en les utilisant récemment.

+0

Merci beaucoup pour votre réponse complète. Donc, comme je comprends le ** profond ** se réfère à l'approximation de Q à travers un réseau de neurones et la possibilité associée d'utiliser l'apprentissage par renforcement à plus grande échelle. –

+2

"Deep" serait de [Deep Learning] (https://en.wikipedia.org/wiki/Deep_learning) (l'accent sur les couches de traitement multiples). Pour généraliser, nous pourrions faire valoir que le label Deep RL pourrait être appliqué à n'importe quel système RL qui a un composant d'apprentissage en profondeur. Par exemple. [cet article] (https://www.aaai.org/ocs/index.php/WS/AAAIW11/paper/viewFile/3898/4303) utilise [_Deep Belief Networks_] (https://en.wikipedia.org/ wiki/Deep_belief_network) comme l'approximateur. Avant [vous demandez] (http://stats.stackexchange.com/questions/51273/what-is-the-difference-between-a-neural-network-and-a-deep-belief-network) :) – bakkal

+1

Autre communications: [Réseaux neuronaux codeurs auto profonds dans l'apprentissage par renforcement] (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.172.1873&rep=rep1&type=pdf), et peut-être le plus connu [ Jouer à Atari avec Deep Reinforcement Learning] (https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf), utilise un réseau de neurones profond (et convolutionnel). – bakkal