[PYTHON] Pensez grossièrement à la fonction de perte

Je ne veux pas penser trop profondément et je veux toujours le comprendre grossièrement et sensuellement si possible. Alors, jetons un coup d'œil à cette fonction de perte afin que nous puissions la comprendre intuitivement.

Quelle est la fonction de perte?

Qu'est-ce qu'une fonction de perte en premier lieu? Si vous faites beaucoup de recherches, vous obtiendrez une explication difficile, mais il semble que ce soit une fonction qui réduit la différence entre les deux valeurs. Dans l'identification par apprentissage en profondeur, etc., l'essentiel est d'ajuster le paramètre de poids de sorte que la valeur soit proche de la réponse au moment de l'apprentissage, mais la partie «être proche de la réponse» est responsable. , C'est la "fonction de perte". u0o686000002d7d8.jpg Puisque "valeur = perte", comment réduire cette perte est la "fonction de perte".

Type de fonction de perte

Alors, quel genre de fonction de perte y a-t-il? Même si vous jetez un coup d'œil rapide, il en existe plusieurs types.

--Fonction de perte de Hingen --ε fonction de tolérance

Le Deep Learning utilise «l'erreur d'entropie croisée» et «l'erreur carrée» au lieu de ces erreurs difficiles. Ce qui est important semble être une fonction qui peut effectuer le traitement ultérieur, la "rétropropagation de l'erreur". Si vous regardez le site où il est écrit qu'il est difficile de savoir ce que c'est, quoi en faire, etc., j'ai déjà décidé des deux ci-dessus ici. Si d'autres fonctions sortent pendant mes études, je les ajouterai secrètement (explosion)

Erreur d'entropie croisée

Peu importe comment je l'explique, ce sera une histoire difficile, donc je posterai la formule, mais en général c'est comme ça. 010.png

Ainsi, quand cela devient une certaine condition (problème de classification), cela devient facile. 011.png

Si vous écrivez ceci dans TensorFlow, cela ressemblera à ceci.

cross_entropy = tensorflow.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y)

«Y_» est l'étiquette correcte et «y» est le résultat de l'apprentissage. Le processus est tel que cette différence diminue.

De plus, c'est mauvais s'il n'est pas normalisé même pour comparaison, donc dans le cas de "softmax_cross_entropy_with_logits ()", il semble que ce soit softmax dans ce cas.

Si "y" a déjà été normalisé avec softmax, il semble écrire comme ça.

cross_entropy = -tensorflow.reduce_sum(y_ * tf.log(y), reduction_indices=[1])

"Reduce_sum ()" est une addition, et "log ()" est une fonction pour trouver une valeur logarithmique naturelle.

Erreur carrée

La méthode des moindres carrés semble être celle-ci. C'est simple: trouvez simplement le carré de la différence et ajoutez-le à toutes les classes. (Image ajustée pour minimiser le résultat) LeastSquareMethod-1.png

Il semble y avoir plusieurs façons d'écrire dans TensorFlow, mais le carré de la différence est ajouté par "tensorflow.nn.reduce_sum ()", il y a une fonction appelée "tensorflow.nn.l2_loss ()" en premier lieu, et le carré est aussi "tensorflow. Utilisez "square ()", etc.

Résumé

Donc, je ne sais pas ce que c'est, mais il semble que les résultats obtenus soient moyennés. Dans le cas d'une erreur d'entropie croisée, cela semble être écrit comme ceci.

cross_entropy = tensorflow.reduce_mean(tensorflow.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y))

Oh, je dois ensuite comprendre la propagation des erreurs. .. ..

Recommended Posts

Pensez grossièrement à la fonction de perte
Pensez grossièrement à la méthode de descente de gradient
À propos de la fonction Déplier
À propos de la fonction enumerate (python)
Pensez au problème de changement minimum
A propos des arguments de la fonction setup de PyCaret
À propos du test
À propos de la file d'attente
[Python] Pensez sérieusement à la méthode gagnante M-1.
Pensez aux interfaces sélectives sur la ligne de commande
Réfléchissez à la programmation de Python sur votre iPad
Pensez à la nouvelle génération de Rack et WSGI
La première «fonction» GOLD
Python: à propos des arguments de fonction
À propos de la commande de service
À propos de la matrice de confusion
À propos du modèle de visiteur
Pensez à l'environnement d'analyse (Partie 1: Vue d'ensemble) * Depuis janvier 2017
Covector pour penser en fonction
Concernant la fonction d'activation Gelu
Quelle est la fonction d'activation?
À propos du module Python venv
fonction de mémorandum python pour débutant
À propos de la fonction fork () et de la fonction execve ()
À propos du problème du voyageur de commerce
À propos de la compréhension du lecteur en 3 points [...]
À propos des composants de Luigi
À propos des fonctionnalités de Python
Pensez aux abandons avec MNIST
Réfléchissez aux raisons pour lesquelles Kubernetes est décrit comme «Linux dans le monde du cloud»
J'ai fait réfléchir AI aux paroles de Genshi Yonezu (pré-traitement)
J'ai fait réfléchir AI aux paroles de Genshi Yonezu (implémentation)