Dans la fonction TensorFlow suivante, nous devons alimenter l'activation des neurones artificiels dans la couche finale. Ça je comprends. Mais je ne comprends pas pourquoi ça s'appelle des logits? N'est-ce pas une fonction mathématique?
loss_function = tf.nn.softmax_cross_entropy_with_logits(
logits = last_layer,
labels = target_output
)
Réponses:
Logits est un terme surchargé qui peut signifier beaucoup de choses différentes:
En mathématiques , Logit est une fonction qui mappe les probabilités (
[0, 1]
) à R ((-inf, inf)
)Une probabilité de 0,5 correspond à un logit de 0. Un logit négatif correspond à des probabilités inférieures à 0,5, positives à> 0,5.
En ML , il peut être
Les logits font aussi parfois référence à l'inverse élément par élément de la fonction sigmoïde.
la source
softmax(logit) = exp(logit)/Z(logit)
alorslogit = h_NN(x)
? alors logit est le même que "score"?[1, 0.5, 0.5]
grâce à la normalisation devenir[0.5, 0.25, 0.25]
puis soft max devenir[0,]
si on est chaud[1, 0, 0]
? ou tout simplement[1, 0, 0]
parce que la sortie doit être un vecteur?Il suffit d'ajouter cette clarification pour que quiconque fait défiler autant puisse au moins bien faire les choses, car il y a tellement de mauvaises réponses votées.
De Diansheng réponse et de JakeJ réponse il faut.
Une nouvelle réponse publiée par Shital Shah est une réponse encore meilleure et plus complète.
Oui, en
logit
tant que fonction mathématique en statistique, mais cellelogit
utilisée dans le contexte des réseaux de neurones est différente. La statistiquelogit
n'a même aucun sens ici.Je n'ai pu trouver de définition formelle nulle part, mais cela
logit
signifie essentiellement:Aussi, à partir d'un tutoriel sur le site Web officiel de tensorflow:
Si vous êtes toujours confus, la situation est la suivante:
où,
predicted_class_index_by_raw
etpredicted_class_index_by_prob
sera égal.Un autre nom pour
raw_predictions
dans le code ci-dessus estlogit
.Quant au pourquoilogit
... je n'en ai aucune idée. Désolé.[Modifier: Voir cette réponse pour les motivations historiques derrière le terme.]
Trivia
Cependant, si vous le souhaitez, vous pouvez appliquer des statistiques
logit
àprobabilities
celles issues de lasoftmax
fonction.Si la probabilité d'une certaine classe est
p
,alors les log-cotes de cette classe sont
L = logit(p)
.En outre, la probabilité de cette classe peut être récupérée en
p = sigmoid(L)
utilisant lasigmoid
fonction.Pas très utile pour calculer les cotes de log cependant.
la source
Logit est une fonction qui mappe les probabilités
[0, 1]
à[-inf, +inf]
.Softmax est une fonction qui
[-inf, +inf]
à[0, 1]
même que sigmoïde. Mais Softmax normalise également la somme des valeurs (vecteur de sortie) à 1.Tensorflow "avec logit" : Cela signifie que vous appliquez une fonction softmax aux numéros logit pour le normaliser. Input_vector / logit n'est pas normalisé et peut évoluer à partir de [-inf, inf].
Cette normalisation est utilisée pour les problèmes de classification multiclasse. Et pour les problèmes de classification multi-étiquettes, la normalisation sigmoïde est utilisée
tf.nn.sigmoid_cross_entropy_with_logits
la source
Logit
fonction (statistiques) et lalogits
couche (tensorflow)Résumé
Dans le contexte de l'apprentissage en profondeur, la couche logits désigne la couche qui alimente softmax (ou toute autre normalisation de ce type). La sortie du softmax correspond aux probabilités de la tâche de classification et son entrée est la couche logits. La couche logits produit généralement des valeurs de -infinity à + infinity et la couche softmax la transforme en valeurs de 0 à 1.
Contexte historique
D'où vient ce terme? Dans les années 30 et 40, plusieurs personnes tentaient d'adapter la régression linéaire au problème de la prédiction des probabilités. Cependant, la régression linéaire produit une sortie de -infinity à + infini tandis que pour les probabilités, notre sortie souhaitée est de 0 à 1. Une façon de le faire est de mapper d'une manière ou d'une autre les probabilités de 0 à 1 à -infinity à + infini, puis d'utiliser la régression linéaire comme d'habitude. Une telle cartographie est la distribution normale cumulative qui a été utilisée par Chester Ittner Bliss en 1934 et il a appelé ce modèle "probit", abréviation de "unité de probabilité". Cependant, cette fonction est coûteuse en termes de calcul tout en manquant de certaines des propriétés souhaitables pour une classification multiclasse. En 1944, Joseph Berkson a utilisé la fonction
log(p/(1-p))
pour faire cette cartographie et l'a appelé logit, abréviation de "unité logistique". Le terme de régression logistique en dérive également.La confusion
Malheureusement, le terme logits est utilisé abusivement dans le deep learning. Du point de vue mathématique pur, logit est une fonction qui effectue le mappage ci-dessus. Dans l'apprentissage en profondeur, les gens ont commencé à appeler la couche "couche logits" qui alimente la fonction logit. Ensuite, les gens ont commencé à appeler les valeurs de sortie de cette couche "logit" créant la confusion avec logit la fonction .
Code TensorFlow
Malheureusement, le code TensorFlow ajoute encore à la confusion par des noms comme
tf.nn.softmax_cross_entropy_with_logits
. Que signifient les logits ici? Cela signifie simplement que l'entrée de la fonction est censée être la sortie de la dernière couche de neurones, comme décrit ci-dessus. Le_with_logits
suffixe est redondant, déroutant et inutile . Les fonctions doivent être nommées sans tenir compte de ces contextes très spécifiques car ce sont simplement des opérations mathématiques qui peuvent être effectuées sur des valeurs dérivées de nombreux autres domaines. En fait, TensorFlow a une autre fonction similairesparse_softmax_cross_entropy
où ils ont heureusement oublié d'ajouter un_with_logits
suffixe créant une incohérence et ajoutant à la confusion. PyTorch, d'autre part, nomme simplement sa fonction sans ce genre de suffixes.Référence
Les diapositives de la conférence Logit / Probit sont l'une des meilleures ressources pour comprendre Logit. J'ai également mis à jour un article Wikipédia avec certaines des informations ci-dessus.
la source
Compréhension personnelle, dans le domaine TensorFlow, les logits sont les valeurs à utiliser comme entrée pour softmax. Je suis arrivé à cette compréhension sur la base de ce tutoriel tensorflow.
https://www.tensorflow.org/tutorials/layers
Bien qu'il soit vrai que le logit soit une fonction en mathématiques (en particulier en statistiques), je ne pense pas que ce soit le même 'logit' que vous regardez. Dans le livre Deep Learning de Ian Goodfellow, il a mentionné:
Dans TensorFlow, il est souvent considéré comme le nom de la dernière couche. Au chapitre 10 du livre Hands-on Machine Learning avec Scikit-learn et TensorFLow par Aurélien Géron, je suis tombé sur ce paragraphe, qui énonçait
logits
clairement la couche.C'est-à-dire, bien que nous utilisions softmax comme fonction d'activation dans la dernière couche de notre conception, pour faciliter le calcul, nous les supprimons
logits
séparément. En effet, il est plus efficace de calculersoftmax
et decross-entropy
perdre ensemble. N'oubliez pas qu'ilcross-entropy
s'agit d'une fonction de coût, non utilisée dans la propagation directe.la source
Voici une réponse concise pour les futurs lecteurs.
Tensorflow
« slogit
est définie comme la sortie d'un neurone sans appliquer la fonction d'activation:x: entrée, w: poids, b: biais. C'est tout.
Ce qui suit n'est pas pertinent pour cette question.
Pour les conférences historiques, lisez les autres réponses. Chapeau à
Tensorflow
la convention de dénomination "créative" déroutante. EnPyTorch
, il n'y en a qu'unCrossEntropyLoss
et il accepte les sorties non activées. Les convolutions, les multiplications matricielles et les activations sont des opérations de même niveau. La conception est beaucoup plus modulaire et moins déroutante. C'est l'une des raisons pour lesquelles je suis passé deTensorflow
àPyTorch
.la source
( FOMO sapiens).
Si vous cochez la fonction Logit mathématique, il convertit l'espace réel de l'
[0,1]
intervalle à l'infini[-inf, inf]
.Sigmoid et softmax feront exactement le contraire. Ils convertiront l'
[-inf, inf]
espace[0, 1]
réel en espace réel.C'est pourquoi, dans l'apprentissage automatique, nous pouvons utiliser logit avant les fonctions sigmoïde et softmax (car elles correspondent).
Et c'est pourquoi «nous pouvons appeler» tout ce qui, dans l'apprentissage automatique, va devant la fonction sigmoïde ou softmax du logit .
Voici la vidéo de J. Hinton utilisant ce terme.
PS. Je ne recommande pas de regarder la vidéo juste pour vérifier le terme.
la source
Ils sont fondamentalement le modèle le plus complet que vous puissiez obtenir du réseau, avant qu'il ne soit réduit pour ne s'appliquer qu'au nombre de classes qui nous intéressent. Découvrez comment certains chercheurs les utilisent pour former un réseau neuronal peu profond basé sur ce qu'est un profond le réseau a appris: https://arxiv.org/pdf/1312.6184.pdf
C'est un peu comme comment, en apprenant un sujet en détail, vous apprendrez un grand nombre de points mineurs, mais lorsque vous enseignerez à un étudiant, vous essaierez de le compresser dans le cas le plus simple. Si l'étudiant essayait maintenant d'enseigner, ce serait assez difficile, mais il serait capable de le décrire juste assez bien pour utiliser la langue.
la source
Voir ici: https://en.wikipedia.org/wiki/Logit
la source
logit
a une signification différente. Voyez ceci , ceci , ceci .logits
Vecteur de prédictions brutes (non normalisées) générées par un modèle de classification, qui est ensuite généralement transmis à une fonction de normalisation. Si le modèle résout un problème de classification multi-classes, les logits deviennent généralement une entrée pour la fonction softmax. La fonction softmax génère alors un vecteur de probabilités (normalisées) avec une valeur pour chaque classe possible.
De plus, les logits font parfois référence à l'inverse élément par élément de la fonction sigmoïde. Pour plus d'informations, consultez tf.nn.sigmoid_cross_entropy_with_logits.
documentation officielle tensorflow
la source
Les logits sont souvent les valeurs de la fonction Z de la couche de sortie dans Tensorflow.
la source