Les réseaux de neurones dynamiques sont une branche peu développée du Deep Learning, qui repose sur un principe simple, l'architecture du réseau est dynamique. Cela a plusieurs avantages, notamment le fait que le réseau est en perpetuel apprentissage, et qu'il peut changer sa structure et le routage des informations en fonction des données, ce qui le rend très flexible. Le dynamisme s'opère au niveau de la profondeur du réseau mais aussi sur sa largeur (dans le cas d'un réseau en couches comme dans le modèle DAN2). Ici, on va encore un peu plus loin dans ce concept de réseau de neurones dynamiques, car on va utiliser une structure de graphe, c'est à dire sans organisation en couches comme les modèles classiques.
Concernant ce projet, il a pour objectif de tester le pouvoir classificateur d'un réseau de neurones dynamiques en graphe décrit par l'article scientifique dont le lien est ci-dessous (le deuxième). L'article n'évoque qu'une partie mathématique et quelques voix pour la mise en place du modèle. Ainsi, La première étape de ce projet sera d'implémenter la structure du graphe ainsi que les méthodes associées telles qu'elles sont décrites dans cet article, puis, en fonction des resultats, d'améliorer le modèle. On verra que l'utilisation de la transformée de Fourier et la transformée en ondelettes sera nécessaire. Ensuite, une partie graphique sera implémentée avec la librairie Plotly qui servira à s'assurer de la bonne mise en place des premières méthodes (uniquement sur la première partie de l'implémentation). Concernant les phases d'expérimentation, on tentera pour commencer de classer plusieurs types de fonctions classiques, puis nous poursuivrons sur une classification de signaux sinusoïdaux, tout cela sans pré traitement des données, et nous tenterons de classer des chants d'oiseaux avec une autre méthode de calcul de distance. Ensuite, nous testerons la modification de nos données d'entrées avec une transformée de Fourier, ou encore une transformées en Ondelettes sur des électrocardiogrammes et des signaux sinusoïdaux. Dans ce repository, une première partie sera consacrée à l'aspect mathématique du modèle, pour mieux comprendre son fonctionnement. Puis sera expliqué l'implémentation avec Python avec les différents tests et résultats.
L'article lié à ce projet est disponible sur mon site
-
Comprendre les Self-Organising Maps (SOM)
-
Article scientifique sur les Dynamic graph neural networks sur lequel se base ce projet.
-
Article sur les Self-Growing Neural Network (SGNN)
-
Article sur le réseau de neurones dynamique DAN2
-
Transformée de Fourier et applications
Libraries utilisées :