Défi : Entraînement du Perceptron
Avant de procéder à l'entraînement du perceptron, il est important de noter qu'il utilise la fonction de perte d'entropie croisée binaire abordée précédemment. Le dernier concept clé avant d'implémenter la rétropropagation est la formule de la dérivée de cette fonction de perte par rapport aux activations de sortie, an. Voici les formules de la fonction de perte et de sa dérivée :
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−yoù an=y^
Pour vérifier que le perceptron s'entraîne correctement, la méthode fit()
affiche également la perte moyenne à chaque époque. Celle-ci est calculée en faisant la moyenne de la perte sur tous les exemples d'entraînement de cette époque :
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))Enfin, les formules pour le calcul des gradients sont les suivantes :
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlLes données d'entraînement d'exemple (X_train
) ainsi que les étiquettes correspondantes (y_train
) sont stockées sous forme de tableaux NumPy dans le fichier utils.py
. De plus, les instances des fonctions d'activation y sont également définies :
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Calculez les gradients suivants :
dz
,d_weights
,d_biases
etda_prev
dans la méthodebackward()
de la classeLayer
. - Calculez la
output
du modèle dans la méthodefit()
de la classePerceptron
. - Calculez
da
(dan) avant la boucle, qui correspond au gradient de la perte par rapport aux activations de sortie. - Calculez
da
et effectuez la rétropropagation dans la boucle en appelant la méthode appropriée pour chacune des couches.
Si l'entraînement est correctement implémenté, avec un taux d'apprentissage de 0.01
, la perte doit diminuer régulièrement à chaque époque.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 4
Défi : Entraînement du Perceptron
Glissez pour afficher le menu
Avant de procéder à l'entraînement du perceptron, il est important de noter qu'il utilise la fonction de perte d'entropie croisée binaire abordée précédemment. Le dernier concept clé avant d'implémenter la rétropropagation est la formule de la dérivée de cette fonction de perte par rapport aux activations de sortie, an. Voici les formules de la fonction de perte et de sa dérivée :
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−yoù an=y^
Pour vérifier que le perceptron s'entraîne correctement, la méthode fit()
affiche également la perte moyenne à chaque époque. Celle-ci est calculée en faisant la moyenne de la perte sur tous les exemples d'entraînement de cette époque :
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))Enfin, les formules pour le calcul des gradients sont les suivantes :
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlLes données d'entraînement d'exemple (X_train
) ainsi que les étiquettes correspondantes (y_train
) sont stockées sous forme de tableaux NumPy dans le fichier utils.py
. De plus, les instances des fonctions d'activation y sont également définies :
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Calculez les gradients suivants :
dz
,d_weights
,d_biases
etda_prev
dans la méthodebackward()
de la classeLayer
. - Calculez la
output
du modèle dans la méthodefit()
de la classePerceptron
. - Calculez
da
(dan) avant la boucle, qui correspond au gradient de la perte par rapport aux activations de sortie. - Calculez
da
et effectuez la rétropropagation dans la boucle en appelant la méthode appropriée pour chacune des couches.
Si l'entraînement est correctement implémenté, avec un taux d'apprentissage de 0.01
, la perte doit diminuer régulièrement à chaque époque.
Solution
Merci pour vos commentaires !
single