Réalisation d?un système expert pour le diagnostic et la thérapeutique de la maladie de la lèpre.( Télécharger le fichier original )par Elvis Kiangala Insitut Superieur de Techniques Appliquées (ISTA) Kinshasa - Ingénieur en Genie Electrique orienté Informatique Appliquée 2011 |
III.9 Développement de la technologie des systèmes experts31(*)L'IA a beaucoup de branches en rapport avec la parole, la robotique, la compréhension et l'apprentissage du langage naturel, les systèmes experts, etc. les racines des systèmes experts embarquent beaucoup de disciplines ; en particulier, une des racines principales des systèmes experts est le domaine de traitement de l'information humaine, appelé la science cognitive. La cognition est l'étude de la manière dont les hommes traitent l'information. L'étude de la cognition est très importante si l'on prétend réussir des ordinateurs qui émulent les spécialistes humaines. Souvent, les spécialistes ne peuvent pas expliquer comment ils résolvent des problèmes (simplement, les solutions leur arrivent). Si le spécialiste ne peut pas expliquer comment se résoud un problème, il n'est pas possible de codifier la connaissance dans un système expert basé sur la connaissance explicite. Dans ce cas, l'unique possibilité est les programmes qui apprennent par eux-mêmes à émuler le spécialiste. Ce sont des programmes basés sur l'induction et sur les systèmes neuronaux artificiels. IV.10 FONCTIONNEMENT D'UN SYSTEME EXPERT Dans un premier temps, le système expert réçoit de l'expert toute les connnaissances relatives au problème à gérer (règles, procédures, méthodes, stratégies,...). Celles-ci sont stockées dans sa base des faits.Ensuite, l'expert décrète au système expert les règles générales à suivre pour trouver de lui-même la solution à un problème posé (déductions, conclusion,...). Le cycle de fonctionnement d'un système se décompose en quatres phrases: 1. Interaction utilisateur-moteur : l'utilisateur demande de l'aide au moteur à partir d'une interface où il introduit les données à traiter. 2. Mémorisation des données : le moteur stocke les données dans la base de faits pour traitement. 3. Raisonnement : le moteur applique une stratégie de résolution de problème définie par les règles stockées dans la base de connaissance. 4. Communication de la solution : le moteur communique à l'utilisateur la meilleure solution au problème posé par l'intermédiaire de l'interface utilisateur et attend des nouvelles instructions. IV.10.1 Classification des systèmes experts en ce qui concerne la classification, nous distinguons : · Les systèmes expert à base de règles et · Les systèmes expert par modèles IV.10.2 Technologie des systèmes experts32(*)Les experts humains sont capables d'effectuer un niveau élevé de raisonnement à cause de leur grande expérience et connaissance sur leurs domaines d'expertise. Un système expert utilise la connaissance correspondante à un domaine spécifique afin de fournir une performance comparable à l'expert Humain. En général, les concepteurs de systèmes experts effectuent l'acquisition de connaissance grâce à un ou plusieurs interviews avec l'expert ou les experts du domaine. Les humains qui enrichissent le système avec leurs connaissances ne fournissent pas seulement leur connaissance théorique ou académique mais aussi des heuristiques qu'ils ont acquises grâce à l'utilisation de leurs connaissances. Contrairement à la modélisation cognitive, les systèmes experts n'ont pas comme finalité de s'inspirer des théories du fonctionnement du cerveau humain mais ce sont des programmes qui utilisent des stratégies heuristiques pour la résolution des problèmes spécifiques. Le raisonnement effectué par un système expert doit être objet à l'inspection, et ceci en fournissant d'information sur l'état de la résolution du problème et des explications sur les choix et les décisions du système. D'un autre côté, la solution fournie par le système doit être évaluée par un expert humain et ceci dans le but de modifier l'information contenue dans la base de connaissances. III.10.3 Structure d'un système expert33(*) La structure d'un système expert est représentée par la figure ci-dessous: Moteur d'inférences Module d'acquisition Moteur d'apprentissage Base de faits Base de règles Meta-règles Base de connaissances Module d'explication Expert Cogniticien Usagers Figure III.1 : structure d'un système expert Selon la figure III.1 ci-dessus, nous avons les organes ci-après: · La base de connaissances contient les connaissances concernant la résolution du problème c'est-à-dire les faits, règles et méta-règles. Les faits : mémoire à court terme, dépendant du problème tandis que les règles : mémoire à long terme indépendant du problème, dépendant du domaine et enfin les méta-règles:mémoire à long terme indépendant du problème, voire du domaine. Une règle manipule des faits tandis qu'une méta-règle manipule des règles. · Le module d'acquisition (appelé aussi interface expert) qui sert à emmagasiner l'expertise et les règles à suivre dans la base de connaissance. . · Le module d'explication permet au système expert d'expliquer son raisonnement à chaque conclusion, chaque action, ou chaque résultat du système expert après résolution. Il est très important de remarquer la séparation faite entre les connaissances et l'inférence. - Cette séparation permet d'utiliser un codage différent, cela nous permet par exemple d'utiliser le langage naturel pour représenter les connaissances (sous forme Si .. ALORS.. par exemple). - Cette séparation permet au programmeur de se focaliser au codage des connaissances sans se soucier trop de la façon du codage du moteur d'inférence. - Cette séparation permet aussi de modifier les connaissances sans avoir un effet sur le codage du moteur d'inférence. - Cette séparation permet également de pouvoir tester plusieurs types d'inférence sur la même base de connaissances. IV.10.3 Les organes d'un système expert Nous avons vu dans la constitution d'un système expert que la base de connaissance est composée de la base de faits et de la base de règles. a) La base de faits La base de faits est la mémoire de travail du système expert. Elle est variable au cours de l'exécution et vidée lorsque l'exécution se termine. Au début de la session, elle contient ce que l'on sait du cas avant toute intervention du moteur d'inférence.Puis elle est complétée par les faits déduits par le moteur d'inférence ou demandés à l'utilisateur. Par exemples, dans le domaine médical, la base de faits pourra contenir une liste de symptômes en début de session en et un diagnostic lorsque celle-ci se terminera. · Le type d'un fait Les faits peuvent prendre des formes plus au moins complexes.Nous envisagerons que des faits élémentaires dont les valeurs possibles sont: ü Booléennes : vrai, faux ü Symboliques:c'est -à-dire appartenant à un domaine fini de symboles ü Réelles : pour représenter les faits continus Par exemple, actif est un fait booléen, profession est un fait symbolique et rénumération est un fait réel. Un système expert qui n'utilise que des faits booléens est dit d'ordre 0. Un système expert qui utilise des faits symboliques ou réels, sans utiliser des variables, est d'ordre +0. Un système expert utilisant toute la puissance de la logique du premier ordre est d'ordre 1. Exemple : Considérons le fait suivant:» le fait pour Mr. Paul d'être né à Kinshasa lui permet d'obtenir la nationalité congolaise». Représentation d'ordre 0 Un fait est une proposition, donc a une valeur booléenne. SI Paul né à Kinshasa ALORS Paul congolais Représentation en ordre 0+ Un fait est un couple (attribut, valeur) : AV SI lieu_naissance = Kinshasa ALORS nationalité = Congolaise Un fait est triplet (objet-valeur-attribut):OAV SI (Paul lieu_naissance Kinshasa) ALORS (Paul nationalité Congolaise) Représentation d'ordre 1 Un fait est une expression symbolique sans variable SI ($pers lieu_naissance Kinshasa) ALORS ($pers nationalité Congolaise) · Metafaits et metavaleurs Pour qu'un système expert puisse modéliser un raisonnement humain, il est indispensable qu'il puisse raisonner sur ses propres raisonnements, réfléchir aux faits qu'il manipule, aux formules qu'il peut construire, etc. Autrement dit, il n'est pas suffisant que le système ait des connaissances, il faut qu'il ait des métaconnaissances. Il faut par exemple qu'un système expert puisse savoir si une valeur a été attribuée à un fait. Dans la négative, cette valeur pourra être demandée à l'utilisateur. Mais si l'utilisateur ne peut pas répondre,il faudra que les système puisse le savoir afin de ne pas poser éternellement la même question. La seule manière d'attribuer une valeur à un tel fait sera alors de la déduire d'autres faits. On dira que la valeur d'un fait est : ü Connue si une valeur lui a été attribuée ü Inconnue si aucune valeur lui à été attribuée et si aucune question à son sujet n'a été posée à l'utilisateur ü Indéterminée si le système ne lui a attribué aucune valeur et si l'utilisateur a répondu «je ne sais pas» à une question concernant sa valeur. De manière analogue, tous les faits ne doivent pas faire l'objet d'une question à la personne concernée. Il n'est pas envisageable qu'un médecin demande à son patient : «quelle maladie avez-vous?»; ni qu'un juge demande à la personne comparaissent devant lui : «à quelle peine dois-je vous condamner?» b) La base de règles C'est le savoir-faire de l'expert sous la forme de règles de production. Le système a accès à cette base pour résoudre le problème en cours de traitement. La règle de production se présente sous la forme : 1. SI condition ALORS Action 2. Si c1 et c2 et..... en ALORS A · Conditions (encore appelées prémisses), teste l'appartenance des faits à la base des faits. · Action, un effet sur la base de faits (ajout ou suppression d'un fait). Ne modifie pas la base des règles. c) Le moteur d'inférence Un moteur d'inférence est un mécanisme qui permet d'inférer des connaissances nouvelles à partir de la base de connaissance du système. III.10.4 Domaines d'application Les systèmes experts ont été conçus pour résoudre certains types de problèmes comme en médecine, en droit, en chimie, en éducation etc. Nous citons par exemples en : ü Médecine : MYCIN, pour aider à la prise de décision sur les infections bactériennes du sang et la médecine interne ü Biologie : CRYSTAL et MORGEN, un système expert capable de reproduire de protéines par analyse aux rayons X ü Géologie : PROSPECTOR, étude détaillée sur les fouilles des méthodes d'exploitations ü Chimie : DRENDAL, qui produit de représentations structurales en chimie organique à partir d'un spectrogramme de masse ü Education : GUIDON, presque pareil à MYCIN, c'est pour les étudiants en médecine afin d'enseigner l'emploi des règles de MYCIN pour les stratégies adéquates de diagnostic ü Mathématique : SNARK, qui traite des problèmes de calcul intégrale ü Industrie : JONATHAN, détecte des pannes industrielles IV.10.5 Problèmes adaptés aux systèmes experts Les chercheurs ont défini un ensemble informel de critères pour déterminer si un problème est adapté ou non à être résolu par la technologie système expert : 1. Le besoin d'une solution doit justifier le coût et l'effort de la construction d'un système expert. 2. L'expertise humaine n'est pas valable dans toutes les situations dont on a besoin. 3. Le problème peut être résolu en utilisant une technique de raisonnement symbolique. 4. Le domaine est bien structuré. 5. Le problème ne peut pas être résolu en utilisant des méthodes traditionnelles de calcul. 6. La coopération entre experts de domaine existe. 7. Le problème est de taille considérable. III.10.6 Processus d'ingénierie de connaissance Les personnes concernées par le développement d'un système expert sont : - l'ingénieur de connaissance qui est un expert en langage IA. Son rôle est de trouver les outils et les logiciels nécessaire pour l'accomplissement du projet, d'aider l'expert du domaine à expliciter sa connaissance et d'implanter cette connaissance dans la base de connaissances. - l'expert du domaine qui fournit les connaissances nécessaires liées au problème. - l'utilisateur final dont le rôle est de spécifier l'application et de déterminer les contraintes de la conception. En général, le travail commence par un interview entre l'ingénieur de connaissance et l'expert du domaine. L'ingénieur essaie de comprendre le domaine, d'observer l'expert pendant son travail. Une fois l'expert ait obtenu des informations complètes et précises sur le domaine ainsi que sur la résolution du problème, il pourrait entamer la tâche de la conception du système. Il choisit la façon de la représentation des connaissances, Il détermine le type du raisonnement et la stratégie utilisée (chaînage avant ou arrière, en profondeur ou en largeur). Il conçoit de même l'interface utilisateur. Le prototype obtenu doit être capable de résoudre correctement un problème typique. Ce prototype doit être testé et affiné par l'ingénieur et l'expert du domaine en même temps. Le prototype peut être complété au fur et à mesure en ajoutant des nouveaux éléments dans la base de connaissance. Souvent, à la fin de ce travail progressif, l'ingénieur serait amené à refaire une version plus propre qui réécrit la connaissance d'une façon plus sommaire. III.10.7 Acquisition de connaissance Dans son rôle, l'ingénieur de connaissance doit traduire l'expertise informelle en un langage formel adapté au mode du raisonnement du système. Plusieurs points doivent être soulevés concernant l'acquisition des connaissances : 1. La compétence humaine n'est pas souvent accessible via la conscience. Avec l'expérience acquise, la compétence et la performance d'un expert s'installe et opère dans l'inconscient. Par conséquence, il est difficile aux experts d'expliciter son savoir-faire. 2. L'expertise humaine prend souvent la forme du savoir comment plus que la forme du savoir quoi. 3. L'expertise humaine représente un modèle individuel ou un modèle de communauté. Ces modèles sont soumis aux conventions et aux procédés sociaux. 4. L'expertise change et peut subir des reformulations radicales. A cause de la complexité et de l'ambiguïté posées par le problème de l'acquisition de connaissances, l'ingénieur de connaissances doit avoir un modèle conceptuel lui permettant de faire la liaison entre l'expertise humaine et le langage de programmation, ce modèle constituera ce qu'on appellera représentation de connaissances. * 31 Michelle SEACH, op.cit,p2. * 32 www.igm_univ-mlv.fr * 33 PHIL. REITZ, les systèmes experts, cours Dea Ing IA, département ARC, LIRMM, 1993, p10-15. |
|