Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Verlustfunktion | Neural Network von Grund Auf
Einführung in Neuronale Netze

bookVerlustfunktion

Beim Training eines neuronalen Netzes ist es notwendig, die Genauigkeit der Modellvorhersagen im Vergleich zu den tatsächlichen Ergebnissen zu messen. Dies geschieht mithilfe einer Verlustfunktion, die die Differenz zwischen den Vorhersagen des Modells und den tatsächlichen Zielwerten berechnet. Das Ziel des Trainings besteht darin, diesen Verlust zu minimieren, sodass die Vorhersagen möglichst nahe an den tatsächlichen Ausgaben liegen.

Für Aufgaben der binären Klassifikation ist eine der am häufigsten verwendeten Verlustfunktionen der Kreuzentropie-Verlust, der sich besonders für Modelle eignet, die Wahrscheinlichkeiten ausgeben.

Herleitung des Kreuzentropie-Verlusts

Um den Kreuzentropie-Verlust zu verstehen, wird das Maximum-Likelihood-Prinzip betrachtet. Bei einem binären Klassifikationsproblem besteht das Ziel darin, ein Modell zu trainieren, das die Wahrscheinlichkeit y^\hat{y} schätzt, dass ein gegebener Input zur Klasse 1 gehört. Das tatsächliche Label yy kann einen von zwei Werten annehmen: 0 oder 1.

Ein effektives Modell sollte für korrekte Vorhersagen hohe Wahrscheinlichkeiten zuweisen. Diese Idee wird durch die Likelihood-Funktion formalisiert, die die Wahrscheinlichkeit beschreibt, die tatsächlichen Daten unter den Vorhersagen des Modells zu beobachten.

Für ein einzelnes Trainingsbeispiel, unter der Annahme der Unabhängigkeit, lässt sich die Likelihood wie folgt ausdrücken:

P(yx)=y^y(1y^)1yP(y|x) = \hat{y}^y(1 - \hat{y})^{1 - y}

Dieser Ausdruck bedeutet Folgendes:

  • Wenn y=1y = 1, dann P(yx)=y^P(y|x) = \hat{y} — das Modell sollte eine hohe Wahrscheinlichkeit für Klasse 1 zuweisen;
  • Wenn y=0y = 0, dann P(yx)=1y^P(y|x) = 1 - \hat{y} — das Modell sollte eine hohe Wahrscheinlichkeit für Klasse 0 zuweisen.

In beiden Fällen besteht das Ziel darin, die Wahrscheinlichkeit zu maximieren, die das Modell der korrekten Klasse zuweist.

Note
Hinweis

P(yx)P(y|x) bezeichnet die Wahrscheinlichkeit, das tatsächliche Klassenlabel yy unter den Eingaben xx zu beobachten.

Zur Vereinfachung der Optimierung wird die Log-Likelihood anstelle der Likelihood-Funktion verwendet, da durch das Logarithmieren Produkte in Summen umgewandelt werden und die Ableitung dadurch einfacher wird:

logP(yx)=ylog(y^)+(1y)log(1y^)\log P(y|x) = y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})

Da das Training darauf abzielt, die Log-Likelihood zu maximieren, wird die Loss-Funktion als deren negativer Wert definiert, sodass der Optimierungsprozess zu einem Minimierungsproblem wird:

L=(ylog(y^)+(1y)log(1y^))L = -\big(y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})\big)

Dies ist die binäre Kreuzentropie-Verlustfunktion, die häufig bei Klassifikationsproblemen verwendet wird.

Angenommen, die Variable output steht für y^\hat{y} eines bestimmten Trainingsbeispiels und die Variable target steht für yy dieses Trainingsbeispiels, kann diese Verlustfunktion wie folgt implementiert werden:

import numpy as np

loss = -(target * np.log(output) + (1 - target) * np.log(1 - output))

Warum diese Formel?

Die Kreuzentropie-Verlustfunktion hat eine klare intuitive Interpretation:

  • Wenn y=1y = 1, vereinfacht sich der Verlust zu log(y^)-\log(\hat{y}), was bedeutet, dass der Verlust gering ist, wenn y^\hat{y} nahe bei 1 liegt, und sehr hoch, wenn y^\hat{y} nahe bei 0 liegt;
  • Wenn y=0y = 0, vereinfacht sich der Verlust zu log(1y^)-\log(1 - \hat{y}), was bedeutet, dass der Verlust gering ist, wenn y^\hat{y} nahe bei 0 liegt, und sehr hoch, wenn er nahe bei 1 liegt.

Da Logarithmen negativ groß werden, wenn ihr Argument gegen Null geht, werden falsche Vorhersagen stark bestraft, was das Modell dazu anregt, selbstbewusste und korrekte Vorhersagen zu treffen.

Werden mehrere Beispiele während der Vorwärtsausbreitung übergeben, wird der Gesamtverlust als durchschnittlicher Verlust über alle Beispiele berechnet:

L=1Ni=1N(yilog(y^i)+(1yi)log(1y^i))L = -\frac1N \sum_{i=1}^N (y_i\log(\hat{y}_i) + (1-y_i)\log(1-\hat{y}_i))

wobei NN die Anzahl der Trainingsbeispiele ist.

question mark

Welche der folgenden Aussagen beschreibt am besten den Zweck der Kreuzentropie-Verlustfunktion bei der binären Klassifikation?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 6

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 4

bookVerlustfunktion

Swipe um das Menü anzuzeigen

Beim Training eines neuronalen Netzes ist es notwendig, die Genauigkeit der Modellvorhersagen im Vergleich zu den tatsächlichen Ergebnissen zu messen. Dies geschieht mithilfe einer Verlustfunktion, die die Differenz zwischen den Vorhersagen des Modells und den tatsächlichen Zielwerten berechnet. Das Ziel des Trainings besteht darin, diesen Verlust zu minimieren, sodass die Vorhersagen möglichst nahe an den tatsächlichen Ausgaben liegen.

Für Aufgaben der binären Klassifikation ist eine der am häufigsten verwendeten Verlustfunktionen der Kreuzentropie-Verlust, der sich besonders für Modelle eignet, die Wahrscheinlichkeiten ausgeben.

Herleitung des Kreuzentropie-Verlusts

Um den Kreuzentropie-Verlust zu verstehen, wird das Maximum-Likelihood-Prinzip betrachtet. Bei einem binären Klassifikationsproblem besteht das Ziel darin, ein Modell zu trainieren, das die Wahrscheinlichkeit y^\hat{y} schätzt, dass ein gegebener Input zur Klasse 1 gehört. Das tatsächliche Label yy kann einen von zwei Werten annehmen: 0 oder 1.

Ein effektives Modell sollte für korrekte Vorhersagen hohe Wahrscheinlichkeiten zuweisen. Diese Idee wird durch die Likelihood-Funktion formalisiert, die die Wahrscheinlichkeit beschreibt, die tatsächlichen Daten unter den Vorhersagen des Modells zu beobachten.

Für ein einzelnes Trainingsbeispiel, unter der Annahme der Unabhängigkeit, lässt sich die Likelihood wie folgt ausdrücken:

P(yx)=y^y(1y^)1yP(y|x) = \hat{y}^y(1 - \hat{y})^{1 - y}

Dieser Ausdruck bedeutet Folgendes:

  • Wenn y=1y = 1, dann P(yx)=y^P(y|x) = \hat{y} — das Modell sollte eine hohe Wahrscheinlichkeit für Klasse 1 zuweisen;
  • Wenn y=0y = 0, dann P(yx)=1y^P(y|x) = 1 - \hat{y} — das Modell sollte eine hohe Wahrscheinlichkeit für Klasse 0 zuweisen.

In beiden Fällen besteht das Ziel darin, die Wahrscheinlichkeit zu maximieren, die das Modell der korrekten Klasse zuweist.

Note
Hinweis

P(yx)P(y|x) bezeichnet die Wahrscheinlichkeit, das tatsächliche Klassenlabel yy unter den Eingaben xx zu beobachten.

Zur Vereinfachung der Optimierung wird die Log-Likelihood anstelle der Likelihood-Funktion verwendet, da durch das Logarithmieren Produkte in Summen umgewandelt werden und die Ableitung dadurch einfacher wird:

logP(yx)=ylog(y^)+(1y)log(1y^)\log P(y|x) = y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})

Da das Training darauf abzielt, die Log-Likelihood zu maximieren, wird die Loss-Funktion als deren negativer Wert definiert, sodass der Optimierungsprozess zu einem Minimierungsproblem wird:

L=(ylog(y^)+(1y)log(1y^))L = -\big(y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})\big)

Dies ist die binäre Kreuzentropie-Verlustfunktion, die häufig bei Klassifikationsproblemen verwendet wird.

Angenommen, die Variable output steht für y^\hat{y} eines bestimmten Trainingsbeispiels und die Variable target steht für yy dieses Trainingsbeispiels, kann diese Verlustfunktion wie folgt implementiert werden:

import numpy as np

loss = -(target * np.log(output) + (1 - target) * np.log(1 - output))

Warum diese Formel?

Die Kreuzentropie-Verlustfunktion hat eine klare intuitive Interpretation:

  • Wenn y=1y = 1, vereinfacht sich der Verlust zu log(y^)-\log(\hat{y}), was bedeutet, dass der Verlust gering ist, wenn y^\hat{y} nahe bei 1 liegt, und sehr hoch, wenn y^\hat{y} nahe bei 0 liegt;
  • Wenn y=0y = 0, vereinfacht sich der Verlust zu log(1y^)-\log(1 - \hat{y}), was bedeutet, dass der Verlust gering ist, wenn y^\hat{y} nahe bei 0 liegt, und sehr hoch, wenn er nahe bei 1 liegt.

Da Logarithmen negativ groß werden, wenn ihr Argument gegen Null geht, werden falsche Vorhersagen stark bestraft, was das Modell dazu anregt, selbstbewusste und korrekte Vorhersagen zu treffen.

Werden mehrere Beispiele während der Vorwärtsausbreitung übergeben, wird der Gesamtverlust als durchschnittlicher Verlust über alle Beispiele berechnet:

L=1Ni=1N(yilog(y^i)+(1yi)log(1y^i))L = -\frac1N \sum_{i=1}^N (y_i\log(\hat{y}_i) + (1-y_i)\log(1-\hat{y}_i))

wobei NN die Anzahl der Trainingsbeispiele ist.

question mark

Welche der folgenden Aussagen beschreibt am besten den Zweck der Kreuzentropie-Verlustfunktion bei der binären Klassifikation?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 6
some-alt