Contexte:
J'utilise l'approximation de la valeur Q du réseau neuronal dans ma tâche d'apprentissage par renforcement. L'approche est exactement la même que celle décrite dans cette question , mais la question elle-même est différente.
Dans cette approche, le nombre de sorties est le nombre d'actions que nous pouvons entreprendre. Et en termes simples, l'algorithme est le suivant: effectuez l'action A, explorez la récompense, demandez à NN de prédire les valeurs Q pour toutes les actions possibles, choisissez la valeur Q maximale, calculez Q pour l'action particulière A comme R + max(new_state_Q)
. Ajuster le modèle sur les valeurs Q prédites avec un seul d'entre eux remplacé par R + max(new_state_Q)
.
Question: Quelle est l'efficacité de cette approche si le nombre de sorties est important?
Tentative: Disons qu'il y a 10 actions que nous pouvons entreprendre. À chaque étape, nous demandons au modèle de prédire 10 valeurs, à un âge précoce du modèle, cette prédiction est un gâchis total. Ensuite, nous modifions 1 valeur de la sortie et ajustons le modèle sur ces valeurs.
J'ai deux pensées opposées sur la façon dont cette approche est bonne \ mauvaise et je ne peux pas décider laquelle est la bonne:
- D'un point de vue, nous entraînons chaque neurone 9 fois sur des données aléatoires et une seule fois sur des données proches de la valeur réelle. Si NN a prédit 5 pour l'action A dans l'état S, mais que la valeur réelle est -100, nous ajusterons NN 9 fois avec la valeur 5, puis une fois avec la valeur -100. Ça a l'air fou.
- D'un autre point de vue, l'apprentissage du réseau neuronal est implémenté comme une propagation inverse d'une erreur , donc lorsque le modèle a prédit 5 et que nous l'entraînons sur 5, il n'apprendra rien de nouveau, car l'erreur est 0. Les poids ne sont pas touchés . Et seulement lorsque nous calculerons -100 et l'adapterons au modèle, il effectuera le recalcul du poids.
Quelle option est la bonne? Peut-être y a-t-il autre chose que je ne prends pas en compte?
MISE À JOUR: Par "comment efficace" je veux dire comparer à une approche avec une sortie - récompense prévue. Bien sûr, l'action fera partie de l'apport dans ce cas. Ainsi, l'approche n ° 1 fait des prédictions pour toutes les actions en fonction d'un état, l'approche n ° 2 fait des prédictions pour des actions spécifiques prises dans un état.
Réponses:
Donc, les deux options que nous voulons comparer sont:
Selon ma propre intuition, je doute qu'il existe une différence significative en termes de puissance de représentation ou de vitesse d'apprentissage (en termes d'itérations) entre ces deux options.
Pour la puissance de représentation, la première option donne un réseau légèrement «plus petit» près des entrées et un réseau «plus large» près des sorties. Si pour une raison quelconque, il était avantageux d'avoir plus de poids près des nœuds d'entrée par exemple, cela pourrait à peu près être réalisé en rendant la première couche cachée (près des entrées) un peu plus grande aussi.
En ce qui concerne la vitesse d'apprentissage, la préoccupation que vous semblez avoir est essentiellement de ne disposer généralement d'un signal d'apprentissage précis que pour l'une des sorties, et non pour les autres. Avec la deuxième option, exactement la même chose peut être dite pour les poids connectés aux nœuds d'entrée, donc je doute qu'il y ait une différence significative là-bas.
Comme je l'ai mentionné, tout ce qui précède est basé uniquement sur mon intuition, il serait intéressant de voir des références plus crédibles à ce sujet.
la source