Skip to content
Snippets Groups Projects

Artificial Neural Network Règles de la chaine pour le calcul du gradient :

  1. ∂C/∂A(2) = 2 * (A(2) - Y) / Nout

  2. ∂C/∂Z(2) = ∂C/∂A(2) * ∂A(2)/∂Z(2)
    ∂C/∂Z(2) = ∂C/∂A(2) * σ'(Z(2)) ∂C/∂Z(2) = ∂C/∂A(2) * σ(Z(2)) * (1-σ(Z(2))) ∂C/∂Z(2) = ∂C/∂A(2) * A(2) * (1 - A(2))

  3. ∂C/∂W(2) = ∂C/∂Z(2) * ∂Z(2)/∂W(2) ∂C/∂W(2) = ∂C/∂Z(2) * A(1)

  4. ∂C/∂B(2) = ∂C/∂Z(2) * ∂Z(2)/∂B(2) ∂C/∂B(2) = sum(∂C/∂Z(2), axis=0)

  5. ∂C/∂A(1) = ∂C/∂Z(2) * ∂Z(2)/∂A(1) ∂C/∂A(1) = ∂C/∂Z(2) * W(2)

  6. ∂C/∂Z(1) = ∂C/∂A(1) * σ'(Z(1)) ∂C/∂Z(1) = ∂C/∂A(1) * A(1) * (1 - A(1))

  7. ∂C/∂W(1) = ∂C/∂Z(1) * A(0)

  8. ∂C/∂B(1) = sum(∂C/∂Z(1), axis=0)

En analysant le graphique knn, on peut voir que le maximum de précision est obtenu pour k = 1, ce qui parait logique puisque chaque point prendra alors son propre label. L'autre pic de précision se situe aux alentours de k=7. On privilégiera donc ces valeurs afin d'obtenir la meilleure précision possible. On voit que le temps d'éxécution pour les différentes valeurs de k reste stable autour de 28s.

En analysant le graphique mlp, on observe que la précision augmente de 10% au début de l'apprentissage jusqu'à 18% à la fin. Notre modèle apprend correctement sur les données d'entrainement.