Académique Documents
Professionnel Documents
Culture Documents
Thomas LECADRE
Reconnaissance de chiffres
On va tout d’abord créer la fonction sigmoïde qui nous servira pour plus tard. La sigmoïde est définie
par :
Grâce au langage Python, cette fonction peut prendre en entrée un scalaire, un vecteur ou bien une
matrice où la sigmoïde s’appliquera dans chaque coefficient.
Nous allons maintenant créer une fonction qui va permettre d’initialiser les .
Il existe plusieurs façons d’initialiser mais nous allons utiliser l’initialisation Glorot uniforme des
La fonction prend comme paramètres L_in et L_out qui correspond à la dimension de la couche
courante et de la couche suivante. On va alors créer c puis une matrice de taille (L_out, L_in+1). Nous
avons un +1 pour prendre en compte le biais. On va ensuite appliquer à chaque coefficient un
nombre aléatoire entre -c et c. On a alors :
On va maintenant établir une solution NN pour la reconnaissance des chiffres. Pour cela, on
va réaliser trois tâches :
1.Forward propagation
L’activation de la couche cachée et de la couche de sortie se fait par la sigmoïde. Ici, nous avons
m=5000 échantillons. X et y sont les données d’entrée et les étiquettes associés respectivement.
Cependant y est la liste des étiquettes mais nous avons besoin de la matrice y pour nos calculs. Cette
matrice y est défini de la sortie où si y[i]=k, alors la ième ligne de y est remplie de 0 sauf d’un 1 à la
k-ème position.
Exemple : y :[2,3,1] ; y =
L’opérateur * correspond au produit de Hadamard. De plus, J est un scalaire donc pour chaque
groupe de matrice, on va devoir faire la somme des coefficients.
3.Backward propagation
On obtient alors :
Dans le code il y a une fonction qui teste la précision du modèle. On a comme résultat :