1

La configuration de classification standard sous la direction: nous avons un tas d'échantillons, chacun avec l'étiquette correcte de N étiquettes. Nous construisons un NN avec N sorties, transformons les probabilités avec softmax, et la perte est la moyenne cross-entropy entre chaque sortie NN et l'étiquette réelle correspondante, représentée comme un vecteur 1-hot avec 1 dans le véritable label et 0 ailleurs. Nous optimisons ensuite cette perte en suivant son gradient. L'erreur de classification est utilisée uniquement pour mesurer la qualité de notre modèle. Cependant, je sais que lorsque nous faisons policy gradient nous pouvons utiliser le likelihood ratio trick, et nous n'avons plus besoin d'utiliser cross-entropy! notre perte simplement tf.gather la sortie NN correspondant à l'étiquette correcte. Par exemple. this solution of OpenAI gym CartPole.Lorsque nous faisons une classification supervisée avec NN, pourquoi nous entraînons-nous pour une entropie croisée et non pour une erreur de classification?

Pourquoi ne pouvons-nous utiliser la même astuce lorsque vous faites l'apprentissage supervisé? Je pensais que la raison pour laquelle nous avons utilisé cross-entropy est parce qu'il est différentiable, mais apparemment tf.gather est differentiable as well. Je veux dire - SI nous nous mesurons sur l'erreur de classification, et nous pouvons optimiser pour l'erreur de classification car elle est différentiable, n'est-il pas Mieux d'optimiser également pour l'erreur de classification au lieu de ce proxy cross-entropy bizarre?

Répondre

1

Le gradient de politique est en utilisant l'entropie croisée (ou la divergence KL, comme l'a souligné Ishant). Pour l'apprentissage supervisé tf.gather est vraiment juste une astuce de mise en œuvre, rien d'autre. Pour RL en revanche c'est un must car vous ne savez pas "ce qui se passerait" si vous voulez exécuter une autre action. Par conséquent, vous obtenez un estimateur de variance élevé de vos gradients, que vous voudriez éviter à tout prix, si possible.

Pour en revenir à l'apprentissage supervisé si

CE(p||q) = - SUM_i q_i log p_i 

laisse supposer que Q_i est l'un encodée à chaud, avec 1 à la position kème, puis

CE(p||q) = - q_k log p_k = - log p_k 

Donc, si vous voulez, vous pouvez mettre en œuvre ceci comme tf.gather, il n'importe pas simplement. L'entropie croisée est simplement plus générique car elle gère des cibles plus complexes. En particulier, dans TF vous avez sparse entropie croisée qui fait exactement ce que vous décrivez - exploite un encodage à chaud, c'est tout. Mathématiquement il n'y a pas de différence, il y a une petite différence de calcul, et il y a des fonctions qui font exactement ce que vous voulez.

+0

merci! n'a pas eu le rôle d'éviter une variance élevée - comme vous l'avez montré, nous utilisons en fait l'entropie croisée avec un vecteur à un seul degré dans les paramètres supervisés et rl. Comment voulez-vous éviter cela? – ihadanny

+1

la chose est dans le cas de RL il n'y a pas un-chaud, il y a une distribution "vraie" là, et pourtant nous regardons seulement l'action prise - c'est une estimation de monte carlo, qui a la variance élevée. Si nous connaissions toutes les probabilités, nous pourrions éviter cela en calculant l'entropie croisée correcte, mais ce n'est pas possible (à moins de pouvoir réinitialiser l'environnement à l'état avant que l'action soit prise, comme dans les méthodes de recherche arborescente). – lejlot

0

minimisation de la perte d'entropie croisée minimise la divergence KL entre la distribution prédite et la distribution de la cible. Ce qui est en effet la même chose que maximiser la probabilité de la distribution prédite.

+0

OK, mais la répartition cible n'est pas vraiment une distribution! il est très dégénéré et a juste '1' dans une seule cellule - pourquoi ne pouvons-nous pas simplement utiliser' gather' de la cellule correspondante dans notre distribution prédite? – ihadanny

+0

Pas vraiment, , après avoir appliqué' argmax' sur la distribution final_output. Pour tous les réseaux de classification et de régression, modélisez toujours la distribution cible. –