diff --git a/Rapport.ipynb b/Rapport.ipynb index 740622ad018ea33b61a28889c50d278a44b16717..d62b4e7536ff16d24a2b591ee9d1ac6e1fbd9299 100644 --- a/Rapport.ipynb +++ b/Rapport.ipynb @@ -466,19 +466,19 @@ "\n", "## Réseaux de Neurones Artificiels\n", "\n", - "Dans cette partie nous allons développé un réseau de neuronne pour la classification de la base de donnée CIFAR-10. Pour cela nous prenons la fonction d'activation $\\sigma$ et les matrices de poids et de biais respectant les relations suivantes:\n", + "Dans cette partie, nous allons développer un réseau de neurones pour la classification de la base de donnée CIFAR-10. Pour cela nous prenons la fonction d'activation $\\sigma$ et les matrices de poids et de biais respectant les relations suivantes:\n", "\n", "$$Z^{L+1}=W^{L+1}A^{L}+B^{L+1}$$\n", "\n", "$$A^{L+1}=\\sigma(Z^{L+1})$$\n", "\n", - "La fonction de perte donné C est la fonction de coup MSE :\n", + "La fonction de perte, donnée C, est la fonction de coût MSE :\n", "\n", "$$C = \\frac{1}{N_{out}}\\sum_{i=1}^{N_{out}} (\\hat{y_i} - y_i)^2$$\n", "\n", "### 1\n", "\n", - "Pour entraîner notre modèle nous devons effectuer la descente de gradiant, qui consiste à trouver la relation qui permet d'avoir l'impacte des matrices de poid et de biais sur la fonction de perte.\n", + "Pour entraîner notre modèle nous devons effectuer la descente de gradient, qui consiste à trouver la relation qui permet d'avoir l'impact des matrices de poids et de biais sur la fonction de perte.\n", "\n", "$$\\sigma(x)=\\frac{1}{1+e^{-x}} $$\n", "\n", @@ -577,11 +577,11 @@ "source": [ "### 10\n", "\n", - "La fonction de perte MSE n'est pas adapté à la classification, pour la suite nous prendrons donc la fonction loss cross-entropy qui prend la matrice target $Y$ et la matrice de prbabilité de prédiction $\\hat{Y}$ \n", + "La fonction de perte MSE n'est pas adaptée à la classification, pour la suite nous prendrons donc la fonction loss cross-entropy qui prend la matrice target $Y$ et la matrice de probabilité de prédiction $\\hat{Y}$ \n", "\n", "$$loss=\\frac{1}{N_{out}}\\sum_{i=1}^{N_{out}}-(y_i*log(\\hat{y_i}))$$\n", "\n", - "Pour calculer cette fonction de perte il faut avoir $\\hat{y}$ qui est une prédiction sous forme de probabilité, donc que la somme des probabilité soit 1 et que chaque probabilité soit comprise dans $[0,1]$. Pour cela on remplace la signoïde $A^{(2)}=\\sigma(Z^{(2)})$ par la fonction softmax qui donne $\\hat{Y}=A^{(2)}=softmax(Z^{(2)})$.\n", + "Pour calculer cette fonction de perte il faut avoir $\\hat{y}$ qui est une prédiction sous forme de probabilité, donc que la somme des probabilités soit 1 et que chaque probabilité soit comprise dans $[0,1]$. Pour cela on remplace la signoïde $A^{(2)}=\\sigma(Z^{(2)})$ par la fonction softmax qui donne $\\hat{Y}=A^{(2)}=softmax(Z^{(2)})$.\n", "\n", "$$softmax(x_i)=\\frac{e^{x_i}}{\\sum_{j=1}^{n}e^{x_j}}$$" ] @@ -632,7 +632,7 @@ "source": [ "### 11\n", "\n", - "La fonction one_hot va passer le vecteur label en matrice de 1 et de 0 qui servira de target à la matrice de prediction de probabilité rendu par softmax." + "La fonction one_hot va passer le vecteur label en matrice de 1 et de 0 qui servira de target à la matrice de prédiction de probabilité rendue par softmax." ] }, { @@ -701,7 +701,7 @@ "source": [ "### 13\n", "\n", - "La fonction accuracy va mesurer le taux de réussite du model, elle sera utile pour mesurer l'efficacité du modèle sur une base de test et pour suivre l'évolution du modèle en fonction des epoques d'entraînement (et donc vérifier que le modèle s'améliore)" + "La fonction accuracy va mesurer le taux de réussite du modèle, elle sera utile pour mesurer l'efficacité du modèle sur une base de test et pour suivre l'évolution du modèle en fonction des époques d'entraînement (et donc vérifier que le modèle s'améliore)" ] }, { @@ -843,20 +843,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "On remarque que la fonction de perte de perte tend vers 2. Cette limite peut être un minimum local, en effet le modèle part d'une matrice généré aléatoirement et tend vers le minimum local le plus proche, ainsi avec d'autres matrices de poid et de biais initiale nous pourions potentiellement arrivé à un meilleur modèle. De plus il est possible le le learning raite soit trop grand et que 2 ne soit pas réellement le minimum mais la limite vers laquel notre nodèle tend car il tourne autour du minimum avec un pas trop grand pour l'atteindre.\n", + "On remarque que la fonction de perte de perte tend vers 2. Cette limite peut être un minimum local, en effet le modèle part d'une matrice générée aléatoirement et tend vers le minimum local le plus proche, ainsi avec d'autres matrices de poids et de biais initial nous pourrions potentiellement arriver à un meilleur modèle. De plus il est possible que le learning rate soit trop grand et que 2 ne soit pas réellement le minimum mais la limite vers laquelle notre modèle tend car il tourne autour du minimum avec un pas trop grand pour l'atteindre.\n", "\n", "## Conclusion\n", "\n", - "On a vue dans ce BE deux méthodes de classification : la méthode par k-plus proches voisins et par réseau de neurone. Chacun de ces modèle pourrait être améliorer pour augmanter leurs taux de réussite.\n", + "On a vu dans ce BE deux méthodes de classification : la méthode par k-plus proches voisins et par réseau de neurones. Chacun de ces modèles pourrait être amélioré pour augmenter leurs taux de réussite.\n", "\n", - "- k plus proches voisins : on peut choisir une autre métrique de distance qui serait plus efficace ou ajouter une étapes de prétraitement pour avoir des meilleurs positionnement des images en fonction de leurs classes.\n", + "- k plus proches voisins : on peut choisir une autre métrique de distance qui serait plus efficace ou ajouter une étape de prétraitement pour avoir de meilleurs positionnements des images en fonction de leurs classes.\n", "\n", "\n", - "- réseau de neuronne : on peut augmenter le nombre de couches, en effet avec 1 seule couche caché chaque poid vas impacter plusieurs classes et devra être très affiné pour permettre une classification efficace. De plus les hyperparamètre comme learning rate et les matrice initialisé pourrait être également optimisé.\n", + "- réseau de neurones : on peut augmenter le nombre de couches, en effet avec 1 seule couche cachée chaque poids va impacter plusieurs classes et devra être très affiné pour permettre une classification efficace. De plus les hyperparamètres comme learning rate et les matrices initialisées pourraient être également optimisés.\n", "\n", - "On comparant ces modèles on remarque cependant que les k plus proches voisins ne s'améliore qu'en ajoutant de nouvelles instances à la base de donnée d'entraînement, la où le réseau de neuronne s'améliore en s'entraînant avec une même base de donnée. Ainsi le réseau de neuronne présente un potentiel d'être in fine meilleur que les k-plus proches voisins. \n", + "On comparant ces modèles, on remarque cependant que les k plus proches voisins ne s'améliorent qu'en ajoutant de nouvelles instances à la base de donnée d'entraînement, là où le réseau de neurones s'améliore en s'entraînant avec une même base de donnée. Ainsi le réseau de neurones présente un potentiel d'être in fine meilleur que les k-plus proches voisins. \n", "\n", - "Pour cela il faudra quand même apporté beaucoup de changement au modèle, que se soit avec les hyperparamètres comme expliqué plus haut, ou par l'utilisation de filtres comme matrice de poid, l'utilisation de convolution et l'augmentation du nombre de couches cachés. Car actuellement le modèle par réseau de neuronne atteint tout juste 18% de réussite pour 1000 époques d'entraînement un learning rate à 0,1 et une couche caché de dimension 64 contre 30% pour le modèle par k plus proches voisins." + "Pour cela il faudra quand même apporter beaucoup de changements au modèle, que se soit avec les hyperparamètres comme expliqué plus haut, ou par l'utilisation de filtres comme une matrice de poids, l'utilisation de convolution et l'augmentation du nombre de couches cachées. Car actuellement le modèle par réseau de neurones atteint tout juste 18% de réussite pour 1000 époques d'entraînement, un learning rate à 0,1 et une couche cachée de dimension 64 contre 30% pour le modèle par k plus proches voisins." ] } ],