projet de 4 année à l’insa eenne alibert séminaire dream
TRANSCRIPT
Projet de 4ième année à l’INSA Séminaire DREAM
21 juin 2010
1
E"enne Alibert Florian Barbede1e Pierre Chesneau Mathias Deshayes Sevan Hartunians Mathieu Poignet
Encadrant : Laurence Rozé
Genèse du projet
2
Entreprise Telelogos Spécialisée dans le middleware
Constat : Augmentation des flottes d’appareils mobiles en entreprise
Applications critiques sur PDA Problèmes de maintenance
Développement d’un logiciel concept Contact avec DREAM pour l’aspect Diagnostic
Objec"fs
3
Diagnostic embarqué Effectuer une surveillance du système
Relever l’état du système (processus lancés, niveau de mémoire…)
Opérer un diagnostic et une réparation du système Être transparent à l’utilisateur
Apprentissage de règles automatisé Déduire de nouvelles règles Insérer les règles déduites dans la partie diagnostic
Projet ManageYourself
4
Mise à jour du système de diagnostic
Situation non reconnue
Surveillance en ligne
Architecture Globale Repor6ng Système Expert
Démonstra6on
5
Architecture Globale
Serveur
• Apprentissage
Client Mobile
Surveillance du Système
(Reporting)
Diagnostic (Système Expert)
Rapports de surveillance
Mise à jour des règles
6
Repor"ng 1/4
Rapport de fonctionnement
Surveillance continue du
système mobile
Via coredll.dll et la classe
SystemState Rapport de bug
7
Utilisé par apprentissage et système expert
Utilisé par apprentissage
Repor"ng 2/4 Eléments surveillés (52 en tout) :
Périphériques (appareil photo, clavier…) Appels (appels en cours, redirection d’appels…) Batterie (batterie restante…) Mémoire (mémoire vive restante…) Réseaux (connexion wifi, puissance du signal…) Carte SIM (présence d’une carte, mémoire pleine…) Bluetooth (activation, nombre de connexions) Liste des processus Autres (Rotation, profil son, application courante…)
8
Repor"ng 3/4
Exemple de rapport de fonctionnement
Exemple de rapport de bug
9
ATTRIBUT BatteryLifeTime NUMERIC ATTRIBUT ACLineStatus NUMERIC ATTRIBUT CameraPresent {True,False} ATTRIBUT KeyboardPresent {True,False} ATTRIBUT Bug {True,False}
4294967295,1,True,True,False
4294967456,1,False,True,True
Repor"ng 4/4 Rapports codés en binaire
Gain de place mémoire Ne prend pas beaucoup de place sur le téléphone Permet des transferts plus rapide
Transferts plus sécurisés
10
Système Expert 1/2
Application de diagnostic = Système Expert Simple Rule Engine Psharp Développement de leur propre système expert
Moteur d’inférence Chainage avant Première règle trouvée déclenchable est exécutée Règles exécutées une et une seule fois
Actions Déduction de nouveaux faits Exécution d’actions correctives (.exe)
11
Système Expert 2/2
Grammaire des règles Regle → SI condition (ET condition)* ALORS action FSI Condition → nomAttribut operateur partieDroite Operateur → = | > | < | ≤ | ≥ partieDroite → nomAttribut | valeur Action → APPEL nomProg | nomAttribut = partieDroite
Exemple de règles
12
SI memoireSaturee = true ET applicationA = true ALORS APPEL correctifA.exe FSI
Démonstra"on
13
Situation normale
Génération de rapports de
fonctionnement Diagnostic bon
Règle présente dans le système expert :
SI ACLineStatus = 0 ET iexplore.exe = 1 ALORS APPEL correctifA.exe FSI
Lancement de Internet Explorer
Débranchement du chargeur
Diagnostic d’une situation problématique
Appel du correctif
correspondant
14
Architecture serveur Communica6ons Créa6on du .arff Appren6ssage Interface Administrateur
Compila6on .mrf ‐> .cs
Démonstra6on
15
Architecture Serveur
16
MediaContact
Système Mobile
Script Concaténation
Apprentissage
Interface Administration
Compilateur Mrf ‐>cs
Compilateur C#
InferenceEngine.dll Actions
Base de règles
SE
Report.bin
Report.arff
NewRules.appr
NewRule.mrf RuleBase.cs
RuleBase.exe
Compilateur bin ‐>rep
Report.rep
Communica"ons 1/3
17
MediaContact
Système Mobile
Script Concaténation
Apprentissage
Interface Administration
Compilateur Mrf ‐>cs
Compilateur C#
InferenceEngine.dll Actions
Base de règles
SE
Report.bin
Report.arff
NewRules.appr
NewRule.mrf RuleBase.cs
RuleBase.exe
Compilateur bin ‐>rep
Report.rep
Communica"ons 2/3
18
Console(s) d’administration
PDA
IP GPRS, EDGE,
UMTS, HSDPA, Wi-Fi, xDSL, RNIS, RTC
LAN
Serveur(s) de communications
Tablette
Portable
Système point de vente
Machine communicante
Applications
Messagerie
Données
SI CENTRAL
Serveur : Windows 2000 / 2003
Client distant : Windows 2000 / 2003 / XP / Vista Windows CE / Mobile 5.0 - 6.0
Console(s) Web
Gestion multi-réseau
Fonctionnement de MediaContact
Communica"ons 3/3
Utilisation de Mediacontact
Envoi régulier de rapports de surveillance à l’apprentissage
Appel de programme pour concaténer des rapports
Mise à jour des règles du système expert
19
Créa"on du fichier .arff 1/2
20
MediaContact
Système Mobile
Script Concaténation
Apprentissage
Interface Administration
Compilateur Mrf ‐>cs
Compilateur C#
InferenceEngine.dll Actions
Base de règles
SE
Report.bin
Report.arff
NewRules.appr
NewRule.mrf RuleBase.cs
RuleBase.exe
Compilateur bin ‐>rep
Report.rep
Créa"on du fichier .arff 2/2
Décodage des rapports binaires Création dynamique de l’entête : type des attributs Concaténation des rapports
Une ligne par rapport
21
@ATTRIBUTE BatteryLifeTime NUMERIC @ATTRIBUTE ACLineStatus NUMERIC @ATTRIBUTE CameraPresent {True,False} @ATTRIBUTE KeyboardPresent {True,False} @ATTRIBUTE PhoneActiveCallCount NUMERIC
@DATA 4294967295,1,True,True,1 4294967456,1,False,True,1
Appren"ssage 1/10
22
MediaContact
Système Mobile
Script Concaténation
Apprentissage
Interface Administration
Compilateur Mrf ‐>cs
Compilateur C#
InferenceEngine.dll Actions
Base de règles
SE
Report.bin
Report.arff
NewRules.appr
NewRule.mrf RuleBase.cs
RuleBase.exe
Compilateur bin ‐>rep
Report.rep
Appren"ssage 2/10
Objectif : déduire des règles à partir des rapports Contexte :
Apprentissage supervisé, fonction cible discrète Pouvoir comprendre les règles pour associer des actions
Choix de l’algorithme : Arbres de décision (C4.5)
Possèdent un grand pouvoir d’expression Données bruitées possibles Sont lisibles par un humain
Choix d’une bibliothèque : Weka 23
Appren"ssage 3/10
Simulateur : Attributs memoire ∈ {normale,saturee,presqueSaturee } applicationA ∈ {lancee,nonLancee } applicationB ∈ {lancee,nonLancee } applicationC ∈ {lancee,nonLancee } derniereVersionA ∈ {oui,non } derniereVersionB ∈ {oui,non } derniereVersionC ∈ {oui,non } batterie ∈ {normale,faible,vide } plantage ∈ {oui,non }
24
Appren"ssage 4/10
Simulateur : entrées SI memoire=saturee ET applicationC=lancee ALORS plantage=oui FSI
SI memoire=presqueSaturee ET applicationC=lancee ALORS plantage=oui FSI
SI memoire=saturee ET applicationA=lancee ALORS plantage=oui FSI
SI applicationA=lancee ET applicationB=lancee ALORS plantage=oui FSI
25
Appren"ssage 5/10
Simulateur : sortie fichier arff @relation Smartphone1 @attribute memoire {normale,saturee,presqueSaturee} @attribute applicationA {lancee,nonLancee} @attribute applicationB {lancee,nonLancee} @attribute applicationC {lancee,nonLancee} @attribute derniereVersionA {oui,non} @attribute derniereVersionB {oui,non} @attribute derniereVersionC {oui,non} @attribute batterie {normale,faible,vide} @attribute plantage {oui,non} @data normale,lancee,nonLancee,lancee,non,non,oui,normale,non normale,nonLancee,lancee,lancee,oui,oui,non,vide,non presqueSaturee,lancee,nonLancee,lancee,non,non,oui,normale,oui saturee,lancee,nonLancee,nonLancee,oui,oui,non,vide,oui
26
Appren"ssage 6/10
27
100% de reconnaissance des 1000 exemples
Règles apprises ⇔ règles simulateur
Règles un peu plus compliqués que règles du simulateur
Appren"ssage 7/10 4 autres téléphones testés :
Mémoire : attribut numérique ∈[0 256] Diminution du nombre d’exemples de plantages
Saturé ∈[240 256] Probabilité de 1/10 d’avoir deux applications lancées
Introduction de données bruitées (1 sur 100) Apprentissage très bon
98,8% de reconnaissance Les exemples mal classés sont les exemples bruitées Nombre de règles raisonnable
28
Appren"ssage 8/10
Dernier téléphone testé : règle aléatoire : SI memoire ∈[200,240] ET applicationC=lancee ALORS plantage=ouiounon FSI
Une chance sur deux de planter
Permet de voir si l’apprentissage peut s’adapter à des situations plus floues
29
30
15 règles de plantage apprises !
Appartition des attributs : • batterie • derniereVersionB • derniereVersionA
Appren"ssage 9/10 Minimum %
reco Nb règles Variables parasites
2 97,7 15 Batterie, derniereVersionA, derniereVersionB
6 98 12 Batterie, derniereVersionB
10 97,8 10 Batterie, derniereVersionB
15 97,4 6 derniereVersionB
30 97,2 3
40 97,2 3
50 96,9 3
60 96,7 3
100 92,6 1
31
Appren"ssage 10/10 Questions
Choisir critère sur taux reco / nombre var ? Développer arbre jusqu’à une profondeur donnée ? Regarder les algos du coté règles de classification ?
32
Interface d’administra"on 1/3
33
MediaContact
Système Mobile
Script Concaténation
Apprentissage
Interface Administration
Compilateur Mrf ‐>cs
Compilateur C#
InferenceEngine.dll Actions
Base de règles
SE
Report.bin
Report.arff
NewRules.appr
NewRule.mrf RuleBase.cs
RuleBase.exe
Compilateur bin ‐>rep
Report.rep
Interface d’administra"on 2/3
Seul maillon de la chaine non‐automatique
Permet de : Lister les règles déjà présentes dans le système expert Lister les règles trouvées par l’apprentissage Entrer de nouvelles règles manuellement Associer des actions aux règles
34
Interface d’administra"on 3/3
35 Panneau principal de l’interface d’administration
Compila"on .mrf ‐> .cs 1/2
36
MediaContact
Système Mobile
Script Concaténation
Apprentissage
Interface Administration
Compilateur Mrf ‐>cs
Compilateur C#
InferenceEngine.dll Actions
Base de règles
SE
Report.bin
Report.arff
NewRules.appr
NewRule.mrf RuleBase.cs
RuleBase.exe
Compilateur bin ‐>rep
Report.rep
Compila"on .mrf ‐> .cs 2/2 Utilisation de javacc pour la création du compilateur
37
#Declaration des attributs ATTRIBUT memoire NUMERIC ATTRIBUT memDiscret {normale,saturee,presqueSaturee} ATTRIBUT applicationC {lancee,nonLancee}
#Declaration des règles SI memDiscret = saturee ET applicationC=true ALORS APPEL viderMemoire.exe FSI SI memoire < 100 ALORS memDiscret = saturee FSI
// beginning of a new rule. (ruleid : 0) List<Condition> lConditions_0 = new List<Condition>(); List<InferenceEngine.Action> lConsequences_0 = new List<InferenceEngine.Action>(); lConditions_0.Add(new Condition(Condition.operators.EQUAL,new LeftOperand(this.kb.registerFact("memDiscret")),new ValueOperand(new Symbol("saturee")))); lConditions_0.Add(new Condition(Condition.operators.EQUAL,new LeftOperand(this.kb.registerFact("applicationC")),new ValueOperand(new Symbol("true")))); //end of conditions for ruleid : 0 lConsequences_0.Add(new ExecuteMethod("viderMemoire.exe")); kb.addRule(new Rule(lConditions_0,lConsequences_0)); //End of rule . Ruleid :0
.mrf
.cs
Démonstra"on
38
Situation problématique (Saturation de la
RAM)
Non‐détection du problème
Plantage d’une application
Création du rapport de bug
Envoi des rapports Analyse des rapports par l’apprentissage
Génération de nouvelles règles
Validation et ajout d’un correctif
Mise a jour du système expert sur le mobile
Situation problématique (Saturation de la
RAM)
Détection du problème
Application du correctif approprié
39
Très bon projet de 4ième année
Problème du test Reste beaucoup de travail du coté appren6ssage
U"liser des algorithmes perme1ant de généraliser sur les a1ributs
Regarder du coté des règles de classifica"on ? Introduire des no"ons de type d’appareil ?
Bourse Ciffre en perspec6ve
40
Ques"ons ?
41
MediaContact
Système Mobile Report.bin
RuleBase.cs Script
Concaténation
Apprentissage
Interface Administration
Compilateur Mrf ‐>cs
Compilateur C#
InferenceEngine.dll Actions
Base de règles
SE
Report.arff
NewRules.appr
NewRule.mrf
RuleBase.exe
Compilateur bin ‐>rep
Report.rep
Reporting Système Expert Report.bin Inférence