Le coût de l'entropie croisée est-il logique dans le contexte de la régression?

13

Le coût de l'entropie croisée est-il logique dans le contexte de la régression (par opposition à la classification)? Si oui, pourriez-vous donner un exemple de jouet via TensorFlow? Sinon, pourquoi pas?

Je lisais sur l'entropie croisée dans Neural Networks and Deep Learning par Michael Nielsen et cela semble être quelque chose qui pourrait naturellement être utilisé pour la régression ainsi que pour la classification, mais je ne comprends pas comment vous l'appliqueriez efficacement dans TensorFlow depuis le les fonctions de perte prennent des logits (que je ne comprends pas vraiment non plus) et elles sont répertoriées dans la classification ici

JacKeown
la source
2
J'ai trouvé ici sur quora qui déclare différent de ce qui est accepté comme réponse à cette question
Siddharth Shakya
Si vous lisez l'intégralité de la réponse, vous voyez qu'il donne une "version continue" de l'entropie croisée qui est plutôt cool, mais il s'avère que ce n'est que l'erreur quadratique moyenne (MSE).
JacKeown

Réponses:

11

Non, cela n'a aucun sens d'utiliser les fonctions TensorFlow comme tf.nn.sigmoid_cross_entropy_with_logitspour une tâche de régression. Dans TensorFlow, «entropie croisée» est un raccourci (ou jargon) pour «entropie croisée catégorique». L'entropie croisée catégorielle est une opération sur les probabilités. Un problème de régression tente de prédire des résultats continus plutôt que des classifications.

Le jargon "entropie croisée" est un peu trompeur, car il existe un certain nombre de fonctions de perte d'entropie croisée; cependant, c'est une convention dans l'apprentissage automatique de désigner cette perte particulière comme une perte «d'entropie croisée».

Si nous regardons au-delà des fonctions TensorFlow auxquelles vous vous connectez, alors bien sûr, il existe un certain nombre de fonctions d'entropie croisée possibles. En effet, le concept général d'entropie croisée concerne la comparaison de deux distributions de probabilité. Selon les deux distributions de probabilités que vous souhaitez comparer, vous pouvez arriver à une perte différente de la perte entropique catégorielle typique. Par exemple, l'entropie croisée d'une cible gaussienne avec une covariance diagonale moyenne mais fixe variable se réduit à une erreur quadratique moyenne. Le concept général de l'entropie croisée est décrit plus en détail dans ces questions:

Sycorax dit de réintégrer Monica
la source
5
Cependant, il convient de mentionner que l'utilisation de l'interentropie binaire comme fonction de perte dans une tâche de régression où les valeurs de sortie sont des valeurs réelles dans la plage [0,1] est une chose assez raisonnable et valide à faire.
aujourd'hui
@aujourd'hui, je pense que c'est une pratique que certaines personnes adoptent pour des raisons pratiques (par exemple, le réseau de neurones converge plus rapidement), mais je ne suis pas sûr que ce modèle ait une relation avec la comparaison de deux distributions de probabilité. Peut-être pourriez-vous montrer qu'il existe une relation entre une cible à valeur continue dans et une entropie croisée binaire? [0,1]
Sycorax dit Réintégrer Monica le
5

La réponse donnée par @Sycorax est correcte. Cependant, il convient de mentionner que l'utilisation de l'entropie croisée (binaire) dans une tâche de régression où les valeurs de sortie sont dans la plage [0,1] est une chose valide et raisonnable à faire. En fait, il est utilisé dans les encodeurs automatiques d'images (par exemple ici et dans ce document ). Vous pourriez être intéressé de voir une preuve mathématique simple de la raison pour laquelle cela fonctionne dans ce cas dans cette réponse .

aujourd'hui
la source
Les fonctions de perte peuvent être considérées comme des probabilités / postérieures ou une transformation monotone d'entre elles. Ainsi, bien qu'il soit vrai que dans certains modèles de régression, une perte similaire à l'entropie croisée pourrait avoir un sens, il pourrait ne pas être une approche raisonnable pour traiter une régression où les sorties sont dans une plage . [0,1]
InfProbSciX
@InfProbSciX "ce n'est peut-être pas une approche raisonnable pour gérer une régression où les sorties sont dans une plage de [0,1]." Alors "raisonnable" dans quel sens? Ou comment définissez-vous le caractère raisonnable de la fonction de perte pour une tâche spécifique? Je soupçonne que cette déclaration pourrait être vraie pour toute fonction de perte. Existe-t-il une fonction de perte qu'il serait raisonnable d'utiliser pour toutes sortes de tâches de régression, bien sûr après avoir défini le «raisonnable»?
aujourd'hui
Oui=Fθ(X)+ϵϵOuiBernoullje(pθ)l'entropie croisée binaire. Lorsque la loi est une régression linéaire avec un a priori normal sur les coefs, la perte correspond à la pénalité L2 et ainsi de suite. Lorsque cela est possible, je construis une loi et puis déduire une perte.
InfProbSciX
@InfProbSciX Merci pour votre réponse. Ainsi, comme vous l'avez mentionné, selon la tâche de régression (et les hypothèses sur la distribution des données, les erreurs, etc.), une fonction de perte peut ne pas être raisonnable à utiliser. Et, comme je l'ai mentionné, cela est vrai pour toutes les fonctions de perte, y compris la crossentropie. Bien sûr, je vois votre point de vue que le fait que les valeurs de sortie soient dans la plage [0,1] ne garantit pas que laentrentropie est la fonction de perte de choix optimale et je n'essayais pas de transmettre le contraire dans ma réponse.
aujourd'hui
5

Les cadres d'apprentissage profond mélangent souvent les modèles et les pertes et font référence à l'entropie croisée d'un modèle multinomial avec une non-linéarité softmax par cross_entropy, ce qui est trompeur. En général, vous pouvez définir l' entropie croisée pour les modèles arbitraires .

Fθ(X)y-JournalFθ(X),
y

Lucas
la source
2

Malheureusement, la réponse actuellement acceptée par @Sycorax, bien que détaillée, est incorrecte.

En fait, un excellent exemple de régression par entropie croisée catégorique - Wavenet - a été implémenté dans TensorFlow .

Le principe est que vous discrétisez votre espace de sortie et que votre modèle ne prédit que le bac respectif; voir la section 2.2 de l' article pour un exemple dans le domaine de la modélisation du son. Ainsi, alors que techniquement le modèle effectue une classification, la tâche finale résolue est la régression.

Un inconvénient évident est que vous perdez la résolution de sortie. Cependant, cela peut ne pas être un problème (au moins je pense que l'assistant artificiel de Google a parlé d'une voix très humaine ) ou vous pouvez jouer avec du post-traitement, par exemple en interpolant entre le bac le plus probable et ses deux voisins.

D'un autre côté, cette approche rend le modèle beaucoup plus puissant par rapport à la sortie habituelle à unité linéaire simple, c'est-à-dire permettant d'exprimer des prédictions multimodales ou d'évaluer sa confiance. Notez cependant que ce dernier peut être naturellement obtenu par d'autres moyens, par exemple en ayant une sortie de variance explicite (log) comme dans les encodeurs automatiques variationnels.

Quoi qu'il en soit, cette approche ne s'adapte pas bien à une sortie plus dimensionnelle, car la taille de la couche de sortie augmente alors de façon exponentielle, ce qui en fait à la fois un problème de calcul et de modélisation.

dedObed
la source
1
Je vois ce que vous dites, mais je ne considérerais pas personnellement discrétiser votre espace de sortie comme effectuant une "régression" autant qu'il s'agit d'approcher un problème de régression en utilisant la classification ... mais je suppose que c'est juste une question de terminologie / convention.
JacKeown
1
D'accord. L'espace flottant 32 bits est de toute façon discret :-)
dedObed
-1

J'ai revu cette question car je suis maintenant en désaccord avec la réponse que j'ai précédemment acceptée. La perte d'entropie croisée PEUT être utilisée dans la régression (bien qu'elle ne soit pas courante.)

Cela revient au fait que l'entropie croisée est un concept qui n'a de sens que lorsque l'on compare deux distributions de probabilité. Vous pourriez considérer un réseau de neurones qui produit une moyenne et un écart-type pour une distribution normale comme sa prédiction. Il serait alors puni plus sévèrement pour avoir plus confiance en de mauvaises prédictions. Alors oui, cela a du sens, mais seulement si vous produisez une distribution dans un certain sens. Le lien de @SiddharthShakya dans un commentaire à ma question d'origine montre cela.

JacKeown
la source
1
Cette réponse semble répondre à la question d'une manière différente de celle posée. Les fonctions que vous avez liées à la question concernent un type spécifique de perte d'entropie croisée, et votre question semble demander si ces fonctions peuvent être utilisées en régression, et ma réponse est écrite comme si vous demandiez comment utiliser ces fonctions vous liez à. La réponse ici semble répondre à la question "L'entropie croisée peut-elle être généralisée au-delà de la classification?" La modification du Q indiquerait clairement que l'accent est mis sur la façon dont les concepts mathématiques sont définis, plutôt que sur la façon d'utiliser les fonctions Tensorflow.
Sycorax dit Réintégrer Monica le
Je comprends votre objection, mais je prévois de laisser la question telle quelle car elle représente ma requête d'origine qui, je pense, pourrait aider les gens avec la même question que moi. Quoi qu'il en soit, le message entier devrait contenir suffisamment d'informations dans l'ensemble.
JacKeown