[PYTHON] Denken Sie grob über die Verlustfunktion nach

Ich möchte nicht zu tief nachdenken und ich möchte es immer grob und sinnlich verstehen, wenn möglich. Schauen wir uns also diese Verlustfunktion an, damit wir sie intuitiv verstehen können.

Was ist die Verlustfunktion?

Was ist überhaupt eine Verlustfunktion? Wenn Sie viel recherchieren, erhalten Sie eine schwierige Erklärung, aber es scheint eine Funktion zu sein, die den Unterschied zwischen den beiden Werten kleiner macht. Bei der Identifizierung von Deep Learning usw. besteht die Hauptsache darin, den Gewichtsparameter so anzupassen, dass der Wert zum Zeitpunkt des Lernens nahe an der Antwort liegt, aber der Teil von "nahe an der Antwort sein" ist dafür verantwortlich. Dies ist die "Verlustfunktion". u0o686000002d7d8.jpg Da "Wert = Verlust" ist, ist die "Verlustfunktion", wie dieser Verlust reduziert werden kann.

Art der Verlustfunktion

Was für eine Verlustfunktion gibt es also? Selbst wenn Sie einen kurzen Blick darauf werfen, gibt es einige Typen.

--Hingen Verlustfunktion --ε Toleranzfunktion --Huber Funktion

Deep Learning verwendet "Cross-Entropy Error" und "Square Error" anstelle dieser schwierigen. Was wichtig ist, scheint eine Funktion zu sein, die die nachfolgende Verarbeitung durchführen kann, "Backpropagation of Error". Wenn Sie sich die Seite ansehen, auf der geschrieben steht, dass es schwierig ist zu wissen, was es ist, was damit zu tun ist usw., habe ich mich hier bereits für die beiden oben genannten entschieden. Wenn andere Funktionen während des Studiums herauskommen, werde ich sie heimlich hinzufügen (Explosion)

Kreuzentropiefehler

Egal wie ich es erkläre, es wird eine schwierige Geschichte, also werde ich die Formel veröffentlichen, aber im Allgemeinen ist es so. 010.png

Wenn dies zu einer bestimmten Bedingung wird (Klassifizierungsproblem), wird es einfach. 011.png

Wenn Sie dies in TensorFlow schreiben, sieht es so aus.

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

"Y_" ist die richtige Bezeichnung und "y" ist das Ergebnis des Lernens. Der Prozess ist so, dass dieser Unterschied kleiner wird.

Außerdem ist es schlecht, wenn es nicht einmal zum Vergleich normalisiert wird. Im Fall von "softmax_cross_entropy_with_logits ()" scheint es sich dabei um softmax zu handeln.

Wenn "y" bereits durch Softmax normalisiert ist, scheint es so zu schreiben.

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

"Reduce_sum ()" ist eine Addition und "log ()" ist eine Funktion zum Ermitteln eines natürlichen logarithmischen Werts.

Quadratischer Fehler

Die Methode der kleinsten Quadrate scheint dies zu sein. Das ist einfach: Finden Sie einfach das Quadrat der Differenz und fügen Sie es allen Klassen hinzu. (Bild angepasst, um das Ergebnis zu minimieren) LeastSquareMethod-1.png

Es scheint viele Möglichkeiten zu geben, in TensorFlow zu schreiben, aber das Quadrat der Differenz wird durch "tensorflow.nn.reduce_sum ()" addiert, es gibt eine Funktion namens "tensorflow.nn.l2_loss ()" an erster Stelle und das Quadrat ist auch "tensorflow". Verwenden Sie "square ()" usw.

Zusammenfassung

Ich weiß also nicht, was es ist, aber es scheint, dass die erzielten Ergebnisse gemittelt werden. Im Falle eines Kreuzentropiefehlers scheint es so geschrieben zu sein.

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

Oh, als nächstes muss ich die Fehlerrückübertragung verstehen. .. ..

Recommended Posts

Denken Sie grob über die Verlustfunktion nach
Denken Sie grob über die Gradientenabstiegsmethode nach
Informationen zur Entfaltungsfunktion
Über die Aufzählungsfunktion (Python)
Denken Sie an das Problem der minimalen Änderung
Über die Argumente der Setup-Funktion von PyCaret
Über den Test
Über die Warteschlange
[Python] Denken Sie ernsthaft über die M-1-Gewinnmethode nach.
Denken Sie an selektive Schnittstellen in der Befehlszeile
Überlegen Sie, wie Sie Python auf Ihrem iPad programmieren können
Denken Sie an das Rack und WSGI der nächsten Generation
Die erste GOLD "Funktion"
Python: Über Funktionsargumente
Über den Servicebefehl
Über die Verwirrungsmatrix
Über das Besuchermuster
Denken Sie an die Analyseumgebung (Teil 1: Übersicht) * Stand Januar 2017
Covector, um in Funktion zu denken
In Bezug auf die Aktivierungsfunktion Gelu
Was ist die Aktivierungsfunktion?
Über das Python-Modul venv
Python-Anfänger-Memorandum-Funktion
Informationen zur Funktion fork () und zur Funktion execve ()
Über das Problem der reisenden Verkäufer
Über das Verständnis des 3-Punkt-Lesers [...]
Über die Komponenten von Luigi
Über die Funktionen von Python
Denken Sie an Aussetzer mit MNIST
Überlegen Sie, warum Kubernetes als "Linux in der Cloud-Welt" beschrieben wird.
Ich brachte AI dazu, über die Texte von Genshi Yonezu nachzudenken (Vorverarbeitung)
Ich brachte AI dazu, über die Texte von Genshi Yonezu nachzudenken (Implementierung)