Uitdaging: Het Trainen van de Perceptron
Voordat u doorgaat met het trainen van de perceptron, houd er rekening mee dat deze gebruikmaakt van de binaire cross-entropy verliesfunctie die eerder is besproken. Het laatste belangrijke concept voordat backpropagation wordt geïmplementeerd, is de formule voor de afgeleide van deze verliesfunctie ten opzichte van de outputactivaties, an. Hieronder staan de formules voor de verliesfunctie en de afgeleide:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−ywaarbij an=y^
Om te controleren of de perceptron correct traint, drukt de fit()
-methode ook het gemiddelde verlies af bij elk epoch. Dit wordt berekend door het verlies te middelen over alle trainingsvoorbeelden in dat epoch:
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))Tot slot zijn de formules voor het berekenen van de gradiënten als volgt:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlDe voorbeeldtrainingsgegevens (X_train
) samen met de bijbehorende labels (y_train
) zijn opgeslagen als NumPy-arrays in het bestand utils.py
. Daarnaast zijn daar ook instanties van de activatiefuncties gedefinieerd:
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Bereken de volgende gradiënten:
dz
,d_weights
,d_biases
enda_prev
in debackward()
-methode van deLayer
-klasse. - Bereken de
output
van het model in defit()
-methode van dePerceptron
-klasse. - Bereken
da
(dan) vóór de lus; dit is de gradiënt van het verlies ten opzichte van de outputactivaties. - Bereken
da
en voer backpropagation uit in de lus door de juiste methode voor elke laag aan te roepen.
Als je de training correct hebt geïmplementeerd, zou het verlies bij een leersnelheid van 0.01
gestaag moeten afnemen met elke epoch.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 4
Uitdaging: Het Trainen van de Perceptron
Veeg om het menu te tonen
Voordat u doorgaat met het trainen van de perceptron, houd er rekening mee dat deze gebruikmaakt van de binaire cross-entropy verliesfunctie die eerder is besproken. Het laatste belangrijke concept voordat backpropagation wordt geïmplementeerd, is de formule voor de afgeleide van deze verliesfunctie ten opzichte van de outputactivaties, an. Hieronder staan de formules voor de verliesfunctie en de afgeleide:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−ywaarbij an=y^
Om te controleren of de perceptron correct traint, drukt de fit()
-methode ook het gemiddelde verlies af bij elk epoch. Dit wordt berekend door het verlies te middelen over alle trainingsvoorbeelden in dat epoch:
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))Tot slot zijn de formules voor het berekenen van de gradiënten als volgt:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlDe voorbeeldtrainingsgegevens (X_train
) samen met de bijbehorende labels (y_train
) zijn opgeslagen als NumPy-arrays in het bestand utils.py
. Daarnaast zijn daar ook instanties van de activatiefuncties gedefinieerd:
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Bereken de volgende gradiënten:
dz
,d_weights
,d_biases
enda_prev
in debackward()
-methode van deLayer
-klasse. - Bereken de
output
van het model in defit()
-methode van dePerceptron
-klasse. - Bereken
da
(dan) vóór de lus; dit is de gradiënt van het verlies ten opzichte van de outputactivaties. - Bereken
da
en voer backpropagation uit in de lus door de juiste methode voor elke laag aan te roepen.
Als je de training correct hebt geïmplementeerd, zou het verlies bij een leersnelheid van 0.01
gestaag moeten afnemen met elke epoch.
Oplossing
Bedankt voor je feedback!
single