Quelle est la différence entre l'apprentissage par renforcement profond 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?
Dans l'apprentissage par renforcement, un agent essaie de proposer la meilleure action en fonction d'un état.
Par exemple, dans le jeu vidéo Pac-Man, l'espace d'état serait le monde du jeu 2D dans lequel vous vous trouvez, les éléments environnants (pac-dots, ennemis, murs, etc.), et les actions se déplaceraient dans cet espace 2D (en allant haut bas Gauche Droite).
Donc, étant donné l'état du monde du jeu, l'agent doit choisir la meilleure action pour maximiser les récompenses. Grâce aux essais et erreurs de l'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 donnée à une paire (state, action)
. Appelons cette valeur Q(state, action)
.
Un moyen rudimentaire de stocker ces connaissances serait un tableau comme ci-dessous
state | action | Q(state, action)
---------------------------------
... | ... | ...
L'espace (state, action)
Peut être très grand
Cependant, lorsque le jeu se complique, l'espace de connaissances peut devenir énorme et il n'est plus possible de stocker toutes les paires (state, action)
. 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 les connaissances au lieu de stocker et rechercher chaque petit état distinct.
Donc, ce que vous pouvez faire, c'est créer un réseau de neurones, par exemple prédit la récompense pour une entrée (state, action)
(ou choisissez la meilleure action en fonction d'un état, comme vous l'aimez)
Approximation de la valeur Q
avec un réseau neuronal
Donc, ce que vous avez effectivement est un NN qui prédit la valeur Q
, basée sur l'entrée (state, action)
. C'est beaucoup plus maniable que de stocker toutes les valeurs possibles comme nous l'avons fait dans le tableau ci-dessus.
Q = neural_network.predict(state, action)
Réseaux de neurones profonds
Pour être en mesure de le faire pour les jeux complexes, le NN peut avoir besoin d'être "profond", ce qui signifie que quelques couches cachées peuvent 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.
En bref, le réseau neuronal profond permet d'appliquer l'apprentissage par renforcement à 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 NN, il n'a absolument être profond. C'est juste que les chercheurs ont eu beaucoup de succès en les utilisant récemment.
Résumé: Deep RL utilise un réseau de neurones profond pour approximer Q (s, a). Non-Deep RL définit Q ( s, a) en utilisant une fonction tabulaire.
Les algorithmes populaires d'apprentissage par renforcement utilisent les fonctions Q (s, a) ou V(s) pour estimer le rendement (somme des récompenses actualisées). La fonction peut être définie par un mappage tabulaire d'entrées discrètes et Cependant, ceci est limitant pour les états continus ou un nombre infini/grand d'états. Une approche plus généralisée est nécessaire pour un grand nombre d'états.
Une approximation de fonction est utilisée pour un grand espace d'états. Les réseaux de neurones sont une méthode d'approximation de fonction populaire. Vous pouvez créer un réseau neuronal profond en ajoutant de nombreuses couches cachées.
Ainsi, l'apprentissage par renforcement profond utilise l'approximation des fonctions, par opposition aux fonctions tabulaires. Plus précisément, DRL utilise Deep Neural Networks pour approximer Q ou V (ou même A).