129 lines
4.7 KiB
Markdown
129 lines
4.7 KiB
Markdown
# Conception d’une librairie de réseaux neuronaux
|
||
|
||
## Samedi 23 Octobre 2021
|
||
|
||
**Hugo EYNARD
|
||
Thomas BLUSSON
|
||
Romain MOREAU
|
||
Gabriel CHAVANON**
|
||
|
||
Responsable référent:
|
||
Gabriel CHAVANON
|
||
|
||
Dépot GITEA:
|
||
https://dwarves.iut-fbleau.fr/gitiut/blusson/PT21-22-Reseau-Neurones
|
||
|
||
|
||
## Sommaire
|
||
|
||
- Sommaire
|
||
- Cahier des charges fonctionnelles
|
||
- Contexte
|
||
- Etudes détaillées des objectifs (analyses des besoins)
|
||
- Calendrier et priorisation des objectives
|
||
- Cahier des charges techniques et méthodologique
|
||
- Bibliographie
|
||
|
||
|
||
## Cahier des charges fonctionnelles
|
||
|
||
|
||
### Contexte
|
||
|
||
Client : Pierre VALARCHER (tuteur)
|
||
|
||
Description:
|
||
|
||
Nous comptons concevoir notre propre librairie de réseaux neuronaux et l’optimiser
|
||
par la suite à travers différents tests (reconnaître des caractères manuscrites). Pour
|
||
ceci nous ne comptons pas nous appuyer sur des solutions déjà existantes (comme
|
||
TensorFlow) mais bien tout réaliser de A à Z. Pour ce qui est de l’optimisation (une
|
||
meilleure vitesse d'exécution et une meilleure précision des résultats) on pourra
|
||
utiliser des tests et des outils comparatifs (ancienne version de notre projet ou
|
||
encore des librairies déjà existantes).
|
||
|
||
Contraintes :
|
||
|
||
On réalisera ce projet en Python orienté objet et grâce à ses librairies, tout notre
|
||
travail sera disponible surnotre dépôt GITEA.
|
||
|
||
Existant :
|
||
|
||
Nous avons à notre disposition un jeu de données contenant des images de chiffres
|
||
annotés avec le chiffre correspondant. Ilnous permettra d'entraînernotre réseau
|
||
neuronal pour le tester.
|
||
|
||
|
||
### Etudes détaillées des objectifs (analyses des besoins)
|
||
|
||
Fonctionnalités :
|
||
-Choix de la fonction d’activation pour chaque couche de neurones
|
||
-Choix du nombre de couches de neurones
|
||
-Choix du type de neurones pour chaque couche
|
||
-Choix du nombre de neurones dans chaque couche
|
||
-Faire une prédiction à partir d’un réseau de neurone
|
||
-Entraîner le réseau de neurones
|
||
-Exporter et importer l’état (modèle, biais et poids) d’un réseau de neurones
|
||
-Visualiser l'entraînement d’un réseau de neurone à deux entrées
|
||
|
||
Bob le développeur possède un jeu de données comportant des images de chats et
|
||
de chiens annotés. Il commence par importer Sobek. Ilchoisit ensuitepour son
|
||
modèlederéseauneuronald’avoirunematrice 360 par 360 pourentrée.Ildécidede
|
||
mettre 2 premières couches de 180 neurones convolutifs,puis 2 couchesde 64
|
||
neuronesdenses(ouclassiques)etenfinunesortiede 2 neuronesdenses(Unpour
|
||
chienet un pourchat). Il sépareson jeude donnéesen 2 parties:ilutiliseles 3
|
||
premiers quarts pour entraîner son réseau neuronal et après quelques minutes
|
||
d'attente, il utilise le dernier quart pour estimer sa précision. Après quelques
|
||
modifications et tests de l'architecture de son réseaupour obtenir une meilleure
|
||
précision, Bob est satisfait et peut maintenant utiliserson réseaupour faire des
|
||
prédictions.
|
||
|
||
|
||
### Calendrier et priorisation des objectives
|
||
|
||
Jalon 0 : Cahier des charges (à signer) début novembre
|
||
Jalon 1 : Perceptron multicouche (première itération du projet), mi décembre M
|
||
1.1 : Partie prédiction du perceptron multicouche M
|
||
1.2 : Partie apprentissage du perceptron multicouche M
|
||
1.3 : Estimation de la précision du perceptron multicouche S
|
||
1.4 : Exportation et importation de l’état du réseau neuronal M
|
||
Jalon 2 : Utilisation concrète du réseau neuronal, fin décembre M
|
||
Jalon 3 : Visualisation 2D de l’entraînement du réseau neuronal M
|
||
Jalon 4 : Réseau de neurones convolutif (version optimisée du perceptron multicouche), fin janvier S
|
||
4.1 : Création d’un système de choix de type de couche M
|
||
4.2 : Implémentation du neurone convolutif M
|
||
Jalon 5 : Utilisation concrète du réseau convolutif, fin février C
|
||
|
||
|
||
## Cahier des charges techniques et méthodologique
|
||
|
||
Nous avons choisi d’utiliser le Python car c’est un langage plutôt abordable qui est
|
||
communément utilisé pour le machine learning. On compte également utiliser Scipy
|
||
(NumPy (gestion des tableaux), Matplotlib (visualisation de données sous forme
|
||
graphique).
|
||
|
||
Méthodologie de travail :
|
||
On envisage d’utiliser la méthode agile (1 sprint correspond à 1 jalon) ainsi que le
|
||
pair programming.
|
||
|
||
On compte utiliser très fréquemment GIT, et faire des tests unitaires dès que
|
||
possible. On utilisera make pour l’exécution des tests et des mises en application.
|
||
|
||
|
||
### Bibliographie
|
||
|
||
https://en.wikipedia.org/wiki/Types_of_artificial_neural_networks
|
||
|
||
https://youtu.be/bVQUSndDllU
|
||
|
||
https://youtu.be/aircAruvnKk
|
||
|
||
https://www.mygreatlearning.com/blog/open-source-python-libraries/
|
||
|
||
https://fr.wikipedia.org/wiki/Matplotlib
|
||
|
||
https://brilliant.org/wiki/backpropagation/
|
||
|
||
_Apprentissage machine Clé de l’intelligence artificielle_ - Rémi Gilleron, 2019
|
||
|
||
_Deep Learning with Python, 2nd Edition_ - FrançoisChollet, 2021 |