Machine Learning course Master 1- Computer Network Practical Work N4
Objectif
Dans les infrastructures complexes (Hadoop, Kubernetes, Grilles), la stabilité repose sur la santé
individuelle de chaque nœud. Un serveur peut présenter des signes de surcharge ou des anomalies
réseau qui, s'ils ne sont pas traités, risquent de provoquer une défaillance en cascade de tout le
cluster.
L'objectif de ce projet est de fournir à l'administrateur une aide à la décision précoce. En développant
un modèle d'IA capable de classifier automatiquement l'état des nœuds (Sain, Surchargé, Problème
Réseau, Critique), nous permettons une intervention proactive avant que la situation ne devienne
irréversible.
Description du Dataset :
Le Dataset représenté dans le fichier «distributed_nodes_health.csv » contient 2 000 observations
(état d’un serveur) de ces 7 features suivants :
- cpu_load_avg : Charge CPU moyenne (0-100%)
- memory_pressure : Pression mémoire (0-100%)
- network_latency_ms : Latence réseau vers le master
- packet_loss_rate : Taux de perte de paquets
- disk_io_wait : Temps d'attente I/O disque (%)
- active_processes : Nombre de processus actifs
- temperature_c : Température du serveur
le Target, qui représente l’état d’un nœud, peut prendre les 4 valeurs suivante (4 classes) :
- 0 - Healthy : Fonctionnement normal
- 1 - Overloaded : Surcharge calcul/mémoire
- 2 - Network-Issue : Problèmes réseau/latence
- 3 - Critical : Risque de panne imminente
Required work
Le support pratique de cette séance est contenu dans le notebook [Link]. Le travail consiste à
exécuter le code séquentiellement (cellule par cellule) et à procéder à une interprétation rigoureuse
des résultats obtenus.
Tâches à accomplir :
1. Analyser les sorties de chaque étape du pipeline.
2. Ajuster la topologie du modèle et optimiser les hyperparamètres pour améliorer les
performances.
3. Réentraîner le modèle afin d'identifier la configuration la plus robuste. 4.
Répondre de manière argumentée aux deux questions de réflexion finales 5.
Topologie de base est:
Couche Input (7 features) → couche caché (Dense Layer 1 : 64 neurones +
ReLU) →couche caché (Dense Layer 2 : 32 neurones +
ReLU)
Machine Learning course Master 1- Computer Network
→couche caché (Dense Layer 3 : 16 neurones + ReLU ) →couche de sortie (Output
Layer : 4 neurones + Softmax )
Spécifications techniques :
• Loss : sparse_categorical_crossentropy (ou categorical_crossentropy si one-hot) •
Optimizer : Adam (learning rate = 0.001)
• Batch size : 32
• Epochs : 50 (avec EarlyStopping)
• Métriques : Accuracy, Precision, Recall
Tache 1 : réentrainer le modèle pour les 3 type architectures proposés, ensuite analyser les résultats
en sélectionnant l’architecture qui offre le meilleur compromis accuracy / temps d'inférence ?
Mesurer avec timeit sur un batch.
• Architecture de base : [64,32, 16] (3 couches cachées)
• Architecture A (Shallow) : [32, 16] (2 couches cachées)
• Architecture B (Deep) : [128, 64, 32, 16] (4 couches cachées - donc 5 au total avec input) •
Architecture C (Bottleneck) : [128, 8, 128] (bottleneck architecture).
Tache 2 : pour régler le problème d’Overfitting, ajouter les couches suivantes puis réentrainer le
modèle :
• BatchNormalization() (entre Dense et Activation)
• Augmenter le Dropout à 0.5
• Comparer les courbes loss vs val_loss
Taché 3 : Dans un système distribué réel, les nœuds périphériques ont peu de ressources. Pour
optimiser le modèle afin d’être utilisé dans le edge computing, créer une architecture lightweight :
• 2 coches [16, 8] uniquement
• Évaluer la perte de performance vs le modèle lourd
Question de réflexion :
"Un ingénieur réseau a configuré la fonction de perte du modèle sur loss='mse'. Entraînez le modèle.
Que constatez-vous sur l'accuracy ? Expliquez mathématiquement pourquoi la MSE est inadaptée ici
et remplacez-la par la fonction de perte appropriée pour corriger le réseau."