GIND5439 Systèmes Intelligents Chapitre 8: Ingénierie cognitive. Qu’est-ce que le génie cognitif? Loi de Davis: « Pour chaque outil il existe une tâche qui lui est parfaitement adaptée … » Cependant, il est trop optimiste de croire que pour chaque tâche il existe un outil qui lui est parfaitement adapté. Génie cognitif: Intégration des techniques d'intelligence artificielle et du génie logiciel en vue de concevoir et de construire des systèmes experts. GIND5439 – Gabriel Cormier, Université de Moncton 2 Le processus d’ingénierie cognitive Phase 1: Évaluation du problème Phase 2: Acquisition de données et connaissances Phase 3: Développement d’un système prototype Phase 4: Développement d’un système complet Phase 5: Évaluation et révision du système Phase 6: Intégration et maintenance du système GIND5439 – Gabriel Cormier, Université de Moncton 3 Phase 1: Évaluation du problème Déterminer les caractéristiques principales du problème. Identifier les participants principaux du projet. Spécifier les objectifs du projet. Déterminer les ressources nécessaires pour construire le système. GIND5439 – Gabriel Cormier, Université de Moncton 4 Problèmes typiques Type de problème Description Diagnostique Inférer les défaillances d’un objet à partir de son comportement et recommander des solutions. Sélection Recommander la meilleure solution à partir d’une liste d’alternatives possibles. Prédiction Prédire le comportement futur d’un objet à partir de son comportement précédent. Classification Assigner un objet à une de ses classes. Agrégation Diviser un groupe d’objets hétérogènes en des sousgroupes homogènes. Optimisation Améliorer la qualité d’une solution jusqu’à ce qu’une solution optimale soit obtenue. Contrôle Gouverner le comportement d’un objet pour atteindre des spécifications en temps réel. GIND5439 – Gabriel Cormier, Université de Moncton 5 Problèmes typiques Type de problème Méthodes suggérées Diagnostique Système à base de règles. Sélection Système à base de règles, logique floue. Prédiction Réseau de neurones. Classification Système à base de règles, réseau de neurones. Agrégation Logique floue, réseau de neurones. Optimisation Algorithme génétique, optimisation par essaim de particules. Contrôle Logique floue. GIND5439 – Gabriel Cormier, Université de Moncton 6 Phase 2: Acquisition d’information Récolter et analyser les données et connaissances. Les données devront possiblement être réorganisées dans une forme utile. On doit rendre les concepts clés plus clairs et définis. GIND5439 – Gabriel Cormier, Université de Moncton 7 Phase 2: Acquisition d’information Problèmes: Données incompatibles Données inconsistantes Les données à analyser sont peut-être stockées dans un format qui n’est pas compatible avec les instruments disponibles. Certains faits sont représentés différemment dans différentes bases de connaissances. Données incomplètes Certains records contiennent des espaces vides On peut essayer d’inférer de l’information utile On peut remplir les espaces vides par la donnée médiane ou moyenne. Dans certains cas, le fait qu’un espace soit vide peut donner de l’information utile. GIND5439 – Gabriel Cormier, Université de Moncton 8 Acquisition de connaissances On commence en révisant les documents disponibles, comme des livres, articles et manuels qui sont reliés au problème. On collectionne d’autre information à l’aide d’une entrevue avec l’expert du domaine. L’acquisition de connaissances est un processus itératif. La compréhension du domaine du problème est très importante à la construction d’un système expert. GIND5439 – Gabriel Cormier, Université de Moncton 9 Difficultés L’expert Connaît plus que ce qu’il (ou elle) dit Dit plus que ce qu’il connaît Ment N’est pas d’accord avec d’autre experts L’ingénieur de la connaissance Manque de structure Nécessite des habiletés sociales Nécessite des compétences en IA GIND5439 – Gabriel Cormier, Université de Moncton 10 Techniques Entrevues Observation de la performance Analyse des protocoles Système Ingénieur Expert Écouter Comprendre Reformuler Expliquer GIND5439 – Gabriel Cormier, Université de Moncton 11 Pour commencer Pour chaque problème à être étudié par le système: Déterminer l’ampleur et la structure de l’espace de solution Combien de catégories de réponses y a-t’il? Combien de choix dans chaque catégorie? Choisir une catégorie, choisir un choix spécifique Quels facteurs suggèrent un choix comme le choix correct? GIND5439 – Gabriel Cormier, Université de Moncton 12 Phase 3: Développement d’un prototype Choisir un outil pour construire le système intelligent. Transformer les données et représenter les connaissances. Concevoir et implanter le système prototype. Tester le prototype avec des essais-type. Un essai-type est un problème résolu avec succès dans le passé pour lequel les données initiales et la solution sont connues. Pendant le test, le système reçoit les même données et sa solution est comparée à la solution originale. GIND5439 – Gabriel Cormier, Université de Moncton 13 Phase 4: Développement du système On prépare un design détaillé pour le système à pleine échelle. On récolte des données et connaissances additionnelles. On développe l’interface utilisateur. On implémente le système au complet. GIND5439 – Gabriel Cormier, Université de Moncton 14 Phase 5: Évaluation et révision Évaluer le système selon les critères de performance. Réviser le système si nécessaire. GIND5439 – Gabriel Cormier, Université de Moncton 15 Évaluation Les systèmes intelligents sont conçus pour résoudre des problèmes qui habituellement n’ont pas de « bonne » ou « mauvaise » solution clairement définis. L’évaluation d’un système intelligent revient à s’assurer que le système accomplit la tâche voulue à la satisfaction de l’utilisateur. Une évaluation formelle du système est typiquement accomplie avec des essai-types. La performance du système est comparée contre des critères de performance qui furent adoptés à la fin de la phase de prototypage. GIND5439 – Gabriel Cormier, Université de Moncton 16 Phase 6: Intégration et maintenance Interface avec les systèmes existants S’arranger pour faire le transfert de technologie. Établir un système de maintenance. GIND5439 – Gabriel Cormier, Université de Moncton 17 Système expert Est-ce qu’un système expert fonctionnera pour mon problème? Firebaugh, 1988: règle de l’appel téléphonique « Tout problème qui peut être réglé par un expert sur place par un appel de 10 à 30 minutes peut être développé comme un système expert. » GIND5439 – Gabriel Cormier, Université de Moncton 18 Exemple: classification Les problèmes de classification sont bien adaptés aux systèmes à base de règles et aux réseaux de neurones. Ex: Soit un système pour classifier les différents types de bateaux à voile. On commence en récoltant de l’information sur les différentes structures et les voiles des bateaux à voile. Chaque bateau peut être identifié selon ces caractéristiques. GIND5439 – Gabriel Cormier, Université de Moncton 19 Exemple: classification Jib-headed Cutter Gaff-headed Sloop Staysail Schooner Gaff-headed Schooner Jib-headed Yawl Gaff-headed Yawl Jib-headed Ketch Gaff-headed Ketch Différents bateaux à voile GIND5439 – Gabriel Cormier, Université de Moncton 20 Exemple: classification On peut utiliser des règles pour ce type de système. Dans un monde parfait, il serait très facile de classifier ces bateaux. Cependant, s’il y a de la brume, ou peu de lumière, comment faire? On utilise des facteurs de certitude. Dans ce cas-ci, 11 règles sont nécessaires. Voir p.312 du manuel pour les règles. GIND5439 – Gabriel Cormier, Université de Moncton 21 Exemple: classification Dans ce cas-ci, on peut créer un interface graphique avec une page web. On utilise du javascript pour faire le calcul des facteurs de certitude. À l’aide des facteurs de certitude, on peut donner les options les plus probables quant au type de bateau à voile. GIND5439 – Gabriel Cormier, Université de Moncton 22 Exemple: classification GIND5439 – Gabriel Cormier, Université de Moncton 23 Exemple: contrôle On veut faire le contrôle d’un système quelconque à l’aide d’un contrôleur flou. Soit le système suivant: 3 G ( s) = ( s + 1)( s + 2)( s + 3) On comparera aussi la performance avec celle d’un contrôleur PID. GIND5439 – Gabriel Cormier, Université de Moncton 24 Exemple: contrôle En utilisant les méthodes classiques, on trouve que le contrôleur PID a les caractéristiques suivantes: Kp = 12, Ki = 12, KD = 3 On doit faire une certaine analyse du problème avant de construire le contrôleur flou. Il faut vérifier les valeurs finales du système. GIND5439 – Gabriel Cormier, Université de Moncton 25 Exemple: contrôle En effet, la valeur finale du système sous étude lorsque soumis à une entrée échelon unitaire est: 1 3 1 = y (∞) = lim sR ( s )G0 ( s ) = lim s ⋅ ⋅ s → 0 s ( s + 1)( s + 2)( s + 3) 2 s →0 Ce qui veut dire que la sortie est la moitié de l’entrée. Pour obtenir une sorte de 1 lorsque l’entrée du système est un échelon, il faudra que le contrôleur ait un gain = 2. GIND5439 – Gabriel Cormier, Université de Moncton 26 Exemple: contrôle On peut maintenant construire les fonctions d’appartenance, tout en sachant qu’il faut une sortie de 2 quand l’entrée au contrôleur est 0 (erreur de 0). Dans ce cas-ci, on choisit de limiter l’entrée à une gamme de valeurs entre -1 et +1. Quant à la sortie, on limite les règles aux valeurs de -7.5 à +10. GIND5439 – Gabriel Cormier, Université de Moncton 27 Exemple: contrôle GIND5439 – Gabriel Cormier, Université de Moncton 28 Exemple: contrôle GIND5439 – Gabriel Cormier, Université de Moncton 29 Exemple: contrôle On n’utilise que 3 règles pour ce système: IF error is Negative THEN control is Negative IF error is Zero THEN control is Zero IF error is Positive THEN control is Positive On aurait pu utiliser plus de fonctions d’appartenance à l’entrée et à la sortie, mais il est généralement conseillé de commencer avec peu de règles; si on a besoin de plus de précision, on peut augmenter le nombre de fonctions d’appartenance. GIND5439 – Gabriel Cormier, Université de Moncton 30 Exemple: contrôle GIND5439 – Gabriel Cormier, Université de Moncton 31 Exemple: contrôle On combine les systèmes sur Simulink. GIND5439 – Gabriel Cormier, Université de Moncton 32 Exemple: contrôle flou 1.6 1.4 Comparaison entre le PID(vert) et le contrôleur flou (bleu). 1.2 1 0.8 0.6 0.4 0.2 0 0 1 2 3 4 5 6 7 8 9 10 GIND5439 – Gabriel Cormier, Université de Moncton 33 Exemple: Optimisation On veut optimiser l’emplacement d’un entrepôt afin de minimiser les déplacements entre l’entrepôt et les magasins des clients. Les coordonnées des clients ainsi que le nombre de déplacements sont donnés dans le tableau suivant: Client x y Déplacements 1 5 10 200 2 10 5 150 3 0 12 200 4 12 0 300 GIND5439 – Gabriel Cormier, Université de Moncton 34 Exemple: Optimisation Dans ce cas-ci, on veut minimiser la distance totale: D = min(200 D1 + 150 D2 + 200 D3 + 300 D4 ) où D1 = D2 = D3 = D4 = (x − 5) + ( y − 10) (x − 10)2 + ( y − 5)2 (x − 0)2 + ( y − 12)2 2 2 (x − 12) + ( y − 0) 2 2 GIND5439 – Gabriel Cormier, Université de Moncton 35 Exemple: Optimisation 6200 POP = 15; minLimit = [0; 0]; maxLimit = [15; 15]; pc = 0.80; pm = 0.01; aa = 1.2; bb = 3.0; Maximum Moyenne 6100 6000 Fitness 5900 5800 L’algorithme génétique prend très peu de temps à converger (30 générations). Temps de calcul: < 1 minute. 5700 5600 5500 5400 0 10 20 30 40 50 60 Generation 70 80 90 100 x = 9.3138, y = 5.0284, D = 5456.5 GIND5439 – Gabriel Cormier, Université de Moncton 36