Systèmes experts

Site: Campus Numérique UABT
Cours: Intelligence Artificielle
Livre: Systèmes experts
Imprimé par: Visiteur anonyme
Date: vendredi 22 novembre 2024, 06:19

1. Définition

•Programme qui permet l’exploitation des connaissances dans un domaine précis et rigoureusement limité.
•Tel un expert humain, un SE n’a aucune prétention en dehors de sa spécialité.
•Un système informatique où les données (la base de connaissance) sont bien séparées du programme qui les manipule (le moteur d’inférences).
•La base de données des connaissances ainsi que le système d’inférence sont fondés sur la logique et l’inférence logique
•Outil capable de reproduire les mécanismes cognitifs d'un expert, dans un domaine particulier
•Logiciel capable de répondre à des questions, en effectuant un raisonnement à partir de faits et de règles connus. Il peut servir notamment comme outil d'aide à la décision

2. Historique

Dendral

•Premier système expert
•Créé en 1965
•Créé par les informaticiens Edward Feigenbaum, Bruce Buchanan, le médecin Joshua Lederberg et le chimiste Carl Djerassi.
•Permettait d'identifier les constituants chimiques d'un matériau à partir de spectrométrie de masse et de résonance magnétique nucléaire.

Mycin

•Le plus connu, créé en 1972
•Système expert de diagnostic de maladies du sang et de prescription de médicaments, avec un vrai moteur et une vraie base de règles.
•Les règles étaient affectées de coefficients de vraisemblance qui donnaient à chacune d'entre elles un poids particulier face aux autres.

3. Structure

Les systèmes experts sont généralement constitués de :

  • Une base de connaissance (knowledge base)
  • Une interface (interface)
  • Un moteur d’inférence (Inference Engine)

3.1. Base de connaissance

  • Ensemble des données qui sont utilisées par le moteur d'inférence.
  • C’est là qu’est stocké le savoir du système propre au domaine de connaissance.
  • Elle rassemble toutes les connaissances d’un expert du domaine considéré.
  • Elle contient:
    • Les standards d'engagement (connaissances de l'expert) :  l’informations de base et de configuration du système, mesures, lois, paramètres, données contractuelles.
    • Les règles d'inférence (savoir-faire) : ensemble des règles logiques de déduction utilisées par le moteur d'inférence.
    • La base de faits (expérience): Historisation et statistique des faits effectifs, des décisions et des buts. Le raisonnement va se baser sur ces faits pour déduire des conclusions. 
La base de faits contient l’ensemble des données de départ sur lequel le système va commencer à travailler. 

Cette base s’enrichit au fur et à mesure des déductions faites par le système.
Cet espace de travail est un peu la mémoire à court terme, le système y stocke aussi les règles en attente, les sous-problèmes …

3.2. Interfaces

•Dialogue entre l’expert, chargé de la création de la base de connaissances et la machine.

•Dialogue entre l’utilisateur et le système pour l’entrée des faits de la base de faits à exploiter.

3.3. Moteur d'inférence

  • Mécanisme qui permet d'inférer des connaissances nouvelles à partir de la base de connaissances du système.
  • Cerveau du système
  • Sert à déclencher les règles et à les enchaîner les unes après les autres.
  • Les deux mécanismes les plus employés pour déclencher les règles sont :
    • Le chaînage avant
    • Le chaînage arrière
•Il est important que la base de connaissance reste indépendante du moteur d'inférence (sauf si elle contient les règles d'inférence elles-mêmes).
•Ce moteur d’inférence est écrit dans un langage d’intelligence artificielle, tels que LISP ou PROLOG.

4. Fonctionnement



1.Etude de faisabilité

  Evaluer le domaine et les risques d'échecs de la mise en place et de succès de l'outil auprès des professionnels et futurs utilisateurs.

2.Extraction des données

  Dialogue entre le cogniticien et l'expert afin d'extraire de ce dernier toutes ses connaissances et son savoir-faire.

3.Formalisation

  Formaliser les connaissances qu'il a récolté.

4.Design et développement

  Faire appel aux développeurs informatique afin de commencer à définir le cahier des charges précis, la base de connaissance et les règles d'inférence.

5.Tests et optimisations

  Une série de tests auprès des experts mais aussi auprès d'utilisateurs lambdas qui sont sensés à partir de cet outil fournir les résultats d'un expert débutant.

L'acquisition des données est une tâche longue et fastidieuse.

•Les algorithmes de manipulation de faits et de règles sont nombreux et connus.
•La détermination de l'ensemble des faits et règles qui vont composer la base de connaissances est un problème délicat.
•Il faut décrire le comportement d'un expert face à un problème particulier, et sa manière de le résoudre. Car ce que l'on souhaite obtenir n'est ni plus ni moins que l'expérience, la connaissance pratique de l'expert, et non la théorie que l'on peut trouver dans les livres.

4.1. Chainage avant

Chaînage avant ( Raisonnement guidé par les données ) 

  • Détecter les règles dont les prémisses sont vérifiée
  • Sélectionner la règle à appliquer 
  • Appliquer la règle 
  • Recommencer jusqu'à ce qu'il n'y ait plus de règle applicable
  • Se base sur le Modus Ponens: 

si f1 est vrai et f1 Þ f2 alors f2 est vrai.



4.2. Chainage arrière

Chaînage arrière ( Raisonnement guidé par le but)

  • Détection des règles qui concluent à ce but 
  • Résolution de conflits 
  • Application de la règles (les éléments des prémisses deviennent de nouveau sous- buts à atteindre). 
  • Arrêt : pile vide ou aucune règle applicable
  • Se base sur le Modus Tollens:

    Si f2 est non vrai et si f1 Þ f2 alors f1 est non vrai.



4.3. Comparaison

•Capacité d’explication et la transparence est plus développée en chaînage arrière qu’en chaînage avant parce que toutes les questions sont posées pour répondre à des sous buts.
•En chaînage avant les questions sont posées selon l’ordre de présentation des règles dans la base de connaissances et peuvent parfois refléter une incohérence.
•Le système peut poser des questions inutiles en chaînage avant, ce qui n’est pas le cas en chaînage arrière.