Implémentation des dynamic Bayesian Networks dans la Librairie Python pyAgrum
Contexte
Les réseaux bayésiens dynamiques (dBN) sont une extension des réseaux bayésiens classiques permettant de modéliser des systèmes évolutifs dans le temps (des processus stochastiques).
Ces modèles capturent les dépendances temporelles entre les variables d'un système, en prenant en compte à la fois l'évolution des états internes du système et les observations réalisées à chaque étape du temps. Ils forment donc une généralisation des MDP et des HMM.
Les dBN sont utilisés dans de nombreux domaines, tels que la prévision, la modélisation de systèmes complexes, le suivi de processus stochastiques et l’intelligence artificielle.
La librairie pyAgrum permet de créer, analyser et apprendre des réseaux bayésiens, y compris des réseaux dynamiques. Ce projet a pour but, à partir de codes existants, de construire un module spécifique a la représentation, l'apprentissage et l'inférence dans les dBN.
Objectif du projet
Les étudiants devront :
- Implémenter un modèle de réseau bayésien dynamique (dBN) en utilisant pyAgrum.
- Adapter les algorithmes d'apprentissage classiques des réseaux bayésiens à des séries temporelles multidimensionnelles vérifiant une propriété de Markov d'ordre p≥1.
- Documenter et fournir un tutorial de ce module sous la forme d'un notebook.
Tâches principales
- Étudier les principes des réseaux bayésiens et leur extension temporelle avec les réseaux bayésiens dynamiques et prendre en main le code existant. En déduire un cahier des charges pour le nouveau module.
- Proposer un module facilitant la modélisation d'un dBN, en spécifiant les variables d’état successives et les relations de transition entre les périodes.
- Implémenter un système d'inférence dynamique pour ajuster les prédictions en fonction des nouvelles observations au fil du temps.
- Apprentissage de la structure : Implémenter l'apprentissage non supervisé pour découvrir la structure du réseau dynamique à partir des données temporelles.
- Donner accès aux outils de visualisation de pyAgrum pour illustrer les résultats obtenus et la structure du dBN.
- Rédiger un rapport détaillant la méthodologie, les choix techniques, les résultats expérimentaux et les perspectives d'amélioration.
- Intégrer des visualisations pour appuyer les résultats et faciliter la compréhension du modèle.
Livrables attendus
- Code source : un ensemble de scripts Python implémentant l'ensemble du processus, incluant la création du réseau, l'apprentissage de la structure, l'apprentissage des paramètres et la simulation, prêt à être installé dans pyAgrum.
- Rapport de projet : Un document détaillant la méthodologie, les choix effectués, les résultats obtenus et une analyse des performances du modèle.
- Présentation orale : Présentation des objectifs, de la méthodologie, des résultats et des pistes d'améliorations.
Compétences et prérequis
- Compétences techniques :
- Maîtrise de Python (bibliothèques
numpy
,pandas
,matplotlib
, et pyAgrum). - Connaissances en probabilités, statistiques et modèles de Markov.
- Intérêt pour l’intelligence artificielle et les modèles probabilistes.
- Maîtrise de Python (bibliothèques