Ce projet a été réalisé dans le cadre du Master MIND à Sorbonne Université.
L’objectif est d’implémenter manuellement un réseau de neurones artificiels modulaire en Python, sans utiliser de bibliothèques automatiques de différentiation. Chaque composant (couches, fonctions d’activation, fonctions de perte) est conçu comme un module indépendant et réutilisable.
- Couches linéaires avec paramètres ajustables.
- Fonctions d’activation (Sigmoïde, TanH, Softmax).
- Fonctions de perte (MSE, Cross-Entropy, LogSoftmaxCrossEntropy).
- Architecture Séquentielle pour enchaîner facilement les modules.
- Auto-encodeurs pour l’apprentissage non supervisé.
- Fonctions utilitaires : optimisation (SGD), génération de données synthétiques.
Le projet a été testé sur plusieurs tâches :
- Régression linéaire.
- Classification binaire et multi-classes (MNIST).
- Auto-encodeurs pour la reconstruction et la réduction de dimension.
- Bonne convergence sur des tâches simples (régression, classification).
- Performances satisfaisantes sur MNIST (~93,85% de précision).
- Exploration des limites liées à la profondeur des réseaux et aux choix d’hyperparamètres.