Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Training des Perzeptrons | Neural Network von Grund Auf
Quizzes & Challenges
Quizzes
Challenges
/
Einführung in Neuronale Netze mit Python

bookHerausforderung: Training des Perzeptrons

Vor dem Training des Perzeptrons ist zu beachten, dass die binäre Kreuzentropie-Verlustfunktion verwendet wird, die zuvor behandelt wurde. Das letzte zentrale Konzept vor der Implementierung der Backpropagation ist die Formel für die Ableitung dieser Verlustfunktion bezüglich der Ausgabeaktivierungen, ana^n. Nachfolgend sind die Formeln für die Verlustfunktion und deren Ableitung aufgeführt:

L=(ylog(y^)+(1y)log(1y^))dan=y^yy^(1y^)\begin{aligned} L &= -(y \log(\hat{y}) + (1-y) \log(1 - \hat{y}))\\ da^n &= \frac {\hat{y} - y} {\hat{y}(1 - \hat{y})} \end{aligned}

wobei an=y^a^n = \hat{y}

Um zu überprüfen, ob das Perzeptron korrekt trainiert wird, gibt die Methode fit() auch den durchschnittlichen Verlust in jeder Epoche aus. Dieser wird berechnet, indem der Verlust über alle Trainingsbeispiele in dieser Epoche gemittelt wird:

for epoch in range(epochs):
    loss = 0

    for i in range(training_data.shape[0]):
        loss += -(target * np.log(output) + (1 - target) * np.log(1 - output))

average_loss = loss[0, 0] / training_data.shape[0]
print(f'Loss at epoch {epoch + 1}: {average_loss:.3f}')
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))

Abschließend lauten die Formeln zur Berechnung der Gradienten wie folgt:

dzl=dalfl(zl)dWl=dzl(al1)Tdbl=dzldal1=(Wl)Tdzl\begin{aligned} dz^l &= da^l \odot f'^l(z^l)\\ dW^l &= dz^l \cdot (a^{l-1})^T\\ db^l &= dz^l\\ da^{l-1} &= (W^l)^T \cdot dz^l \end{aligned}

Die Beispiel-Trainingsdaten (X_train) sowie die zugehörigen Labels (y_train) sind als NumPy-Arrays in der Datei utils.py gespeichert. Zusätzlich sind dort auch Instanzen der Aktivierungsfunktionen definiert:

relu = ReLU()
sigmoid = Sigmoid()
Aufgabe

Swipe to start coding

Ihr Ziel ist es, den Trainingsprozess für einen Mehrschicht-Perzeptron abzuschließen, indem Sie Backpropagation implementieren und die Modellparameter aktualisieren.

Befolgen Sie diese Schritte sorgfältig:

  1. Implementieren Sie die Methode backward() in der Klasse Layer:
  • Berechnen Sie die folgenden Gradienten:
  • dz: Ableitung des Verlusts bezüglich der Voraktivierungswerte unter Verwendung der Ableitung der Aktivierungsfunktion;
  • d_weights: Gradient des Verlusts bezüglich der Gewichte, berechnet als das Skalarprodukt von dz und dem transponierten Eingabevektor;
  • d_biases: Gradient des Verlusts bezüglich der Biases, entspricht dz;
  • da_prev: Gradient des Verlusts bezüglich der Aktivierungen der vorherigen Schicht, erhalten durch Multiplikation der transponierten Gewichtsmatrix mit dz.
  • Aktualisieren Sie die Gewichte und Biases unter Verwendung der Lernrate.
  1. Vervollständigen Sie die Methode fit() in der Klasse Perceptron:
  • Berechnen Sie die Modellausgabe durch Aufruf der Methode forward();
    • Berechnen Sie den Verlust mit der Kreuzentropie-Formel;
  • Berechnen Sie danda^n — die Ableitung des Verlusts bezüglich der Ausgangsaktivierungen;
  • Durchlaufen Sie die Schichten rückwärts und führen Sie Backpropagation durch, indem Sie die Methode backward() jeder Schicht aufrufen.
  1. Überprüfen Sie das Trainingsverhalten:
  • Wenn alles korrekt implementiert ist, sollte der Verlust bei Verwendung einer Lernrate von 0.01 kontinuierlich abnehmen.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 10
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

close

Awesome!

Completion rate improved to 4

bookHerausforderung: Training des Perzeptrons

Swipe um das Menü anzuzeigen

Vor dem Training des Perzeptrons ist zu beachten, dass die binäre Kreuzentropie-Verlustfunktion verwendet wird, die zuvor behandelt wurde. Das letzte zentrale Konzept vor der Implementierung der Backpropagation ist die Formel für die Ableitung dieser Verlustfunktion bezüglich der Ausgabeaktivierungen, ana^n. Nachfolgend sind die Formeln für die Verlustfunktion und deren Ableitung aufgeführt:

L=(ylog(y^)+(1y)log(1y^))dan=y^yy^(1y^)\begin{aligned} L &= -(y \log(\hat{y}) + (1-y) \log(1 - \hat{y}))\\ da^n &= \frac {\hat{y} - y} {\hat{y}(1 - \hat{y})} \end{aligned}

wobei an=y^a^n = \hat{y}

Um zu überprüfen, ob das Perzeptron korrekt trainiert wird, gibt die Methode fit() auch den durchschnittlichen Verlust in jeder Epoche aus. Dieser wird berechnet, indem der Verlust über alle Trainingsbeispiele in dieser Epoche gemittelt wird:

for epoch in range(epochs):
    loss = 0

    for i in range(training_data.shape[0]):
        loss += -(target * np.log(output) + (1 - target) * np.log(1 - output))

average_loss = loss[0, 0] / training_data.shape[0]
print(f'Loss at epoch {epoch + 1}: {average_loss:.3f}')
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))

Abschließend lauten die Formeln zur Berechnung der Gradienten wie folgt:

dzl=dalfl(zl)dWl=dzl(al1)Tdbl=dzldal1=(Wl)Tdzl\begin{aligned} dz^l &= da^l \odot f'^l(z^l)\\ dW^l &= dz^l \cdot (a^{l-1})^T\\ db^l &= dz^l\\ da^{l-1} &= (W^l)^T \cdot dz^l \end{aligned}

Die Beispiel-Trainingsdaten (X_train) sowie die zugehörigen Labels (y_train) sind als NumPy-Arrays in der Datei utils.py gespeichert. Zusätzlich sind dort auch Instanzen der Aktivierungsfunktionen definiert:

relu = ReLU()
sigmoid = Sigmoid()
Aufgabe

Swipe to start coding

Ihr Ziel ist es, den Trainingsprozess für einen Mehrschicht-Perzeptron abzuschließen, indem Sie Backpropagation implementieren und die Modellparameter aktualisieren.

Befolgen Sie diese Schritte sorgfältig:

  1. Implementieren Sie die Methode backward() in der Klasse Layer:
  • Berechnen Sie die folgenden Gradienten:
  • dz: Ableitung des Verlusts bezüglich der Voraktivierungswerte unter Verwendung der Ableitung der Aktivierungsfunktion;
  • d_weights: Gradient des Verlusts bezüglich der Gewichte, berechnet als das Skalarprodukt von dz und dem transponierten Eingabevektor;
  • d_biases: Gradient des Verlusts bezüglich der Biases, entspricht dz;
  • da_prev: Gradient des Verlusts bezüglich der Aktivierungen der vorherigen Schicht, erhalten durch Multiplikation der transponierten Gewichtsmatrix mit dz.
  • Aktualisieren Sie die Gewichte und Biases unter Verwendung der Lernrate.
  1. Vervollständigen Sie die Methode fit() in der Klasse Perceptron:
  • Berechnen Sie die Modellausgabe durch Aufruf der Methode forward();
    • Berechnen Sie den Verlust mit der Kreuzentropie-Formel;
  • Berechnen Sie danda^n — die Ableitung des Verlusts bezüglich der Ausgangsaktivierungen;
  • Durchlaufen Sie die Schichten rückwärts und führen Sie Backpropagation durch, indem Sie die Methode backward() jeder Schicht aufrufen.
  1. Überprüfen Sie das Trainingsverhalten:
  • Wenn alles korrekt implementiert ist, sollte der Verlust bei Verwendung einer Lernrate von 0.01 kontinuierlich abnehmen.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 10
single

single

some-alt