Udfordring: Træning af Perceptronen
Inden du fortsætter med at træne perceptronen, skal du være opmærksom på, at den anvender binary cross-entropy loss-funktionen, som tidligere er blevet diskuteret. Det sidste centrale begreb, inden implementering af backpropagation, er formlen for den afledte af denne loss-funktion med hensyn til output-aktiveringerne, an. Nedenfor ses formlerne for loss-funktionen og dens afledte:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−yhvor an=y^
For at verificere, at perceptronen trænes korrekt, udskriver fit()
-metoden også gennemsnitligt tab ved hver epoke. Dette beregnes ved at tage gennemsnittet af tabet over alle træningseksempler i den pågældende epoke:
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))Endelig er formlerne til beregning af gradienter som følger:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlDe eksemplariske træningsdata (X_train
) sammen med de tilsvarende etiketter (y_train
) er gemt som NumPy-arrays i filen utils.py
. Derudover er instanser af aktiveringsfunktionerne også defineret der:
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Beregn følgende gradienter:
dz
,d_weights
,d_biases
ogda_prev
ibackward()
-metoden iLayer
-klassen. - Beregn modellens
output
ifit()
-metoden iPerceptron
-klassen. - Beregn
da
(dan) før løkken, hvilket er gradienten af tabet med hensyn til output-aktiveringerne. - Beregn
da
og udfør backpropagation i løkken ved at kalde den relevante metode for hvert lag.
Hvis du har implementeret træningen korrekt, bør tabet falde støt for hver epoch, givet en læringsrate på 0.01
.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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
Udfordring: Træning af Perceptronen
Stryg for at vise menuen
Inden du fortsætter med at træne perceptronen, skal du være opmærksom på, at den anvender binary cross-entropy loss-funktionen, som tidligere er blevet diskuteret. Det sidste centrale begreb, inden implementering af backpropagation, er formlen for den afledte af denne loss-funktion med hensyn til output-aktiveringerne, an. Nedenfor ses formlerne for loss-funktionen og dens afledte:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−yhvor an=y^
For at verificere, at perceptronen trænes korrekt, udskriver fit()
-metoden også gennemsnitligt tab ved hver epoke. Dette beregnes ved at tage gennemsnittet af tabet over alle træningseksempler i den pågældende epoke:
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))Endelig er formlerne til beregning af gradienter som følger:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlDe eksemplariske træningsdata (X_train
) sammen med de tilsvarende etiketter (y_train
) er gemt som NumPy-arrays i filen utils.py
. Derudover er instanser af aktiveringsfunktionerne også defineret der:
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Beregn følgende gradienter:
dz
,d_weights
,d_biases
ogda_prev
ibackward()
-metoden iLayer
-klassen. - Beregn modellens
output
ifit()
-metoden iPerceptron
-klassen. - Beregn
da
(dan) før løkken, hvilket er gradienten af tabet med hensyn til output-aktiveringerne. - Beregn
da
og udfør backpropagation i løkken ved at kalde den relevante metode for hvert lag.
Hvis du har implementeret træningen korrekt, bør tabet falde støt for hver epoch, givet en læringsrate på 0.01
.
Løsning
Tak for dine kommentarer!
single