Système expert

Un système expert est un outil capable de reproduire les mécanismes cognitifs d'un expert, dans un domaine particulier. Il s'agit de l'une des voies tentant d'aboutir à l'intelligence artificielle.

Plus précisément, un système expert est un logiciel capable de répondre à des questions, en effectuant un raisonnement à partir de faits et de règles connues. Il peut servir notamment comme outil d'aide à la décision. Le premier système expert a été Dendral. Il permettait d'identifier les constituants chimiques.

Composition 
Un système expert se compose de 3 parties :
 une base de faits ;
 une base de règles ;
 un moteur d'inférence.

Le moteur d'inférence est capable d'utiliser faits et règles pour produire de nouveaux faits, jusqu'à parvenir à la réponse à la question experte posée.

La plupart des systèmes experts existants reposent sur des mécanismes de logique formelle et utilisent le raisonnement déductif. Pour l'essentiel, ils utilisent des règles d'inférence de la forme suivante (syllogisme) :
 si P est vrai (fait ou prémisse) et si on sait que P implique Q (règle) alors, Q est vrai (nouveau fait ou conclusion).

Les plus simples des systèmes experts s'appuient sur la logique des propositions (dite aussi « logique d'ordre 0 »). Dans cette logique, on n'utilise que des propositions, qui sont vraies, ou fausses. D'autres systèmes s'appuient sur la logique des prédicats du premier ordre (dite aussi « logique d'ordre 1 »), que des algorithmes permettent de manipuler aisément.

Il faut maintenir une certaine cohérence de l'ensemble des règles:
 Incompatibilité (R1: Si A et B alors C; R2: Si A et B alors D;)
 Redondance (R1: Si A alors B; R2 : Si C alors B; Sauf si on applique des coefficients de certitude différents)
 Bouclage (R1: Si A alors B; R2: Si B alors C; R3: Si C alors A;)

Enfin, pour faciliter la description de problèmes réels sous forme de règles logiques, on a recours à des opérateurs ou des valeurs supplémentaires (notions de nécessité/possibilité, coefficients de plausibilité, etc.).

Moteurs d'inférence 

Il existe de nombreux types de  moteurs, capables de traiter différentes formes de règles logiques pour déduire de nouveaux faits à partir de la base de connaissance.

On distingue souvent trois catégories, basées sur la manière dont les problèmes sont résolus :
 les  moteurs - dits à « chaînage avant » - qui partent des faits et règles de la base de connaissance, et tentent de s'approcher des faits recherchés par le problème.
 les moteurs - dits à « chaînage arrière » - qui partent des faits recherchés par le problème, et tentent par l'intermédiaire des règles, de « remonter » à des faits connus,
 les moteurs - dits à « chaînage mixte » - qui utilisent une combinaison de ces deux approches chaînage avant et chaînage arrière.

 peuvent être partiellement pilotés ou contrôlés par des méta-règles qui modifient leur fonctionnement et leurs modalités de raisonnement.

Pour répondre à des objectifs spécifiques, ces moteurs d'inférence peuvent être doublés dans certains Systèmes Experts dits "inverses" ou "bimoteurs", ou encore être complétés par d'autres systèmes
d'analyse pour constituer des Systèmes Experts dits "hybrides"  .

Acquisition des connaissances 
Si 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. Comment décrire le comportement d'un expert face à un problème particulier, et sa manière de le résoudre, là est la question. 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 ni exclusivement les règles logiques d'inférence. Equivalents des méthodes d'analyse de l'informatique traditionnelle, des méthodes d'acquisition des connaissances sont développées.

Les systèmes d'apprentissage automatique constituent une voie nouvelle d'acquisition des connaissances.

Complexité et contrôle des systèmes experts 

L'intelligence artificielle permettra peut-être de résoudre le problème de la complexité, mais avec le risque d'une perte de contrôle des systèmes dits "intelligents" .

Historique 
Le premier système expert fut Dendral en 1965, créé par les informaticiens Edward Feigenbaum, Bruce Buchanan, le médecin Joshua Lederberg et le chimiste Carl Djerassi. Il permettait d'identifier les constituants chimiques d'un matériau à partir de spectrométrie de masse et de résonance magnétique nucléaire, mais ses règles étaient mélangées au moteur. Il fut par la suite modifié pour en extraire le moteur de système expert nommé Meta-Dendral.

En 1972-73 fut créé , un 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. Ses règles étaient affectées de coefficients de vraisemblance affectant chacune d'entre elles d'un poids relatif aux autres. Le moteur produisait un chaînage avant simple tout en calculant les probabilités (au sens bayésien) de chaque déduction, ce qui rendait difficile d'expliquer la logique de son fonctionnement et encore plus d'en détecter les contradictions. Quant aux experts, ils étaient obligés de trouver des poids de vraisemblance pour chacune de leurs inférences, démarche complexe, peu naturelle et éloignée de leur mode de raisonnement, en tout cas conscient.

Opérationnel dans les années 1990 le projet Sachem (Système d'Aide à la Conduite des Hauts fourneaux En Marche, chez Arcelor) était conçu pour piloter des hauts-fourneaux en analysant les données fournies en temps réel par un millier de capteurs. Le projet a coûté entre 1991 et 1998 environ 30 millions d'euros, et le système économise environ  par tonne de métal.

Applications 
Les systèmes experts sont utilisés dans de nombreux domaines. En voici quelques exemples :
 des moteurs de recherche sur Internet, qui permettent à partir d'une requête, de trouver les pages Web correspondantes ;
 des outils spécialisés pour aider un médecin à diagnostiquer une maladie ;
 des outils spécialisés pour aider un ingénieur à concevoir un produit. Les premiers ont été développés par l'IBM et baptisés Dendral, puis Mycin, etc. ;
 des programmes destinés aux joueurs d'échecs ou de go (comme le programme Deep Blue ), qui peuvent analyser les positions du jeu et proposer le meilleur coup possible pour le joueur ou l'ordinateur ;
 des outils destinés à l'aide à la décision pour les entreprises ;
 des systèmes de recommandation (pour les achats en ligne par exemple) utilisant la logique floue et un chaînage arrière ;
 le logiciel OpenCog Prime, projet open source visant à construire une intelligence artificielle générale, dont la partie principale est basée sur un système expert hétérogène, utilisant différents types de moteurs d'inférence.
 des systèmes permettant la reconnaissance vocale
 des systèmes permettant le traduction automatique
 des systèmes permettant le traitement du langage naturel
 etc.

Notes et références

Annexes

Voir aussi 
 Base de connaissances
 Heuristique
 Intelligence artificielle
 Moteur d'inférence
 Sciences cognitives
 Système de classeurs

Bibliographie 
 James Ignizio, Introduction to Expert Systems (1991), .
 Joseph C. Giarratano, Gary Riley, Expert Systems, Principles and Programming (2005), .
 Peter Jackson Introduction to Expert Systems (1998), .
 Développer un système expert de Michel Le Seac'h, 1989, édiTests.
 Système experts : vers la maîtrise technique, Alain Bonnet, Jean-Paul Haton, Jean-Michel Truong. InterÉditions, 1986.
 .

Intelligence artificielle
Expert