Herausforderung: Training des Perzeptrons
Bevor mit dem Training des Perzeptrons fortgefahren wird, ist zu beachten, dass die binäre Kreuzentropie-Verlustfunktion verwendet wird, die zuvor besprochen wurde. Das letzte wichtige Konzept vor der Implementierung der Backpropagation ist die Formel für die Ableitung dieser Verlustfunktion bezüglich der Ausgabeaktivierungen, an. Nachfolgend sind die Formeln für die Verlustfunktion und deren Ableitung aufgeführt:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−ywobei an=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=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))Abschließend lauten die Formeln zur Berechnung der Gradienten wie folgt:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlDie Beispieldaten für das Training (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()
Swipe to start coding
- Berechnung der folgenden Gradienten:
dz
,d_weights
,d_biases
undda_prev
in der Methodebackward()
der KlasseLayer
. - Berechnung des
output
des Modells in der Methodefit()
der KlassePerceptron
. - Berechnung von
da
(dan) vor der Schleife, was dem Gradienten des Verlusts bezüglich der Ausgabeaktivierungen entspricht. - Berechnung von
da
und Durchführung der Backpropagation in der Schleife durch Aufruf der entsprechenden Methode für jede Schicht.
Bei korrekter Implementierung des Trainings sollte sich der Verlust bei einer Lernrate von 0.01
mit jeder Epoche stetig verringern.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain how the derivative of the binary cross-entropy loss is used in backpropagation?
What is the purpose of printing the average loss at each epoch?
Can you clarify how the gradients are computed using the provided formulas?
Awesome!
Completion rate improved to 4
Herausforderung: Training des Perzeptrons
Swipe um das Menü anzuzeigen
Bevor mit dem Training des Perzeptrons fortgefahren wird, ist zu beachten, dass die binäre Kreuzentropie-Verlustfunktion verwendet wird, die zuvor besprochen wurde. Das letzte wichtige Konzept vor der Implementierung der Backpropagation ist die Formel für die Ableitung dieser Verlustfunktion bezüglich der Ausgabeaktivierungen, an. Nachfolgend sind die Formeln für die Verlustfunktion und deren Ableitung aufgeführt:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−ywobei an=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=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))Abschließend lauten die Formeln zur Berechnung der Gradienten wie folgt:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlDie Beispieldaten für das Training (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()
Swipe to start coding
- Berechnung der folgenden Gradienten:
dz
,d_weights
,d_biases
undda_prev
in der Methodebackward()
der KlasseLayer
. - Berechnung des
output
des Modells in der Methodefit()
der KlassePerceptron
. - Berechnung von
da
(dan) vor der Schleife, was dem Gradienten des Verlusts bezüglich der Ausgabeaktivierungen entspricht. - Berechnung von
da
und Durchführung der Backpropagation in der Schleife durch Aufruf der entsprechenden Methode für jede Schicht.
Bei korrekter Implementierung des Trainings sollte sich der Verlust bei einer Lernrate von 0.01
mit jeder Epoche stetig verringern.
Lösung
Danke für Ihr Feedback!
single