Intelligence artificielle et systèmes experts
1
COURS D’INTELLIGENCE ARTIFICIELLE
A L’usage des étudiants de PREMIERE LICENCE EN SCIENCES INFORMATIQUES Par Prof. Docteur KASORO MULENDA NATHANAEL e-mail :
[email protected] UNIVERSITE DE KINSHASA FACULTE DES SCIENCES / DEP. DE MATH & INFORMATIQDUE
OBJECTIFS DU COURS
-
Présenter la genèse de l’Intelligence Artificielle et des systèmes intelligents Définir le concept « Intelligence Artificielle » Etablir les ressemblances et les dissemblances entre les systèmes classiques et ceux issus de l’Intelligence Artificielle Présenter les principaux domaines d’application de l’Intelligence Artificielle Introduire la notion de l’Intelligence Artificielle Distribué et présenter ses domaines d’applications Décrire l’architecture des systèmes issus de l’Intelligence Artificielle et discuter d iscuter les différents modules Expliquer la transition des bases de données vers les bases de connaissances
Le but de ce cours est de vous faire appréhender les techniques utilisées pour résoudre des problèmes liés à l'analyse, au traitement et à l'apprentissage de connaissances. Cette problématique s'inscrit dans le cadre général des sciences cognitives, dont le souci est l'étude de l'intelligence. Ces disciplines regroupent des domaines aussi variés que la philosophie, la psychologie, la biologie ainsi que des sciences pour l'ingénieur telles que l'informatique et la robotique. Depuis les premiers ordinateurs, il y a en effet eu une interaction forte entre les sciences qui essayaient de comprendre le fonctionnement de l'intelligence, et celles qui tâchaient d'en reproduire le fonctionnement. PRE REQUIS
-
Notions sur les bases de données Notions sur les langages de programmation Notions sur la logique et la logique mathématique
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
2
MODES D’INTERVENTION
Le cours sera donné sous forme théorique : exposés du professeur, sous forme d’exercices surtout sur la conception des bases de connaissances et sous forme de séminaires. MODES D’EVALUATION
Le cours sera évalué de la manière suivante : -
Sous forme de travaux réalisés pendant l’année (Présence aux cours, aux T.P.) Sous forme d’exposés (Par groupe d’étudiants, les étudiants choisissent un thème, le développent et l’exposent avant les examens) Sous forme d’interrogation et d’examen oral et / ou écrit
CONTENU INTRODUCTION CHAPITRE I CHAPITRE II CHAPITRE III CHAPITEE IV CHAPITRE V CHAPITRE VI CHAPITRE VII CHAPITRE VIII
: GENERALITES GENERALITES SUR L’INTELLIGENCE ARTIFICIELLE : DOMAINES DE L’INTELLIGENCE ARTIFICIELLE : PRINCIPES DE BASE DE L’INTELLIGENCE ARTIFICIELLE : DES BASES DE DONNEES VERS LES BASES DE CONNAISSANCES : LA ROBOTIQUE : LES RESEAUX DE NEURONES : L’INTELLIGENCE ARTIFICIELLE DISTRIBUEE : LES LANGAGES D’INTELLIGENCE ARTIFICIELLE
REFERENCES I. OUVRAGES Databases, a deductive deductive approach approach », 1. Gallaire H., Minker J., Nicolas J.M., « Logic and Databases, Maison ACM Computing Surveys, Juin 1984, p. 153 – 155 2. Jack Challoner, “L’ Intelligence Artificielle”, un guide d’initiation au future de l’Informatique et de la Robotique, DK Focus Science, 2002 3. Ernst C., « Les Systèmes S ystèmes Experts en Gestion », Masson, Paris 4. Karkan J. M. et all, “Systèmes Experts”, Masson, Paris 5. Abel Jacques, « Contribution à l’élaboration d’une méthode de développement pour les Systèmes Experts, thèse de doctorat 6. Françoise Folgeman, Soulie Sligos, « Introduction aux Réseaux de Neurones », Yaoundé, 1995
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
3
7. Madou N., « Un Shell pour la construction d’un Système Expert dans un environnement Objet, Tizi – Ouzou, Algérie 8. Jack Challoner, « L’Intelligence Artificielle : Un guide guide d’initiation au futur de l’informatique et de la robotique », Edition Française, France, 2003. 9. Claire REMY, « L’intelligence artificielle », Dunod, Paris, 1994. 10. Jean – Marc ALLIOT, Thomas Tho mas SCHIEX, « Intelligence artificielle et Informatique théorique », CEPADUES-EDITIONS, in Collection Intelligence Artificielle, TOULOUSE, France. II. COURS, REVUE, ACTES, JOURNEES
1. Des Bases de données vers les Bases de connaissances, 3ième Journées francophones sur l’Informatique, Grenoble, janvier 1984, P. 3 – 14. 2. Revues « Recherche Spéciale » sur l’Intelligence Artificielle 3. Kasoro N., « Etude comparative c omparative entre les systèmes informatiques classiques et les systèmes issus de l’Intelligence Artificielle » 4. Luhandjula M.K., « Cours d’Intelligence Artificielle », 1997 – 1998 5. Mbuyi M., Kasoro N., « Cours d’Intelligence Artificielle », Cycle d’Informatique Appliquée, Unikin, Dépt de Math – Informatique, 2000 – 2001 6. Kasoro N., « Cours d’Intelligence Artificielle », ULK 15 1 5 ième rue Limete, 2002 – 2003 7. Touzet C., « Les Réseaux de Neurones Artificiels », juillet 1992
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
4
INTRODUCTION
Intelligence Artificielle. Que n’a-t-on imaginé, rêvé, à partir de l’association de ces deux termes ? La possibilité pour l’homme de créer un être à son image, de fabriquer des machines qui pourrait penser, raisonner, comprendre, apprendre, décider, voire rire ou aimer à notre place. Bref, reproduire les fonctions intelligentes de l’homme, certaines fonctions biologiques. L’intelligence Artificielle devait tout régler : plus besoin de programmer, les systèmes allaient fonctionner pratiquement tout seuls, sans jamais se tromper. Les statues vivantes ou parlantes de l’Antiquité et les automates des siècles passés reprenaient consistance, et l’on voyait se profiler l’ombre de Hal, l’ordinateur tout-puissant décrit par Arthur Clarke dans 2001 l’Odyssée de l’espace. Après plus de 30 ans de recherches et peu d'applications significatives, l'Intelligence Artificielle est devenue un des thèmes porteurs de l'informatique. De nombreux industriels manifestent leur intérêt IBM avec CLP(#MATH199#), Bull/Siemens/ICL avec CHIP, des entreprises spécialisées se sont créées (Delphia à Grenoble, Prologia à Marseille, Cosytec à Orsay, BIM en Belgique ...). Devant cet état de faits, les réactions vont du scepticisme à l'émerveillement le plus complet. Cette dénomination faisant appel au terme « Intelligence », notion elle-même relative et difficile à définir, est souvent controversée ; certains lui préfèrent celle de « Systèmes à Base de Connaissances », voire le terme d’ « Informatique avancée ». Si les grands programmes d’IA sont rares, de nombreux systèmes sont intégrés à des applications complexes, dont les utilisateurs se servent sans même le savoir. En fait, l’IA n’est qu’une technique informatique parmi tant d’autres. Or l’évolution actuelle de l’informatique n’est pas de faire des ordinateurs de plus en plus puissants, mais bien plutôt de les rendre, sinon plus intelligents, du moins plus « conviviaux ». C’est ainsi que l’IA investit peu à peu tous les domaines d’activité, de la gestion à la productique, en passant par les applications financières ( analyse et diagnostic), le contrôle de processus industriel ( impliquant la vision, le traitement du signal et la robotique), la bureautique ( traitement, analyse ou comportement automatique de documents par système expert, gestion automatique de messagerie et d’agendas), l’administration ( contrôle d’organismes comme la sécurité sociale, aide à l’application de règlements), les réseaux (routage), le génie logiciel et l’aide à l’exploitation informatique…. C’est grâce à l’IA que nous pouvons interroger efficacement le minitel, que les trains arrivent à l’heure, que les industriels peuvent économiser l’énergie en régularisant les processus, que des défauts sont diagnostiqués et rapidement réparés sur des machines complexes, que des chaînes de fabrication peuvent fonctionner sans intervention humaine, que les pilotes d’avion sont capables de faire face aux situations les plus complexes, que la recherche scientifique ( physique des particules, génétique, biochimie….) peut avancer à grands pas. Ainsi, plutôt que d’essayer de reproduire l’intelligence humaine, l’IA a pour objectif d’apporter des réponses, soit lorsque les besoins de l’utilisateur n’ont pas trouvé de solution dans le cadre de l’informatique classique, soit quand ces besoins ont été générés par cette informatique ellemême. Le premier cas se présente lorsqu’il s’agit de résoudre des problèmes particulièrement difficiles ou complexes dans un domaine bien délimité (systèmes experts) ou des problèmes assez simples, mais dans un domaine mal formalisé (traitement du langage naturel ou reconnaissance de Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
5
formes, par exemple). Le deuxième cas exige la réalisation d’interfaces homme-machine simple, naturelles et conviviales, alors que les machines sont de plus en plus difficiles. Ce sont surtout les rapports homme-machine qui sont appelés à changer dans les prochaines années, précisément grâce à l’IA. L’interface entre l’homme et la machine se situe essentiellement au niveau du clavier et de l’écran, bien que d’autres périphériques, comme la souris, le crayon électronique ou le cadre tactile, soient de plus en plus souvent utilisés. L’un des objectifs de l’IA est d’ « humaniser » la machine : permettre à l’homme de dialoguer avec un ordinateur comme avec son semblable. Cela implique un certain nombre de caractéristiques de la part de la machine : possibilité de s’adapter à diverses modalités de dialogue ( oral, écrit, en différentes langues), capacité d’acquisition de connaissances, de reconnaissance de l’interlocuteur ou de l’environnement, d’explication, d’interprétation…Ces aptitudes mettent en jeu un grand nombre de techniques d’IA : traitement du langage naturel, écrit ou oral, reconnaissance de formes, apprentissage, autoadaptation…, ainsi que l’analyse de situations, d’images, de problèmes. Elles constituent l’un des grands défis de l’informatique du futur. Actuellement les ordinateurs se présentent sous plusieurs formes. Certains peuvent écrire sous la dictée ou corriger des fautes, d’autres sont des joueurs d’échecs et peuvent battre les plus grands maîtres. Les robots sont contrôlés par des ordinateurs autonomes, se déplacent sur d’autres planètes grâce à un minimum d’informations fournies par des ingénieurs depuis la terre. Les tâches autrefois exécutées par l’homme sont actuellement exécutées par des machines. Cela signifie que ces machines sont intelligentes ? Les ordinateurs pourront – ils être conscients de ce qu’ils font ? Existera –t – il de vrais cerveaux électroniques, avec une volonté propre, des émotions ou un sens moral ? Quelle pourra être l’utilité de tels ordinateurs et quelles menaces représentent – ils ? L’Intelligence Artificielle est une science qui essaie de traiter toutes ces questions. L'objectif de l'Intelligence Artificielle est
double : le premier concerne l'analyse théorique et pratique des processus cognitifs ; le second s'intéresse à la réalisation (``hard'' et ``soft'') d'artéfacts intelligents. L’Intelligence Artificielle se place parmi les sciences ``sociales'' (psychologie, linguistique, philosophie), ``naturelles'' (neurobiologie, physiologie), et a une approche oscillant entre une méthode rigoureuse et un bricolage effréné. Déjà le terme ``Intelligence Artificielle'' est assez flou, puisque si l'artificiel a été conçu par la main de l'homme (ou d'une, voire plusieurs, machine(s) conçue(s) par ...) par opposition au naturel ; la notion d'intelligence est quant à elle difficile à préciser : un plombier est-il plus ou moins ``intelligent'' qu'un mathématicien ? Les études psychologiques ont démontré que cette appellation (non contrôlée) recouvre de nombreuses capacités très différentes: a. pouvoir d'abstraction, b. résolution de problèmes, Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
6
c. adaptation (rapide) à un nouvel environnement, d. culture générale, e. raisonnement, créativité .... De plus, une fois connus les mécanismes permettant d'accomplir une tâche, l'homme a tendance à en nier la qualité d'intelligence. En résumé, l’Intelligence Artificielle peut être vue comme ``l'utilisation de l'ordinateur comme moyen de simulation des processus naturels ou comme support des capacités ordinairement attribuées à l'intelligence humaine''. L'objectif est donc vaste puisqu'il englobe aussi bien la capacité qu'aurait une machine à jouer aux échecs, traduire un texte, ou découvrir, sur une photo la présence de Monsieur Untel. Son but est d'analyser les comportements humains dans les domaines de la compréhension, de la perception, de la résolution de problèmes afin de les reproduire sur machine. Parmi les raisons qui ont milité pour la création de l’Intelligence Artificielle, nous pouvons citer : -
Le désir d’une technologie plus conviviale Le besoin d’une automatisation plus complète a fin que des robots intelligents puissent remplacer les hommes pour des tâches répétitives ou dangereuses, d’analyser intelligemment beaucoup d’informations et d’améliorer les loisirs, pour que les jeux électroniques paraissent plus réels.
Le présent texte n'est qu'un brouillon nullement exempt de fautes tant syntaxiques que grammaticales. Les opinions avancées n'engagent que moi. Ceci est la version 4 de ces notes de cours. Certaines parties sont en cours de rédaction, parfois ne transparaissent que les grandes lignes (dans certains cas réduites à la tête de chapitre), les éléments complémentaires seront donnés en cours. Ces notes sont, comme l'état de l'art qu'elles décrivent, provisoires. Toutes améliorations, critiques, commentaires seront les bienvenus. Ce cours s’adresse principalement aux étudiants en informatique et à tous ceux qui veulent s’initier à l’intelligence artificielle, et à ceux qui en connaissent déjà les principes et cherchent, par exemple, à approfondir leurs connaissances ou envisagent d’appliquer certaines techniques à un problème particulier. L'objectif avoué pour les étudiants est de les sensibiliser à cette nouvelle approche et leur donner envie d'approfondir les sujets brûlants.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
7
CHAPITRE I : GENERALITES SUR L’INTELLIGENCE ARTIFICIELLE I.1.GENESE DE L’INTELLIGENCE ARTIFICIELLE 1. Histoire ancienne
L’histoire de l’intelligence artificielle ou des machines intelligentes remonte bien plus loin dans le temps. Déjà dans l’antiquité, apparaissent des artefacts d’êtres vivants : En Egypte ancienne, c’est un automate qui désignait, parmi les nombreux descendants du pharaon, celui qui va lui succéder après sa mort. En Grèce, Homère imaginait, avec son Héphaïtos, un androïde, conçu pour servir d’échanson dans l’Olympe. Le chant de l’Illiade est l’une des premières mentions d’une activité relevant de l’Intelligence Artificielle. Si l’on croit à la légende, le dieu de feu appelé Héphaitos avait construit des tables à trois pieds munis de roulettes et qui pouvaient faire des va et vient toutes seules dans le palais du dieu. Cette table est en fait l’ancêtre du Robot à trois roues inventé par l’Institut de Recherche Stanford des Etats Unis. Ce même dieu avait également fabriqué des femmes en or pour s’en servir. Elles étaient douées de raison et capables de parler et de travailler. Elles étaient si parfaites qu’elles pouvaient être prise pour des femmes réelles. La légende de Pygmailon relate que le sculpteur chypriote, tombé amoureux d’une statue, parvint, avec l’aide de la déesse Aphrodite, à la rendre vivante. Philon d’Alexandrie met en pratique les découvertes d’Archimède pour construire des automates pondéraux. Héron d’Alexandrie étudie les lois d’équilibre à partir d’automates. Au Moyen Age, l’automate se trouve à la charnière entre science, légende et alchimie. A l’époque des cathédrales, des horloges astronomiques et des grands mystiques, les pas du Golem dans la tradition juive, ce géant d’argile doté d’une âme par la magie du signe cabalistique gravé sur son front, résonnent dans les rues crépusculaires du vieux Prague…A la Renaissance, le rationalisme reprend le dessus : les croquis de Léonard de Vinci, où est étudiée la composition des mouvements, sont parfaitement compréhensibles par un esprit cartésien. C’est aussi au 16e siècle que l’on enregistre les premières tentatives de modélisation du corps humain par la médecine. Au 17e siècle, Descartes imagine un « homme machine », sorte d’automate basé sur un comportement algorithmique. Les joueurs de flûte et de tambourin, construits par Jacques Vaucanson au 18e siècle, reproduisent précisément les mouvements de musiciens humains, mais ils ne font qu’appliquer les lois de la mécanique, qui sera découverte et analysée un siècle plus tard. Mozart lui-même avait imaginé un automate pour composer des mélodies : sur une table spéciale, connue sous le nom de Musikalische Würfelspiel , on pouvait jouer aux dés les mesures successives d’une partition. Certains automates auraient été capables de parler ou de participer à des jeux de réflexion ; cependant, derrière la machine se cachait sans doute un homme chargé de l’actionner et de lui communiquer son intelligence. Par ailleurs, les « lois de la pensée » sont formalisées très tôt, avec la logique, dont on peut faire remonter l’origine à Aristote au 4e siècle avant J.C. Cette discipline na va évoluer réellement qu’à partir de Descartes (1596-1650), Leibniz (1646-1716) et Pascal (1623-1662). En tant qu’inventaire de la machine à calculer, ce dernier peut même être considéré comme le père de l’informatique. Au 19e siècle, Boole (1815-1864) énonce les règles du calcul binaire, qui seront à la Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
8
base du fonctionnement des ordinateurs. Charles Babbage (1792-1871) concrétise l’idée de Pascal en posant les principes de fonctionnement de la machine à calculer : la «machine analytique ». Ce n’est qu’au 20e siècle, avec John Von Neumann (1903-1957), que se fera le passage de la machine à calculer à l’ordinateur (1943), grâce au principe de la programmation des machines (1946). Neumann développera d’ailleurs l’analogie entre l’ordinateur et le cerveau dans ses ouvrages, ses cours et conférences. Les recherches en psychologie, qui commencent au 19e siècle, constituent un autre axe. C’est de la convergence entre ces différentes approches que va naître l’Intelligence Artificielle. L’Intelligence Artificielle entra dans l’histoire avec l’apparition des premiers ordinateurs et fit ses premiers pas dans le domaine des jeux et de la démonstration des théorèmes. Le rêve de l’humanité c’était de « faire réaliser par une machine les tâches qui jusque là étaient réservées à l’homme ». Par exemple jouer aux échecs, traduire un texte , découvrir que sur une photo il y a monsieur un tel sur sa bicyclette devant un jardin , etc. L’Intelligence Artificielle se donnait aussi comme objectif d’analyser les comportements humains dans les domaines de la compréhension, de la perception, de la résolution des problèmes, afin de pouvoir ensuite les reproduire à l’aide d’une machine. En 1950, apparurent les tortues de Grey Walter, puis le renard d’Albert Ducrocq qui était capable de détecter la lumière. Ce fut Ducrosq qui fut le premier à proclamer l’ère des robots. Pour éviter que cette intelligence ne devienne dominatrice, Issac Assimov mis au point les trois célèbres lois de la robotique suivantes : - Un robot ne peut faire du tord à un être humain - Un robot doit obéir à un être humain tant que cela ne contredit pas la loi précédente, - Un robot doit se maintenir en vie tant que cela ne contredit pas les deux lois précédente. 2. La naissance de L’Intelligence Artificielle
Dès les débuts de l’ordinateur, celui-ci est pressenti pour reproduire l’intelligence. En témoigne la dénomination « cerveau électronique » qui lui est alors attribué. Des recherches sont menées vers 1950 à cette fin. Deux tendances se sont opposées jusqu’à la fin des années soixante : les systèmes adaptatifs (connus sous le nom de réseaux neuromimétiques ou systèmes connexionnistes), dérivés de la cybernétique, dont l’un des plus fameux a été le perceptron, conçu par Franck Rosenblatt au Cornell Aeronautical Laboratory, et les systèmes experts, préconisés par Marvin Minsky et Seymour Papert, du Massachusetts Institute of Technology (MIT). Les premiers sont une tentative de modélisation des êtres vivants, dérivés des travaux des cybernéticiens, notamment Norbert Wiener, dans les années quarante. Les seconds consistent à émuler par un programme d’ordinateur des comportements intelligents ; c’est l’approche symbolique ou à base de connaissances, dont on peut faire remonter l’origine au mathématicien Alan Turing en 1950. Cette dernière approche a fini par supplanter la première dans les années soixante, en raison des progrès technologiques des ordinateurs et des performances des logiciels. Durant cette éclipse quasi-totale de l’approche adaptative, les systèmes experts ont connu un développement considérable, notamment au cours des années quatre-vingt.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
9
3. Les premières applications
La première application envisagée en IA fut la recherche de techniques générales de résolution de problèmes, indépendantes du domaine considéré : General Problem Solver . A la même époque, Newell et Simon développement un démonstrateur de théorèmes en logique, Logic Theorist , et un programme d’échecs. Le premier langage pour l’IA naît aussi dans ces années là. Les recherches se sont ensuite focalisées dans le domaine du traitement du langage naturel et les premiers programmes de traduction automatique virent le jour, mais les résultats ne sont guère concluants. L’ambition des chercheurs se limita désormais à des problèmes plus restreints et assez bien définis ; ils étudient notamment les mécanismes mis en jeu par un expert humain pour résoudre un problème réel dans un domaine d’activité bien précis. Le premier projet en la matière fut Dendral, l’ancêtre des systèmes experts, lancé en 1965 par E.Feigenbaum à l’université Stanford ( Californie, Etats-Unis). Il avait pour objectif d’aider le chimiste à trouver la structure d’un composé organique à partir de la donnée de son spectrogramme de masse et de sa formule chimique. Constatant l’énormité et la complexité du programme obtenu par les techniques de programmation classique, Feigenbaum et ses collègues ont eu l’idée de séparer explicitement les connaissances spécifiques du domaine et les mécanismes d’interprétation. De cette séparation est née la structure de base des systèmes experts. Et la méthode a ensuite été affinée avec Mycin, Système de diagnostic des maladies du sang, développé par Shortliffe à l’université de Stanford en 1976, puis Prospector , toujours à Stanford en 1979, destiné à des applications de géologie. Depuis les années quatre-vingt, avec les progrès de la modélisation mathématique de structures inspirées de la biologie, la seconde approche connaît un regain et les réseaux neuromimétiques remplacent, dans certains cas, ou complètent l’approche symbolique. 4. Les six générations de l’informatique
On distingue différentes générations de l’informatique comme dans d’autres domaines techniques. Le passage d’une génération à l’autre est marqué par un saut technologique important. En matière de logiciel, les générations sont caractérisées par le niveau d’évolution des langues. Cette évolution est plus ou moins chronologique, du moins pour les trois premières générations. Aujourd’hui coexistent la troisième, la quatrième et la cinquième générations. 4.1. La Génération zéro
C’est le début de l’informatique. La notion de logiciel est encore inexistante. La programmation des ordinateurs se fait manuellement, sur le matériel, en connectant les composants électroniques qui doivent être mis en jeu, grâce à des fiches disposées sur un panneau à l’arrière de la machine, à l’instar des centraux téléphoniques.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
10
4.2. La première Génération
Elle est marquée par l’apparition du logiciel, mais celui-ci se présente sous forme numérique (binaire) ; c’est le code machine, qui est directement compris dans l’ordinateur. 4.3. La deuxième Génération
Elle est encore très proche et est marque par l’apparition du langage d’assemblage (assembleur). C’est un langage de programmation dans lequel les commandes du code machine ont des noms qui suggèrent leurs usages. Un programme en assembleur doit être traduit en code machine avant de pouvoir être exécuté par l’ordinateur. 4.4. La troisième Génération
C’est la génération à partir de laquelle les langages informatiques se démaquent de la machine pour se rapprocher de la langue naturelle (généralement l’anglais). C’est le cas de la plupart des langages utilisés actuellement : le Cobol, Fortran, Basic, Pascal, C… Ces langages présentent l’avantage d’être relativement indépendants de la machine sur laquelle ils tournent. 4.5. La quatrième Génération
C’est la génération des langages communément appelés L4G. Ces langages s’adressent aux noninformaticiens qui souhaitent développer eux-mêmes leurs applications. Ce sont des langages déclaratifs et non des langages procéduraux, c'est-à-dire qu’ils décrivent ce qu’ils décrivent ce qui est à faire, et non les détails de la procédure. 4.6. La cinquième Génération
Cette génération marque l’apparition de l’Intelligence Artificielle. Les langages de cette génération sont donc ceux de l’IA, c'est-à-dire Lisp et Prolog. On peut y ajouter les langages orientés objets. Ce sont des langages structurés, qui se prêtent au traitement symbolique. 4.7. La sixième génération
C’est une génération de l’informatique entamée au Japon, après avoir annoncé dans les années 80 un programme de cinquième génération associant traitement symbolique et parallélisme. Il ne s’agit plus dans cette génération là de langage, ni de logiciel, mais plutôt d’associer des informations de types divers (multimédia) et connaissances à des architectures de machines spécifiques (parallélisme massif, connexionnisme….). Plusieurs disciplines ont contribué conjointement à la naissance de l’intelligence artificielle comme nous le montre le schéma suivant :
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
11
Psychologie Co nitive
Informatique
Langages
VLSI
Programmation Symbolique
Réseaux des Neurones Reconnaissance de formes
Intelligence Artificielle
Reconnaissance de la Parole
Systèmes Experts
Robotique
Instruments intelligents
Traitement du langage naturel
Apprentissage
Systèmes intelligents
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
12
QUELQUES DATES A RETENIR POUR LES SCIENCES AYANT CONCURUES A LA NAISSANCE DE L’INTELLIGENCE ARTIFICIELLE: Philosophie : • • • • •
1596-1650 : Descartes suppose que les animaux sont des sortes de machines vivantes. Les hommes sont dotés d'une âme échappant à la matière. 1646-1716 : Leibniz introduit le matérialisme. Selon lui, tout est régit par des lois physiques. 1561-1626 : Bacon et l'empirisme : tout ce qui atteint la compréhension l'est par l'intermédiaire des sens 1711-1776 : Hume construit son principe d'induction : les règles générales sont acquises par exposition à des associations répétées de leurs éléments 1872-1970 : Russel formalise les travaux de Hume et introduit le positivisme logique : le savoir est caractérisé par des liens logiques, finalement reliés aux sens.
Mathématiques : • • • • •
9ème siècle : al-Khowarazmi introduit l'algorithmique, l'algèbre et la notation arabe 1815-1864 : Boole construit l'algèbre binaire et la logique formel 1848-1925 : Frege établit la logique du premier ordre 1906-1978 : Gödel établit son théorème d'incomplétude et d'indécidabilité (il n'existe pas de procédure capable de décider qu'un non-théorème en est un). 1912-1954 : Turing montre que toute fonction calculable l'est par une machine de Turing (et donc par un ordinateur). Attention ! il existe des fonctions non-calculables.
Psychologie : • • •
1821-1894 Helmoltz, 1832-1920 Wundt : origine de la psychologie scientifique 1878-1958 Watson, 1874-1949 Thorndike : introduction du behaviorisme : le comportement d'un individu est le produit de conditionnements multiples. 1948 Tolman : Le cerveau contient des représentations internes sous forme de cartes cognitives
Automates : • • • •
1748 : Julien Offroy de la Mettrie assimile l'homme à une machine complexe 1709-1782 : Vaucanson construit des automates (canard, joueur de flûte traversière) qui donnent l'illusion d'être vivants. 1592-1635 : Schickard créé la première machine à calculer à l'aide d'engrenages (addition, soustraction, multiplications, mémorisation de résultats et dépassement de capacité). 1623-1662 : Pascal (1642) réalise la ``Pascaline'' ? Leibniz construit une machine effectuant les 4 opérations élémentaire. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts • •
13
1785-1870 : Thomas de Colmar construit ``l'arithmomètre'' 1792-1871 : Babbage réalise une ``machine analytique'' programmable grâce à des cartes de variables et des cartes d'opérations (il est à noter que Ada de Lovelace, fille de Lord Byron, fut la première personne à concevoir des programmes. C'est en son honneur que le langage Ada porte son nom).
Il faut attendre les travaux de Turing (1912-1954) pour voir apparaître la première tentative délibérée pour comprendre et reproduire l'intelligence humaine. Turing construit son action autour du paradigme fondateur consistant à affirmer que ``toute l'intelligence cognitive humaine est modélisable dans le cadre formel de la machine de Turing''. La machine de Turing est une machine abstraite capable d'effectuer des calculs. Elle est composée d'une unité de traitement et d'une mémoire qui n'est autre qu'un ruban à partir duquel la machine peut lire données et programme, stocker des informations temporaires et imprimer les résultats. Un ordinateur est donc une machine de Turing améliorée. Turing propose un test, capable, selon lui, de décelé si un système a reproduit l'intelligence humaine. Ce test consiste à faire dialoguer un humain et le système et déterminer si l'humain peut déceler si le système n'est pas humain. Informatique : • • •
1940 : Heath Robinson crée par l'équipe de Turing pour décoder les messages allemands (technologie à base de relais) 1943 : Colossus, encore créé par l'équipe de Turing (technologie à base de lampes à vide) 1940-42 : o Z3; ordinateur programmable doté du premier langage évolué o ABC; Iowa state university o Mark I, II et III; Harvard o ENIAC : University of Pennsylvania o EDVAC : Programme mémorisable (sur les conseils de Von Neumann1.2) o IBM701 o 1965-1980 Mise au point d'algorithmes efficaces. Prise de ce conscience de la grande complexité du problème o 1982 ordinateurs de la 5eme génération (Japon) pour 1992 une machine parallèle capable de raisonner.
Avec l'apparition des machines massivement parallèles le niveau de représentation de l'information utilisant des ``symboles'' est il toujours pertinent ? Intelligence Artificielle : • • • •
1943 : McCulloch et Pitts créent le modèle du neurone formel 1948 : Création de la cybernétique (science des systèmes) par Norbert Wiener. 1949 : Hebb établit la première règle d'apprentissage neuronal 1950 Shannon, 1952 Samuel, 1953 Turing : machine pour jouer aux échecs Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts • • • •
• • •
14
1956 Workshop où est né le
terme ``intelligence artificielle'' 1959 Rochester : Geometry Theorem Prover 1958 McCarthy au MIT créé le LISP et le ``time sharing''. Créé DIGITAL. 1960 John McCarthy, Allen Bewell & Herbert Simon: L'ordinateur peut être utilisé pour autre chose que des calculs ``manipuler des symboles'' (idée proposée par Ada Lovelage amie de Babbage 1842) 1969 arrêt des RNs (Minsky & Paper 1969) limitations des perceptrons 1969-1979 : systèmes experts Depuis 1986 : retour des réseaux de neurones
Les langages d'Intelligence Artificielle : • • •
Lisp 1956/58 John McCarthy au MIT Les moteurs d'inférences: l'importance de l'organisation des données (structure, liste...) Programmer à partir des données Prolog 1973 Colmerauer : Générateurs de Systèmes Experts
Le développement de l'intelligence artificielle a été conditionné d'une part par le cloisonnement des sciences du vivant et des sciences pour l'ingénieur (l'Intelligence Artificielle se réclamant des sciences exactes), et d'autre part par une orientation principalement exclusivement basée sur le paradigme de Turing. C'est pourquoi, malgré des débuts ancrés dans la biologie et la psychologie, l'Intelligence Artificielle est rapidement passé à un formalisme mathématique très poussé et s'est attaquée à des problèmes plutôt symboliques. Elle s'est d'autant plus confortée dans ces idées que les débuts de la cybernétique (Widrow60 : adaline, Rosenblatt62 : perceptron), ont conduit à une impasse du fait de la démonstration de Minsky69 de la limitation des perceptrons.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
15
I.2. DEFINITIONS DE L’INTELLIGENCE ARTIFICIELLE
1. Qu’est-ce que l’Intelligence Artificielle ?
Selon Larousse, l’intelligence est la « faculté de comprendre, de donner un sens ; l’aptitude à s’adapter à une situation, à choisir en fonction des circonstances ; la capacité de comprendre telle ou telle chose ; l’aptitude à résoudre des problèmes »….Robert y ajoute l’ « ensemble des fonctions mentales ayant pour objet la connaissance conceptuelle et rationnelle ». Pour certains, l’ « intelligence distingue l’homme de l’animal ». En fait, il y a pratiquement autant de définitions que d’individus : La capacité à résoudre des problèmes, La perception, La capacité d’apprentissage, La capacité d’adaptation, La capacité à mener une pensée abstraite ( ou l’art de la conjecture), Ou, tautologiquement parlant, ce qui peut être mesuré par des « tests d’intelligence ». Souvent, nous avons tendance à confondre « intelligence » et « intellect », « facultés intellectuelles » ou « réflexion » : « La réflexion est la puissance de se replier sur ses idées, de les examiner, de les modifier ou de les combiner de diverses manières », selon Vauvenargues (1715-1747), qui s’est penché sur la question dans son Introduction à la connaissance de l’esprit humain. L’objet de l’Intelligence Artificielle est de mettre en évidence la manière dont une machine peut être rendue « intelligence », c'est-à-dire dotée de l’une ou l’autre de ces capacités. Cette intelligence peut lui être fournie par l’intermédiaire de programmes informatiques. Tels les programmes de la machine à laver ou de la borne d’information, de la machine-outil ou du poste de travail. Quelle que soit la machine concernée, c’est toujours sur des ordinateurs que ces programmes sont développés. L’IA est donc avant tout une branche de l’informatique. L’IA n’est pas l’étude des ordinateurs, bien que ceux-ci aient été appelés, dans les premiers temps, « cerveaux électroniques ». C’est : - Soit une manière particulière de programmer (traitement de données symboliques ou de connaissances), - Soit la programmation en vue de réaliser des fonctions particulières évoquant l’intelligence (fonctions visuelles, tactiles auditives…compréhension, apprentissage, adaptation…) et permettant de doter une machine d’une certaine autonomie de fonctionnement. Plusieurs auteurs ont tentés de définir le concept « Intelligence Artificielle » comme nous pouvons le constater : L'Intelligence Artificielle (terme créé par John McCarthy), souvent abrégée avec le sigle IA, est définie par l’un de ses créateurs, Marvin Lee Minsky, comme « la construction de programmes informatiques qui s’adonnent à des tâches qui sont, pour l’instant, sont accomplies de façon plus
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
16
satisfaisante par des êtres humains car elles demandent des processus mentaux de haut niveau tels que : l’apprentissage perceptuel, l’organisation de la mémoire et le raisonnement critique ».
Pour d’autres auteurs, le concept « Intelligence Artificielle » est difficile à définir, car : •
•
L’adjectif artificiel est assurément aisé à comprendre : ce type d’intelligence est le résultat d’un processus créé par l’homme, plutôt que d’un processus naturel biologique et évolutionnaire, En revanche, la notion d'intelligence est difficile à cerner : o La capacité d’acquérir et de retenir les connaissances, d’apprendre ou de comprendre grâce à l’expérience. o L’utilisation de la faculté de raisonnement pour résoudre des problèmes, et pour répondre rapidement et de manière appropriée à une nouvelle situation, etc.
D’après BUCHAMAN ; L’intelligence artificielle est le domaine de l’informatique qui effectue les traitements symboliques et qui emploie des méthodes non algorithmiques. D’après BONNET ; L’intelligence artificielle est une discipline qui vise à comprendre la nature de l’intelligence en construisant des programmes d’ordinateurs imitant l’intelligence humaine. D’après RICH, l’intelligence artificielle est le domaine qui étudié comment faire exécuter par l’ordinateur des tâches pour lesquelles l’homme est encore toujours le meilleur. En examinant ces trois définitions, nous pouvons retenir ceci ; L’intelligence artificielle aborde les problèmes pour les quels l’être humain demeure plus performant que la machine. Ces problèmes font intervenir les divers sens (la vue, l’ouie, la parole, l’intuition etc.) L’intelligence artificielle est un sous domaine de l’informatique dont le but est d’élaborer des systèmes intelligents, c’est à dire des systèmes qui possèdent des caractéristiques associées à l’intelligence dans le comportement des humains. Plusieurs autres définitions du concept « Intelligence Artificielle » ont été proposées : L’intelligence artificielle est un ensemble de technique utilisée pour réaliser les automates adoptant une démarche proche de la pensée humaine. L’intelligence artificielle est l’étude des idées qui permettent aux ordinateurs d’être intelligent c’est à dire leur donnant la possibilité de développer des machines ou des programmes qui font preuve d’intelligence. D’une manière générale, de toutes ces définitions, nous pouvons retenir deux ambitions de l’intelligence artificielle : 1. L’hypothèse forte de l’Intelligence Artificielle qui essaie de reproduire sur une machine les capacités de l’esprit humain en matière de raisonnement à partir de n’importe quel domaine et de l’information disponible. On peut citer les réseaux des neurones, les algorithmes génériques,... Cette hypothèse touche à la simulation de l’intelligence humaine pour créer des esprits artificiels.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
17
Le concept d’Intelligence Artificielle forte fait donc référence à une machine capable non seulement de produire un comportement intelligent, mais d’éprouver une impression d'une réelle conscience de soi, de « vrais sentiments » (quoi qu’on puisse mettre derrière ces mots), et une compréhension de ses propres raisonnements . L’intelligence artificielle forte a servi de moteur à la discipline, mais a également suscité de nombreux débats. En se fondant sur le constat que la conscience a un support biologique et donc matériel, la plupart des scientifiques ne voient pas d’obstacle de principe à créer un jour une intelligence consciente sur un support matériel autre que biologique. Selon les tenants de l'IA forte, si à l'heure actuelle il n'y a pas d'ordinateurs ou de robots aussi intelligents que l'être humain, ce n'est pas un problème d'outil mais de conception. Il n'y aurait aucune limite fonctionnelle (un ordinateur est une machine de Turing universelle avec pour seules limites les limites de la calculabilité), il n'y aurait que des limites liées à l'aptitude humaine à concevoir le programme approprié. 2. L’hypothèse faible de l’Intelligence Artificielle qui essaie d’exploiter à bon escient les avancées théoriques et pratiques pour réaliser des systèmes capables d’exécuter des tâches qui nécessitent une certaine intelligence. Il s’agit par exemple des systèmes experts. Cette hypothèse tend seulement à élargir l’utilisation des ordinateurs dans des domaines variés pour concevoir des systèmes utiles. La notion d’intelligence artificielle faible constitue donc une approche pragmatique d’ingénieur : chercher à construire des systèmes de plus en plus autonomes (pour réduire le coût de leur supervision), des algorithmes capables de résoudre des problèmes d’une certaine classe, etc. Mais, cette fois, la machine simule l'intelligence, elle semble agir comme si elle était intelligente. On en voit des exemples concrets avec les programmes qui tentent de passer le test de Turing, comme Eliza. Ces programmes parviennent à imiter de façon grossière le comportement d'humains face à d'autres humains lors d'un dialogue. Ces programmes "semblent" intelligents, mais ne le sont pas. Les tenants de l'IA forte admettent qu'il y a bien dans ce cas une simulation de comportements intelligents, mais qu'il est aisé de le découvrir et qu'on ne peut donc généraliser. En effet, si on ne peut différencier expérimentalement 2 comportements intelligents, celui d'une machine et celui d'un humain, comment peut-on prétendre que les 2 choses ont des propriétés différentes ? Le terme même de "simulation de l'intelligence" est contesté et devrait, toujours selon eux, être remplacé par "reproduction de l'intelligence". Les tenants de l'IA faible arguent que la plupart des techniques actuelles d’intelligence artificielle sont inspirées de leur paradigme. Ce serait par exemple la démarche utilisée par IBM dans son projet nommé Autonomic computing. La controverse persiste néanmoins avec les tenants de l'IA forte qui contestent cette interprétation. Simple évolution, donc, et non révolution : l’intelligence artificielle s’inscrit à ce compte dans la droite succession de ce qu’ont été la recherche opérationnelle dans les années 1960, le process control dans les années 1970, l’aide à la décision dans les années 1980 et le data mining dans les années 1990. Et, qui plus est, avec une certaine continuité . Il s'agit surtout d'intelligence humaine reconstituée, et de programmation d'un apprentissage. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
18
En conclusion ,
toute définition de l’Intelligence Artificielle doit couvrir les aptitudes humaines suivantes : le raisonnement, l’apprentissage, l’intention, la compréhension, le bon sens, la conscience, etc. Parmi toutes ces aptitudes, le plus grand mystère, demeure la conscience c’est – à dire le sentiment d’être conscient de soi – même et du monde alentour). 2. Comment décider si une machine est intelligente ?
Le mathématicien Alan Turing a donné une réponse à cette question avec son fameux test, connu sous le nom de « test de Turing » (1950). Celui-ci s’inspire du « jeu de l’imitation », qui se joue à trois personnes, qui ne se connaissent pas : un homme (A), une femme (B) et un observateur (O), chacun dans une pièce séparée ; O peut communiquer avec chacun d’entre eux par l’intermédiaire d’un terminal (clavier – écran). Le jeu consiste, pour O, à deviner si son interlocuteur est A ou B ; pour cela, il peut poser n’importe quelle question. A essaie de l’aider ; B au contraire, tente de brouiller les pistes : il répond comme il pense que A répondrait. Dans un article publié en 1950, où il se propose de répondre à la question : « Les machines peuvent – elles penser ? », Turing a eu l’idée de transposer ce jeu, afin de pouvoir prouver si une machine pouvait imiter un homme au point de tromper un observateur. Remplaçons, B par une machine, A et O restant humains. Les règles sont les mêmes. Si O ne peut pas discerner A de B, la machine est considérée comme intelligente : le test de Turing est positif. En conclusion Turing reconnaît : « La question d’origine est à mon avis, trop dénuée de sens pour être débattue. Je suis néanmoins convaincu qu’à la fin de ce siècle (siècle passée), l’usage des mots et l’opinion générale des personnes instruites auront tellement changé que l’on pourra parler de machines pensantes sans risquer d’être contredit. I.3. De l’informatique classique à l’Intelligence Artificielle : deux manières de programmer
L’informatique est définie par Philippe Dreyfus, l’inventeur de ce mot, comme une science qui, à l’aide d’algorithmes, traite des données pour obtenir des informations. Cela sous entend une certaine organisation séquentielle prédéfinie des opérations à effectuer. Donc, l’intelligence classique résout un problème en utilisant une méthode appropriée traduite sous forme d’algorithmes pour obtenir la solution des problèmes posés (approche algorithmique). Cette démarche ressemble à un théorème où tout est bien précisé, rien n’est superflu et tout est à sa place. Ainsi, face à un problème à résoudre, il faut décrire les différentes étapes, par une succession d’instructions, le programme, exécutable par l’ordinateur. Un tel programme reflète le modèle sous-jacent de la machine de Von Neuman. En fait, le même programme est capable de résoudre une classe de problèmes, pourvu qu’on lui fournisse des données numériques sur lesquelles portera le traitement. Par exemple, en mathématiques, un programme d’inversion de matrices s’applique à toutes les matrices qui peuvent lui être soumises ; en gestion, de même, un programme de paie ou de gestion de stock est apte à résoudre cette classe de problème.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
19
Ainsi, l’informatique nécessite que le programmeur sache résoudre le problème, et puisse expliciter les différentes étapes de cette résolution par un nombre fini (de préférence pas astronomique) d’instructions. Par exemple, voyons ce qui se passerait si nous voulions construire un programme pour jouer aux échecs : les données initiales sont la position des pièces sur l’échiquier. Le programme doit examiner les différents coups que peut faire le joueur, connaissant les règles du jeu ; l’objectif étant d’éviter de se faire prendre des pièces importantes et de mettre le roi adverse en échec. Cela implique l’examen d’un nombre énorme de configurations, ne serait-ce que pour prévoir deux ou trois coups d’avance. Avec seize pièces par joueur et soixante-quatre cases, ce nombre croît si rapidement avec le nombre de coups considérés que l’on parle d’ « explosion combinatoire ». Et pourtant, un bon joueur parvient à trouver les meilleurs coups en un temps assez court. a) Un problème classique résout un problème : seules les données peuvent varier. Entrée : données
Programme : Liste d’instructions
Sortie : résultats
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
20
b) Un système d’IA peut résoudre une infinité de problèmes, chaque problème correspond à une situation
Entrée : faits relatifs à une situation
Système d’Intelligence Artificielle Connaissances relatives à un domaine
Moteur d’inférence
Sortie : résultats
Alors, au lieu d’indiquer à l’ordinateur toutes les étapes du raisonnement, pourquoi ne pas lui donner la faculté de raisonner comme le ferait une personne dans la même situation ? En quelque sorte, de le doter d’intelligence. C’est cette idée qui est à la base de l’intelligence Artificielle. En résumé, l’informatique est la science du traitement automatique de l’information, alors que l’Intelligence Artificielle s’intéresse à tous les cas où ce traitement ne peut être ramené à une méthode simple, standard et algorithmique.
Traitement symbolique et non numérique
Au contraire de la programmation classique, l’IA n’exige pas que l’on sache a priori résoudre un problème. Le programmeur doit raisonner en termes d’objectifs . Seul l’objectif doit être fixé ; ce peut être un théorème à démontrer, une image à reconnaître, une partie à gagner… Le programme d’IA se charge de choisir les moyens d’atteindre cet objectif en fonction des hypothèses qui lui sont données. Il s’agit de programmation déclarative, par opposition à la programmation procédurale caractéristique de l’informatique classique : il suffit de spécifier le « quoi » sans se préoccuper du « comment », le système étant capable de trouver lui-même la solution, en fonction de cet objectif. Aussi, la programmation en IA est-elle également appelée heuristique ( du grec eurisko : trouver, découvrir, cf. Archimède). Pour permettre au système de trouver par lui-même une solution à un problème donné, il doit posséder des de raisonnement, sous Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
21
la forme logique (programmation logique avec PROLOG). Au lieu d’intégrer dans le programme toutes les étapes du raisonnement, cette logique lui conférera les capacités de raisonner par lui-même à partir des données ou plutôt des connaissances qui lui ont été fournies.
Problèmes de connaissances en IA
Pour résoudre un problème donné, on réalise un modèle du système en question. Par exemple, une voiture est constituée d’une carrosserie, d’un châssis, d’un moteur, de mécanismes de transmission, de l’habillage (tableau de bord, sièges, etc…)…Lorsque nous voulons raisonner sur la voiture, nous pouvons partir de ce modèle si nous le connaissons. Mais il est parfois plus simple de raisonner sur la connaissance que nous avons de ce système. Ainsi, si nous voulons conduire la voiture, nous n’avions pas besoin de savoir comment le fait de mettre le contact déclenche tout un mécanisme qui va permettre de faire démarrer le moteur. Il suffit de savoir que, pour démarrer, il faut tourner la clé de contact dans un certain sens, puis manier le levier de vitesse, les pédales de débrayage et d’accélération, etc. Le garagiste ou le mécanicien qui doit réparer la voiture dispose de certaines connaissances spécifiques. D’autres connaissances sont nécessaires à la personne qui doit démonter et remonter le véhicule. D’autres encore au concepteur d’une nouvelle automobile… Les connaissances sont des données structurées, c'est-à-dire comprenant des relations entre des mots ou des valeurs numériques. Des propositions comme « le ciel est bleu », ou « si le réservoir d’essence est vide, alors la voiture tombe en panne » peuvent être considérées comme des connaissances. On parle également de données symboliques . En outre, en Intelligence Artificielle, les connaissances sont séparées de la façon de les utiliser, en d’autres termes le programme (moteur d’inférence) est séparé de données (Connaissances). Ce qui n’est pas le cas en informatique classique. Par exemple, la règle « si le réservoir d’essence est vide, la voiture tombe en panne » servira au garagiste : le réservoir est l’un des éléments qu’il doit contrôler lorsqu’il répare la voiture. Pour le conducteur, cette même connaissance l’incite à remplir son réservoir avant d’entreprendre un long parcours. Cette séparation entre connaissances et façon de les utiliser permet de maîtriser plus facilement la complexité de la description d’un problème non trivial. Pour résoudre un problème donné, il suffit seulement de savoir quelles connaissances sont nécessaires à sa résolution, et de fournir à l’ordinateur l’intégralité de ces connaissances , sous la forme d’un fichier particulier, sans ordre préétabli, appelé Base de connaissances . Une Base de connaissances correspond à la connaissance d’un expert dans un domaine donné ; elle contient le savoir-faire de l’expert ou du spécialiste. La principale difficulté de l’Intelligence Artificielle ne réside pas dans la programmation, mais dans le fait de fournir toutes les connaissances, et sous une forme exploitable par l’ordinateur. La principale forme de programmes à base de connaissances est le système expert, bien qu’il existe d’autres modes de traitement de connaissances. En informatique classique les concepts les plus utilisés sont : données , algorithmes , fonctions , procédures, ... et en Intelligence Artificielle, on parle des connaissances , contrôles , recherche , heuristique , inférence .
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
22
Le but de l’Intelligence Artificielle est de simuler au sens le plus large le travail de contrôle effectué par le cerveau. Un comportement intelligent est une action complexe, mais contrôlée. L’heuristique, c’est un raisonnement faisant appel à l’intuition (par tâtonnements) ou qui se base sur l’étude de cas favorables. A la différence des algorithmes, les heuristiques sont souvent tirées de l’expérience ou d’analogies , plutôt que d’une analyse scientifique complexe car recensant le maximum d’éléments, et donc difficile, voire même impossible. L’heuristique est donc l’utilisation des règles empiriques : - pratiques, faciles et rapides - facilitant la recherche de faits et l’analyse de situations, - dans un objectif de résolution de problèmes et de prise de décision - dans un domaine particulier Entre l’approche algorithmique nécessitant l’ écriture du processus à suivre pour résoudre le problème ( avant la transcription dans un quelconque langage) et l’approche de l’intelligence artificielle où la résolution du problème est confiée à un ensemble de règles données par l’expert humain du domaine, il y a une troisième approche qui cherche à s’inspirer du traitement de l’information effectué par le cerveau, celle des réseaux de neurones artificiels.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
23
CHAPITRE II : DOMAINES D’APPLICATIONS DE L’INTELLIGENCE ARTIFICIELLE
Dans la partie sur la genèse de l’intelligence artificielle nous nous sommes rendu compte que l’intelligence artificielle est beaucoup plus née de la conjonction entre l’informatique et la psychologie cognitive. En effet, l’informatique est considérée comme un outil puissant pour effectuer des opérations numériques complexes ou pour gérer des informations administratives telles que la comptabilité, la gestion des stocks, la gestion des clients etc. tandis que la psychologie cognitive a toujours espéré pouvoir reproduire un jour le comportement humain à l’aide d’un ordinateur. Les applications de l’IA sont toutes les activités où la machine peut se substituer à l’activité raisonnante de l’homme. C’est le cas lorsqu’il s’agit de trouver une stratégie, pour résoudre un problème ou vaincre un adversaire, d’organiser des éléments lorsque le nombre de configurations est très élevé. L’intelligence intervient dans la perception, la reconnaissance, c'est-à-dire la capacité à identifier une entité préalablement mémorisée, l’apprentissage, la compréhension, l’évolution dans un milieu inconnu ou mal connu… Enfin, de nouvelles applications de l’IA émergent en relation avec des activités plus classiques de l’informatique, comme l’aide au développement de logiciel ou la conception assistée par ordinateur. Schématiquement, l’IA peut servir : à modéliser les problèmes et les possibilités de solutions, à modéliser un domaine de connaissances (un fragment du monde réel), à modéliser la connaissance que l’on a du domaine et les moyens d’agir sur ce domaine Parmi les différentes branches de l’intelligence artificielle, nous pouvons citer : 1. Le traitement du langage naturel (domaine de la compréhension de la langue naturelle) 2. la reconnaissance des formes et de la parole 3. La robotique 4. La représentation des connaissances 5. Jeux et résolution des problèmes (Les Systèmes de Résolution de Problèmes) 6. La conduite et le contrôle des processus 7. L’apprentissage 8. La programmation par contraintes 9. Le raisonnement basé sur le cas 10. La vision par ordinateur 11. Robots et systèmes autonomes 12. La traduction automatique 13. Les systèmes experts 14. Les réseaux de Neurones 15. La modélisation cognitive, etc. Cette liste n’est pas exhaustive, on peut se référer aux différents sujets des séminaires. Dans la suite nous présenter quelques domaines, las autres seront présentés lors des séminaires.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
24
II.1. Le Traitement du langage naturel
Dans ce domaine les recherches se focalisent sur le développement des programmes informatiques qui sont capables de lire, de comprendre et de générer les phases telles que nous les utilisons dans nos conversations et nos écrits. En d’autres termes, le traitement du langage naturel, c’est la programmation des ordinateurs en vue de la compréhension des langues naturelles. L’objectif poursuivi dans ce domaine, est de rendre les machines plus conviviales, de faciliter la communication entre l’homme et la machine. Il englobe aussi la compréhension de textes et oraux. Le traitement du langage naturel est l’un des problèmes d’IA les plus difficiles. IL met en jeu des connaissances spécifiques, précises, et des connaissances générales, souvent diffuses. Le traitement des langues naturelles touche plusieurs domaines tels que : la reconnaissance de la parole, la traduction automatique( compréhension des textes dans la langue source et la génération de textes dans la langue cible), l'analyse et la compréhension de textes (indexation automatique de textes ou recherche d’informations dans les textes non structurés, écrits ou oraux), l'interrogation de bases de données en langue naturelle, l'enseignement, les interfaces homme/machine, la production des textes en langue naturelle( création des récits, élaboration des résumés, rédaction des lettres, etc.), les systèmes experts qui consistent à communiquer dans un langage familier, la prise de commande par téléphone, etc. L’ensemble des techniques et applications du traitement du langage naturel est regroupé sous le terme d’ « ingénierie linguistique » II.1.1. Différents types de connaissances linguistiques
Dès le début de l'informatique, l'homme a été confronté au problème de la communication avec les machines, la puissance de l'ordinateur étant contrebalancée par l'obligation d'utiliser un codage fastidieux -- manipulation de clefs sur le frontal de l'ordinateur, ou l'écriture binaire. De ces contraintes sont nés les langages de programmation et les dispositifs de traduction en binaire (seule information réellement intelligible pour un ordinateur) ; c'est-à-dire compilateur et/ou interpréteur. Un langage de programmation, aussi évolué soit-il, n'est pas une langue naturelle. Les linguistes ont établi depuis fort longtemps que les langues humaines fonctionnent selon trois modes : syntaxique , sémantique et pragmatique. Le mode syntaxique correspond à l'adéquation entre une phrase d'un langage donné et la grammaire du dit langage. De cette étape, on extrait la structure de la phrase. Chaque phrase peut être décomposée en expressions, et chaque expression en petites parties, jusqu’à ce qu’il soit possible d’identifier la fonction de chaque mot, et de « donner » un sens à la phrase. Sans savoir comment le cerveau traite ce processus appelé analyse syntaxique. On peut programmer un ordinateur pour qu’il l’applique. Le mode sémantique permet de traduire cette structure en une formule supposée exprimer le sens du texte initial. Le mode pragmatique cherche à modifier le résultat de l'analyse sémantique en prenant en considération des éléments extérieurs au texte analysé.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
25
L'un des exemples classiques, c’est par exemple la réponse à la question ``Pouvez-vous me dire l'heure qu'il est ?''. C’est une question qui appelle une réponse par oui ou par non. Les conventions sociales, qui déconseillent les formes trop impératives, conduisent la personne à qui s'adresse la question, à interpréter la question comme une forme polie pour connaître l'heure. La pragmatique détermine l'ensemble des rapports possibles entre objets ou concepts intervenant dans le monde réel : une table peut supporter une tasse, l'inverse ne se produisant que très rarement. Si les deux premiers modes sont effectivement implémenter, très peu de logiciels intègrent la troisième étape. La reconnaissance de mots ou de groupes de mots (voir dans les paragraphes qui suivent) consiste dans des comparaisons. Ainsi, pour appréhender la signification d’une phrase, une machine doit non seulement reconnaître des éléments isolés de cette phrase (connaissances morphologiques et lexicales ), mais les relations formelles qui relient ces éléments dans la phrase ( connaissances grammaticales et syntaxiques ), ainsi que le sens induit par ces relations et par le contexte (connaissances sémantiques ). Les connaissances lexicales sont celles qui sont groupées dans un dictionnaire. Les connaissances grammaticales ou syntaxiques se retrouvent, en principe dans une grammaire. Les connaissances sémantiques sont celles qui donnent le sens d’un mot dans un contexte donné. Les connaissances implicites liées à la culture (contexte, etc.), sont appelées pragmatiques. N. Chomsky a introduit la notion de grammaire de constituants ou grammaire générative, dans laquelle on a des règles de réécriture. Ainsi une version (outrageusement) simplifiée de la langue française pourrait être : Texte --> Phrase, Texte Texte --> Phrase; Texte Texte --> Phrase. Texte Texte --> Phrase. Phrase --> GN GV GN --> Art Nm GN --> Art Nm Adj GV --> V GN Où Art permet l'accès aux articles le, la, ...; Nm permet d'accéder aux noms ... Lorsque l'ordinateur travaille en mode syntaxique, il vérifie que le texte qu'il analyse possède bien l'une des structures que la grammaire lui impose. Chomsky a montré que la meilleure représentation correspondait à un arbre mettant en évidence à la fois la décomposition de la phrase en constituants et l'appartenance de ces constituants à des catégories déterminées. Bien entendu, ce modèle a été raffiné pour prendre en compte la notion de verbes transitifs, intransitifs, indiquant un mouvement, de noms correspondants à des objets Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
26
animés ou non. Cependant, si cette technique permet d'éviter des constructions comme ``Le président marche la table'', elle n'est pas suffisante pour déterminer si dans la phrase ``les menaces de licenciement des directeurs'', le mot ``directeurs'' est associé à ``menaces'' ou à ``licenciement''. Ces constatations ont conduit Chomsky (et d'autres) à la notion de niveaux dans les langues naturelles, qui sont utilisés dans les grammaires transformationnelles. Outre leur complexité, peu compatible avec un traitement automatique, des phrases comme : « Léon permet à son amie de venir » et « Léon promet à son amie de venir » ont une structure identique, alors que dans un cas c'est l'amie de Léon qui bouge et dans l'autre c'est Léon (lui-même) qui se déplace. La dissociation de la syntaxe et de la sémantique, a depuis été abandonnée. On associe à un mot du dictionnaire, différents attributs sémantiques (ou traits sémantiques), permettant d'en connaître le sens comme dans l'exemple décrit ci après :
Souris
matériel
animé
non matériel
inanimé
Verbe conjugué
humain
Non humain
comestible
objet
familier
mammifère
Morceau de viande
device
Jeune fille
Sourire
rongeur
Les traits sont nécessaires à la compréhension d'un texte et pour la traduction (semi) automatique. Actuellement, il existe des systèmes capables de répondre à des questions exprimées dans une langue naturelle, pourvu que ce soit sur un domaine extrêmement restreint. Le problème est loin d'être simple, de nombreux mots sont sujets à de multiples interprétations. Pour compliquer le tout il n'existe pas de méthodes formelles permettant de s'assurer que quelqu'un à totalement compris quelque chose -- comment un enseignant peut-il être certain que son enseignement a été totalement compris. Des systèmes de compréhension de langues naturelles sont dores et déjà Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
27
commercialisés, citons par exemple l'interrogation de bases de données, la recherche documentaire (Spirit de la société Systex) ou la commande d'automatismes. Une des applications du traitement du langage est le chatbot , un programme conversant avec des personnes. Vous pouvez interagir avec des chatbots sur Internet, en tapant des phrases et en attendant la réponse. Des sites web commerciaux utilisent des chatbots pour répondre aux questions des utilisateurs sur leurs produits. La reconnaissance et l’analyse de la parole étant de plus en plus élaborées, l’interaction avec des chatbots devient comparable à l’interaction avec des humains. Une autre facette du traitement du langage naturel consiste à créer des programmes pouvant tenir une conversation avec des humains. Le premier de ces programmes fut ELIZA, créé en 1966 par Joseph Weizenbaum un informaticien du MIT. Il fut conçu pour imiter un « psychothérapeute non dirigé», répondant aux déclarations de ses patients. ELIZA peut analyser les déclarations des patients et produire des questions directement fondées sur celles – ci. II.1.2.Reconnaissance et compréhension de la parole continue
Un système de reconnaissance et de compréhension de la parole continue met en œuvre des informations de natures diverses : Acoustico-phonétiques : ces informations régissent la transcription phonétique du message, auxquelles il faut adjoindre des informations phonologiques qui rendent compte des variations individuelles (accent) et des phénomènes d’altérations des sons (coarticulations, liaisons, etc.), et prosodiques, concernant le rythme, l’intensité et la mélodie de la voix ; Lexicales, syntaxiques, sémantiques, pragmatiques Toutes ces différentes informations doivent être accessibles par le système à travers une base de connaissances qui les fédère. Le modèle du type blackboard (tableau noir), dans lequel les sources de connaissances communiquent par l’intermédiaire d’une structure de données commune est adapté à ce type de problèmes. La compréhension de la parole continue (chaîne de phonèmes) peut être effectuée suivant deux stratégies, ascendante et descendante :
La stratégie ascendante consiste à partir de la chaîne de phonèmes, à reconstituer peu à peu une phrase en prenant compte les informations lexicales, puis syntaxiques, sémantiques, pragmatiques ; La stratégie descendante, à l’inverse, utilise les niveaux supérieurs de traitement (sémantique, syntaxique) pour prédire les mots qui vont apparaître dans la phrase ; ces « mots-hypothèses » sont ensuite confirmés ou infirmés par l’examen de la chaîne de phonèmes.
En résumé, l’organisation d’un système de compréhension de la parole peut être représentée schématiquement de la manière suivante :
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
28
Connaissances
Parole
Acoustiques
Traitement acousticophonétique
Phonétiques
Mots hypothèse Vérification des mots Comparaison
Phonologiques
Transformation
Lexicales
Représentation des mots
Syntaxiques Sémantiques
Séquence de mots admissibles
Prosodiques Dialogue
Pragmatiques
Réponse
Les différents paliers du traitement sont les suivants : Phonologique
Caractères Chaînes de caractères Mots reliés - prononciation
Morphologique
conjugaisons déclinaisons variations en genre et en nombre - racines, préfixes et suffixes
Syntaxique
règles de formation des phrases transformations de structure
Sémantique
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
29
sens de mots combinaison de ces sens - sens des phrases, des paragraphes, des textes
Pragmatique
(extra-linguistique) connaissance du monde - rôle des objets, comportement des individus… II.1.3. La traduction automatique Naissance de la traduction automatique
Les recherches sur la traduction automatique ont débuté en 1949 à l’université de Washington. Dès 1954, une équipe de l’université de Georgetown travaillait sur un système traduisant du russe vers l’anglais. L’idée sous-jacente était de pouvoir traduire la documentation scientifique soviétique. La question fut ressentie de manière cruciale en 1957, lorsque les soviétiques réussissent leur première mission spatiale Spoutnik . C’est alors que les Américains se sont rendu compte que, pour rattraper leur retard en matière spatiale par rapport à leurs concurrents, il leur fallait assimiler très rapidement toute la documentation qui avait permis de préparer cet exploit. Le problème est alors exprimé dans les termes suivants : étant donné, en entrée, un texte rédigé dans la « langue source », le programme doit fournir, comme résultat, un texte élaboré dans la langue cible ». A l’époque, il paraissait évident que les ordinateurs parviendraient à traduire aussi bien qu’un traducteur humain, en beaucoup moins de temps ; ce n’était qu’une question de taille de dictionnaires à stocker en mémoire et de puissance de calcul de machine. Dans les années soixante, compte tenu des connaissances de l’époque en informatique et des performances des ordinateurs, on ne pouvait guère espérer mieux que la traduction mot à mot , à partir de vastes dictionnaires contenant essentiellement des correspondances entre mots ou expressions. Une amélioration pouvait être envisagée en introduisant le plus possible de données sur la grammaire, afin d’obtenir des produits, sinon directement utilisables, du moins compréhensibles par un spécialiste du monde concerné. Pourtant, la qualité des textes obtenus était si médiocre, la durée du traitement et des accès à la mémoire tellement longs, que la traduction automatique fut alors considéré comme un échec. Cette constatation marqua un coup d’arrêt presque total aux recherches dans ce domaine. Toutefois, en dépit de ce constat d’échec, une équipe américaine sous la direction d’un chercheur d’origine hongroise, Peter Toma, à l’université de Georgetown, continua à travailler dans ce domaine et parvint à mettre au point, dans les années soixante, le premier système opérationnel et commercial de traduction automatique, Systran . Conçu d’abord pour la traduction tusse-anglais, ce système a ensuite été étendu à la plupart des langues européennes. La traduction se fait presque en temps réel, à partir d’un fichier texte sur ordinateur, ou par lecture optique. Mais elle nécessite la présence d’un opérateur, prêt à intervenir Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
30
lorsque le système rencontre un terme qu’il ne sait pas traduire. De plus, le texte « brut » fourni par la machine doit ensuite être révisé par une personne qui améliore la forme du texte final. Les différentes étapes de la traduction automatique
Pour traduire correctement un texte, il faut le « comprendre » et, pour cela, remonter toujours plus haut dans l’analyse des relations entre les mots. Différentes phases de traduction doivent être effectuées successivement ou simultanément : translittération, consistant à convertir les caractères de la langue source dans l’alphabet de la langue cible (lorsque l’écriture est différente : grec, russe, chinois, arabe, etc.) ; traduction mot à mot, ou lexicale ; traduction syntaxique ; traduction sémantique ; traduction pragmatique ou contextuelle. Les différentes étapes de la traduction automatique, correspondant aux différentes générations peuvent être schématisées de la manière suivante :
Langue source Première énération
Translittération
Mot à mot Syntaxique
Deuxième génération
Sémantique Pragmatique
Troisième génération
Langue pivot
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Langue cible
Intelligence artificielle et systèmes experts
31
N.B. Si les deux premières étapes peuvent être relativement facilement automatisées, les trois dernières étapes, faisant appel à des connaissances générales ou spécialisées, nécessitent un traitement par l’IA. Exemple de traduction automatique
Les différentes étapes de la traduction automatique d’une phrase sont les suivantes : 1. L’analyse de la structure de la phrase en langue source (anglais) permet de définir un sujet, un verbe et un complément. 2. La phrase en langue source est décomposée en mots ou expression. 3. Chaque mot ou expression est cherché dans le dictionnaire, en fonction de sa valeur (sujet, verbe ou complément) dans la phrase. 4. Le fait que LOVE ait une valeur de verbe implique de le traduire par AIMER et non AMOUR. Le fait que YOU soit complément d’objet direct du verbe implique de le traduire par TE ou VOUS. 5. La syntaxe de la langue cible (français) implique un ordre des mots différent. 6. La grammaire française fournit la forme conjuguée de AIMER (première personne du singulier du présent de l’indicatif). 7. Le dictionnaire précise que AIMER implique généralement l’usage du tutoiement et permet de choisir TE plutôt que VOUS. 8. La grammaire française dit que TE doit être remplacé par T’ devant une voyelle. Ainsi s’achève la synthèse de la phrase dans la langue cible.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
I LOVE YOU
I LOVE YOU
32
1
SUJET VERBE COMPLEMENT
2
Syntaxe langue source
3
Dictionnaire
I = JE LOVE =
YOU = JE AIMER
TE
SUJET COMPLEMENT VERBE
JE { TE } AIMER {VOUS}
5
JE { TE } AIME {VOUS}
6
JE T’AIME
TU TOI TE VOUS
4
VOUS
JE TE AIME
AIMER AMOUR
7
8
Syntaxe langue cible Grammaire : Conjugaison du verbe AIMER en fran ais Le verbe AIMER implique la forme familière TE plutôt que la forme de politesse VOUS Grammaire française :
Remplacement de TE par T’
Trois générations de systèmes de traduction
Suivant la stratégie adoptée, il existe plusieurs générations de systèmes de traduction automatique : - La première est l’approche directe , représentée par Systran. C’est une traduction mot à mot, améliorée par des traitements spécifiques et des réarrangements localisés - La deuxième stratégie passe par trois phases : analyse, transfert et synthèse. Elle vise d’abord à obtenir une interprétation linguistique du texte source : chaque phrase est découpée en unités lexicales, sémantiques, etc. qui constituent les descripteurs entre lesquels des liens logiques sont mis en évidence ; c’est l’analyse, qui aboutit à une représentation interne en langue source. Puis le programme transfère ces descripteurs dans ses nouveaux descripteurs adaptés à la langue cible, grâce à des dictionnaires particuliers. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
-
33
Enfin, à partir de cette nouvelle représentation, le texte cible est généré ; c’est la synthèse . Les systèmes canadien TAUM ( Traduction Automatique de l’Université de Montréal), français Ariane ( GETA, Grenoble) et européen Eurota fonctionnent suivant ce modèle. La troisième stratégie passe par une langue pivot , indépendante des langues sources et cible. Cette langue pivot est une représentation de la scène ou de l’action décrites par le texte, correspondant à ce que l’on comprend à partir d’un texte, mais dépourvue de formes linguistiques. Cette stratégie est d’autant plus intéressante que le nombre de langues à traduire est plus élevé : si l’on veut traduire n langues unes dans les autres, cela fait (n(n-1) couples de langues en traduction directe, et 2n en passant par une langue pivot. Déjà à partir de quatre langues, il suffit de 8 programmes au lieu de 12.
Anglais
Allemand
Français
Russe
Couple de langues en traduction directe
Allemand
Anglais
Langue pivot
Français
Russe
Couple de langues en traduction passant par une langue pivot
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
34
De la traduction traduction automatique automatique à la traduction traduction assistée assistée
La traduction entièrement automatique ne fournit généralement pas de solutions de qualité suffisante. Ainsi, des solutions « sous optimales » ont été développées : traduction assistée par ordinateur ordinateur (TAO), traduction automatique assistée par l’homme ou traduction humaine assistée par la machine. Les systèmes de traduction assistée par ordinateur nécessitent l’intervention humaine, soit pendant le traitement, soit avant (pré-édition ou marquage), soit après (postédition ou correction). On parle aussi de traduction automatique assistée par l’homme. A l’inverse, la traduction humaine assistée par la machine (THAM) est possible grâce à des d es « postes de travail du d u traducteur », regroupant re groupant un u n ensemble d’outils d ’outils de productivité (traitement de texte associé à des dictionnaires électroniques, mémoire de traduction pour garantir l’homogénéité du texte, interface homme-machine, etc.) II.2. LA RECONNAISSANCE DES FORMES ET DE LA PAROLE
Dans ce domaine les recherches sont axées sur le développement des programmes informatiques capables de transformer des informations visuelles (c’est à dire des points et des traits qui représentent un objet) ou des informations sonores ou tactiles (c’est à dire une série des sons qui constituent une phrase) en des informations qui peuvent être traitées par l’ordinateur. La reconnaissance de formes et de la parole est l'un des domaines domaines les plus importants de l'Intelligence l'Intelligence Artificielle, la notion de formes ou de parole est à prendre au sens large (formes visuelles, sonores ou tactiles), son domaine d'application : la robotique, les interfaces homme/machine. Il faut noter par exemple que la sémantique du message doit être conservée dans ce genre de système (c’est à dire que l’ordinateur doit pouvoir bien comprendre ce qu’il voit par exemple au travers d’une caméra et être capable de dire qu’il s’agit par exemple d’un mouton, d’un paysage, d’un chien, d’une personne, ou ce qu’il entend). II.2.1. La Vision par ordinateur ou la reconnaissance des formes
La vision par ordinateur permet, à partir de l’image d’un objet ou d’une scène réelle, d’en déduire des données exploitables par une machine. Ce domaine se rattache à l’IA pour deux raisons : • D’abord, pour qu’un système s ystème soit « intelligent » ou du moins qu’il puisse simuler l’intelligence, il doit être capables de réagir aux sollicitations externes, donc être sensible à son environnement, et en particulier à la représentation spatiale de celui-ci, qui est fourni pour une grande part par la vision. • Ensuite, parce qu’un système de vision artificielle fait intervenir les techniques d’IA (traitement de connaissances et réseaux neuromimétiques). neu romimétiques).
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
35
a) Vision naturelle ou artificielle
Les questions ci-après sont résolues apparemment très facilement par l’homme : comment fonctionne la vraie vision naturelle ? Pourquoi « reconnaît » -t-on un objet, un visage, une image ? Comment reconnaît – on un objet familier dans le paysage ? Un visage connu lorsqu’il change de position ou d’expression (souriant ou sévère, avec ou sans lunettes) ? Qu’est-ce qui nous permet perm et de déchiffrer un manuscrit, manuscr it, alors que les caractères peuvent être si différents de la calligraphie standard ? Comment pouvons – nous si facilement saisir un objet sans l’avoir préalablement palpé ? Quels sont les sens qui nous servent à évaluer la position d’un obstacle ?
Mais, une autre question est de savoir « comment automatiser leur résolution ? » Quelle est la part de la vue, de la réflexion, réflex ion, de la mémoire, du raisonnement raisonnemen t ? Reconnaissons-nous une personne parce que nous nous attendons à la voir ? Pouvonsnous lire une lettre parce que nous préjugeons, en partie du moins, de son contenu ? L’abondance et la diversité de ce questionnement préfigure la complexité du problème que l’on se propose de résoudre avec les systèmes de vision. L’étude de la vision a de tout temps suscité un grand intérêt. Dans l’antiquité, elle était plus ou moins confondue avec celle de la lumière et de l’optique en général. Aujourd’hui, nous savons que la vision comprend deux phases distinctes: la perception, au niveau de l’œil, et le traitement, au niveau du cerveau. Cet intérêt pour la vision s’explique aisément si l’on sait que, chez l’homme, 60% du cortex cérébral sont dévolus à ce sens, et que l’œil est l’organe le plus complexe et le plus sophistiqué chez les vertébrés supérieurs. b) L’œil : un organe organe intelligent intelligent
La vision des êtres vivants a bien évidement servi de modèle pour les systèmes de vision artificiels. L’œil a souvent été comparé à une chambre noire d’appareil photographique, dont la plaque sensible serait formée par la rétine. Ainsi, un système de vision par ordinateur comprend : - un ou plusieurs capteurs de lumière ou caméras qui « photographient » des objets ou des scènes, à l’instar l ’instar de l’œil ; - des processeurs et des programmes de traitement correspondant à la zone du cerveau dédiée à la vision ; - entre les deux, un système de sélection, de numérisation et de transmission des données, qui jouerait le rôle du nerf optique. Mais cette analogie n’est qu’approximative, car les systèmes artificiels sont loin d’atteindre la complexité de la nature : les capteurs de vision les plus perfectionnés comportent quelques dizaines de milliers d’éléments, alors que l’œil est constitué d’une centaine de millions de cellules sensibles (cônes et bâtonnets). Quant au nombre de cellules nerveuses intervenant dans le processus visuel, il est de l’ordre du milliard, ce qui permet un traitement très fin et hautement parallélisé de l’information visuelle.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
36
Par ailleurs, les fonctions de saisie et de traitement de l’image ne sont pas nettement distinctes dans la vision biologique. En réalité, la rétine joue un rôle bien différent de celui d’une simple pellicule photographique impressionnée par la lumière provenant du monde extérieur. D’abord, l’œil est un piètre capteur : l’image est précise sur un très petit domaine du champ visuel, à condition d’accommoder, le reste est flou ; la vision se fait par balayage constant du champ et accommodation. Ensuite, les cellules de la rétine sont des structures nerveuses qui, non seulement captent la lumière, mais sont aussi capables d’effectuer un prétraitement de ces informations avant de les transmettre au cerveau. S’adaptant à l’intensité aussi bien qu’à la qualité de l’information lumineuse, l’œil est plutôt sensible aux variations de ces paramètres qu’à leur valeur absolue ; c’est pourquoi un feu rouge ou orange dans un paysage à dominante verte (campagne), grise (ville) ou blanche (hiver) « saute aux yeux », de même que des caractères noirs sur une feuille blanche, et nous remarquons plus un feu clignotant qu’une lumière immobile. Les yeux de certains animaux ne sont sensibles qu’au mouvement. Ainsi, l’œil n’est pas un organe passif : sa fonction consiste non seulement à capter des images, mais surtout à trier les informations pour les présenter au cerveau prêtes à être exploitées rapidement : on admet que la rétine effectue 10 milliards d’opérations par seconde, avant que la « représentation » de la scène observée n’atteigne le nerf optique (traitement massivement parallèle). Mais c’est surtout grâce à l’intervention du cortex que la vision humaine est très efficace : seuls 20% du processus de vision proviennent des nerfs optiques, le reste est le fait du cerveau. La vision biologique est donc essentiellement une fonction intelligente. c) La visionique visionique
La mise en œuvre de systèmes artificiels capables d’accomplir automatiquement ces fonctions a donné naissance à une nouvelle technique et néologisme : la visionique. Ce terme désigne l’ensemble des techniques et méthodes qui participent à la formation, à l’acquisition et au traitement des images en vue de prendre une décision de façon automatique. Elles sont généralement implémentées sur ordinateur, aussi parle-t-on de vision par ordinateur . La vision par ordinateur combine l’optique, l’électronique, le traitement du signal et l’informatique. Elle substitue au système visuel humain un ensemble informatisé (matériel + logiciel) capable d’intégrer l’acquisition d’images, leur traitement et la prise de décision adaptée au cas identifié. Toutefois, l’objectif de la vision artificielle est différent de celui de la vision biologique. En effet, l’homme apprécie d’un coup d’œil une image, mais il est incapable de l’exploiter systématiquement. C’est ce que tente de réaliser l’analyse et le traitement d’images informatique. Son domaine d’applications s’étend de la bureautique, avec la lecture automatique de textes, jusqu’à la robotique industrielle, en passant par le contrôle de qualité et l’interprétation d’images météorologiques ou biomédicales. L’essentiel du système n’est pas le capteur (équivalent de l’œil ), mais ce qu’il y a derrière, c'est-à-dire le traitement et le système d’interprétation de l’image, équivalent du cerveau. Ces différentes fonctions sont remplies par des d es logiciels spécialisés comportant : Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
37
beaucoup de calculs numériques des algorithmes de traitement (filtrage, extraction de primitives, morphologie mathématique, etc.), • des algorithmes de reconnaissance (comparaison à des modèles) et de classification conduisant à la prise de décision ( à l’aide de systèmes experts ou de réseaux neuromimétiques dans les cas difficiles) • •
d) Phases de la vision par ordinateur : acquisition et prétraitement d’images
Les différentes phases de la vision par ordinateur sont les suivantes : 1. L’acquisition d’image
Elle se fait par des capteurs. On distingue plusieurs types de capteurs : linéaires, matriciels, caméra, laser. Ils peuvent saisir une image en deux dimensions, comme les caméras ordinaires, ou capter des informations relatives à l’objet dans l’espace tridimensionnel. Ces derniers capteurs, notamment le télémètre laser, sont fondés sur un calcul de la distance d’un point physique aux capteurs. Ils peuvent être composés de deux ou trois capteurs, ou bien d’une seule caméra qui se déplace par rapport à l’objet. Ce principe est appliqué aux robots mobiles. La tomographie, appliquée en médecine ou dans l’industrie, est fondée sur la reconstitution d’objets tridimensionnels à partir d’un nombre fini de courbes, prises dans des plans généralement parallèles (rayons X, scanners, échographie, etc.) La qualité de l’image saisie est conditionnée par un certain nombre de contraintes qui doivent être respectées lors de l’acquisition : bon éclairage de la scène, bon contraste entre l’objet et son environnement (pas d’objet noir sur un tapis roulant de couleur sombre, par exemple). 2. L’échantillonnage L’échantillonnage consiste à garder, à partir d’une quasi infinité de points saisis par le
système d’acquisition, un nombre fini de points, en réalisant un compromis entre la qualité de l’image mémorisée et la capacité de mémoire du système. Les valeurs observées sont ensuite numérisées , c'est-à-dire converties en une suite de valeurs binaires (suites de 0 et de 1). La première opération qu’effectue un système de vision est de découper l’image en un certain nombre de « points d’images » ou « pixels » ( picture cells). A chacun de ces points correspond un niveau de gris (si le système de vision est monographique) ou à une couleur, lesquels sont, à leur tour, réduits à un certain nombre de niveaux définis par des valeurs numériques. Cette réduction, ou « filtrage » de l’informatique, est accomplie lors du prétraitement. Ce processus est comparable à un entonnoir où le nombre d’informations entrant dans le système est progressivement réduit, pour Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
38
atteindre finalement un relativement petit nombre de valeurs, correspondant à la prise de décision par le système. Ce nombre peut être égal à 2 dans le cas d’une décision binaire (acceptation ou rejet) ; il est au moins égal au nombre d’objets à reconnaître dans un système de reconnaissance de formes ; ce nombre est, par exemple, 2×26 s’il s’agit de reconnaître les caractéristiques de l’alphabet (majuscules et minuscules), plus les caractères spéciaux (ponctuation, accents, etc.). Il peut aussi être bien plus élevé lorsque le système évolue dans un environnement mal connu, par exemple le guidage dans l’espace d’un robot. 3. Le pré-traitement
Le pré-traitement comprend toute une série d’opérations permettant de passer d’un ensemble de données sous forme numérique à un ensemble de données structurées, qui fourniront la base d’un traitement « intelligent » : compression d’image ; suppression du flou et du bruit ; seuillage ; projection ; extraction de contours , de squelette , etc. 4. La binarisation
La binarisation, ou le seuillage, consiste à comparer la luminance de chaque point à une valeur de référence. La plupart des systèmes ne conservent que deux niveaux : noir en dessous du seuil et blanc au dessus du seuil, par exemple, le seuil étant déterminé par l’utilisateur suivant les détails qu’il veut conserver. En effet, l’intensité lumineuse de l’image varie considérablement en fonction de l’éclairage et de la nature des surfaces réfléchissantes et, si le seuil est fixé arbitrairement, les formes perçues peuvent être très altérées par les conditions extérieures. Le contour d’un objet est l’ensemble des points définissant la frontière de cet objet, c'est-à-dire dont certains points voisins sont extérieurs à l’objet. L’extraction de contours permet de passer d’une image de dégradés de gris et de tâches noires et blanches à une image contrastée, où n’apparaissent que des lignes ou des chaînes de points. Ces chaînes de points peuvent être remplacées par des segments de droite suffisamment proches, par approximation polynomiale ou par des arcs de cercle. Cette opération permet de réduire la quantité d’informations nécessaires pour décrire l’image et de simplifier la manipulation par ordinateur. Un autre traitement consiste à extraire le « squelette » d’un objet. C’est l’axe médian de chaque élément de l’objet, obtenu en supprimant certains pixels pour lui donner l’épaisseur 1. Cette opération s’applique à des images d’objets de forme complexe (caractères alphanumériques, machines, outils, etc.). e) Rôle de l’IA dans le traitement d’images
L’acquisition et le pré-traitement des images sont des opérations classiques, pour lesquelles il existe des techniques classiques, bien maîtrisées. A l’issue du pré-traitement, on Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
39
dispose d’une description abstraite (géométrique, topologique, ensembliste, etc.) qui pourra être traitée par logiciel. C’est lorsqu’il faut interpréter ces données que peuvent se poser des difficultés, et c’est à ce stade qu’il devient souvent nécessaire de mettre en jeu des techniques d’IA.
En fait, l’IA peut déjà intervenir au niveau du pré-traitement, pour la détermination du seuil, pour apporter des connaissances sur l’espace bi ou tridimensionnel. Elle joue le rôle important pour l’interprétation d’un trait sur une image, pour la compréhension d’une image, afin de décider, par exemple, si une tâche noire sur l’image correspondant à une tache réelle, à un trou, à une ombre ou un relief. f) Interprétation et reconnaissances de formes
La reconnaissance de formes implique une phase d’apprentissage, de même que pour la reconnaissance de la forme. Le processus de reconnaissance est d’ailleurs assez proche de celui que nous avons vu dans le cas de la parole. Avant de pouvoir reconnaître une forme, il faut d’abord en connaître un modèle ou un ensemble de caractéristiques , afin de pouvoir faire une comparaison. L’ordinateur doit donc mémoriser ces données, qui devront être comparées avec celles des objets rencontrés. Principe de la reconnaissance de forme
Le principe de la reconnaissance de formes présenté ci-après, est semblable à celui de la reconnaissance de la parole.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
40
Forme : Capteur Prétraitement Paramétrisation Forme à reconnaître
Ensemble de référence :
Com araison Identification
Réponse : « triangle »
En conclusion, la reconnaissance consiste à extraire des données du capteur, une description géométrique de la scène, puis mettre cette description en correspondance avec la base de données de modèles, afin d’établir l’identification avec l’un de ces modèles. L’identification peut se faire de deux manières :
Superposition de formes Détection de similitudes
La première solution , est la plus simple et consiste à superposer l’image à reconnaître à un modèle préalablement appris et stocké dans une base de données images. Cette technique est valable pour des formes relativement simples, bien définies et se présentant de Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
41
la même façon (même orientation dans l’espace, même échelle) : par exemple à la reconnaissance de caractères dactylographiés ou imprimés, de pièces mécaniques bien déterminées, d’empreintes digitales, etc. Mais cette technique est rarement applicable en pratique, à cause de la trop grande quantité de données à stocker, et surtout de l’intolérance aux légères variations. La superposition parfaite est rarement réalisée, ainsi on utilise la notion de « distance » entre images : il s’agit de la mesure de dissemblance entre l’image et le modèle . L’image est reconnue comme identique au modèle si la distance est inférieure à un certain seuil, ou bien si la distance entre l’image est l’un des modèles considérés est nettement inférieure à la distance entre la même image et chacun des autres modèles. L’inconvénient majeur de
cette technique est que la notion de distance n’est pas invariante vis-à-vis d’un déplacement (rotation ou translation) de l’image, d’une déformation ou d’un changement d’échelle. Par exemple un système de lecture de caractères basé sur ce principe n’est pas capable de reconnaître un caractère s’il est écrit dans un corps différent de celui de la base d’apprentissage. Dans l’industrie, il ne sera pas possible de retrouver une pièce en vrac. La seconde solution, passe par une représentation des connaissances , en d’autres termes, elle consiste à extraire l’information pertinente qui permettra de déterminer ce que représente l’image. La forme joue un rôle majeur dans l’interprétation des images par les humains. On identifie un objet à partir de quelques traits caractéristiques ; chaque objet est défini comme un ensemble de primitives (caractéristiques topologiques, connexité, intersection entre lignes, zones homogènes, comptage ou calcul de certains éléments d’images, etc.). Ainsi, pour les empreintes digitales , par exemple, on repère les points caractéristiques : bifurcations, terminaisons de traits, nombre de lignes parallèles, etc. Des « primitives de surface », par exemple, donnent la surface des objets à partir de laquelle on calcule le rapport (périmètre au carré/surface), le centre de gravité, les moments d’inertie, le nombre de trous, la surface des trous, etc. On peut aussi définir la concavité, la convexité, ou d’autres fonctions intrinsèques de courbure. Ces codages fournissent un modèle paramétrique structurel ou hybride, la « signature » de l’objet, qui sera stockée et comparée à des données préalablement apprises. D’autres attributs , comme la couleur, la texture ou le pouvoir de réflexion, peuvent également servir pour l’identification d’un objet. Mais des informations d’une autre nature peuvent intervenir, par exemple la connaissance du contexte dans lequel se trouve l’objet. On parle alors de « reconnaissance sémantique ». Si tous les êtres humains reconnaissent les mêmes images, ils n’en comprennent pas la même chose ; une image est associée à tout un contexte socioculturel, donc à une accumulation d’informations signifiantes, mémorisées antérieurement.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
42
g) Vison par réseaux de neurones
Bien que la reconnaissance d’images soit un problème de classement d’un objet donné parmi un ensemble de classes, dont chacune est caractérisée par un jeu de paramètres essentiellement mathématique, la compréhension d’images ou de scènes concerne des objets non nécessairement définis d’avance, ou attendus. Comprendre une image c’est savoir comment ses composants sont causalement reliés à l’environnement. Or les mêmes systèmes à base de connaissances (SBC) ne résolvent que de très péniblement et incomplètement ce type de problèmes, faisant intervenir des connaissances très diverses et très diffuses. D’où l’idée de se tourner vers une autre approche : les réseaux de neurones . Ces structures sont particulièrement appropriées pour résoudre les problèmes de classification et se comportent comme des « mémoires associatives ». Les réseaux de neurones mémorisent une forme ou un ensemble de paramètres (primitives, par exemple) en ajustant les coefficients de couplage entre neurones (synapses). On utilise de préférence des modèles en couches pour leurs capacités de classification. Lorsque des neurones de la couche d’entrée sont stimulés par une image, une évolution se propage, de proche en proche, à tout le réseau, aboutissant à un « attracteur », état stable, fourni en sortie. Un réseau peut posséder plusieurs attracteurs, dont chacun correspond à une forme préalablement apprise. Le réseau revient automatiquement à l’un de ces états lorsqu’il a été stimulé par la forme correspondante, même si celle-ci est altérée ou incomplète. Il est ainsi possible de reconnaître des formes trop floues ou imprécises pour leur appliquer les méthodes de programmation classique ou d’IA à base de connaissances. h) Les applications de la vision
Dans l’industrie :
La vision joue un grand rôle pour l’inspection et le contrôle non destructif (détection de défauts sur des matériaux, des pièces ou des assemblages), l’identification, le tri d’objets en vrac, le contrôle de conformité, les mesures de dimensions, etc. On utilise des systèmes de vision, par exemple pour rechercher des défauts sur des circuits électroniques, sur des pièces manufacturés, pour contrôler la propreté de bouteilles, etc. L’inspection portant sur certaines grandeurs ou caractéristiques d’une pièce aboutit à l’acceptation ou au rejet de la pièce. A titre d’exemple, dans une tannerie, un système de vision peut calculer la surface d’une peau en moins d’une seconde, alors que les méthodes classiques sont beaucoup plus longues. Toujours dans l’industrie la vision peut être associée à la robotique, pour la préhension d’objets, l’action sur des objets, le déplacement ou l’action des un environnement non totalement défini, etc. Pour beaucoup d’industriels les systèmes de vision sont les « yeux des robots ». La vision confère une sorte d’ « intelligence » sans laquelle ils ne pourraient pas accomplir certaines actions, atteindre leur objectif, franchir des obstacles, etc. Elle dispense l’opérateur de positionner avec une grande précision les pièces sur lesquelles le robot doit travailler, grâce à l’autonomie que celui-ci acquiert par la vision. Le système de vision localise l’objet, le contrôleur du Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
43
robot calcule le décalage avec la position nominale et réagit en conséquence sur le programme. En association avec un robot manipulateur, le système de vision sert à orienter et à positionner des pièces ; avec les machines-outils, il sert à l’assemblage et au montage. Dans le domaine de l’environnement : La vision sert à reconnaître les éléments caractéristiques sur une photo satellite (côtes, cours d’eau, routes, agglomérations, etc.) pour établir automatiquement une carte, ou aide à l’élaboration de cartes. Elle est aussi utilisée pour la modélisation de phénomènes physiques et atmosphériques… Dans le domaine militaire : La vision est appliquée à l’analyse des scènes, l’étude de la trajectographie, l’interprétation des cartes, etc. Il existe également des systèmes de surveillance qui permettent de détecter des objets en mouvement, déterminer la nature de ces objets et, le cas échéant déclencher une alarme. Dans le domaine de la bureautique : La vision est appliquée à la numérisation d’images et à la reconnaissance de caractères ou OCR (Optical Character Recognition). Cette application, peut faire appel à l’IA ; on parle alors d’ICR ou Intelligent Character Recognition . On peut citer dans ce cas, les réseaux de neurones. En médecine et en biologie : Les systèmes de vision servent à détecter ou reconnaître des anomalies dans une culture de cellules, afin d’établir un diagnostic à partir d’une image médicale. En biométrie : Les systèmes de vision peuvent servir à identifier des individus par ses empreintes digitales, par ses empreintes oculaires (c’est-à-dire le dessin des vaisseaux sur l’iris de l’œil), par sa signature et le mouvement qu’il fait pour la réaliser…
En résumé, la vision englobe trois activités : l'analyse d'objets (qui est de fait la méthodologie générale), la reconnaissance de caractères et enfin l'analyse de scènes en 3 dimensions (3D) . Les deux derniers domaines sont des applications directes de la première activité. L’analyse d’un objet consiste en la détermination de l'objet, la caractérisation, la comparaison entre l'image connue et l'image vue au niveau du pixel. On peut considérer dans ce processus trois phases distinctes : • • •
pré traitement : simplification de l'image visualisée, extraction des primitives : caractéristiques principales de l'objet, classification.
L'opération de pré traitement englobe l'extraction des contours i.e. la détection de courbe continue, l'analyse de continuité, le seuillage qui correspond à choisir un niveau de gris, tout pixel plus foncé sera codé par 1, tout pixel plus clair étant codé par 0. L'extraction des primitives consiste à coder l'image au moyen de descripteurs pertinents ; pertinence dépendant du type de traitement ultérieur. Par exemple on peut s'intéresser à la surface, au périmètre, au nombre de trous, à la dimension du rectangle circonscrit, .... On rajoute aussi des descripteurs de position et d'orientation comme le centre de gravité, les angles, ...
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
44
La classification est en fait le processus de reconnaissance proprement dit, il s'agit de comparer l'image visualisée avec la connaissance du système. En général on utilise l'une des deux méthodes suivantes : •
•
méthode du plus proche voisin, c'est aussi la plus simple et la plus longue. Il faut comparer les objets un à un ; ce qui est rendu d'autant plus difficile que les contraintes initiales seront lâches (objet arrivant dans n'importe quel sens, superposition possible, ...). méthode de décision par arbre binaire, cette technique demande de choisir un nombre optimal de critères discriminants (descripteurs pertinents), c'est la technique la plus couramment utilisée dans le cadre de la reconnaissance de caractères.
Les recherches menées en synthèse d'images sont faites en étroite collaboration avec l'analyse d'un objet digitalisé (problème de stockage, représentation de l'image, ...). La reconnaissance des caractères est un ensemble des moyens qui permettent au système de reconnaître une ou plusieurs polices des caractères. L’objectif étant de gagner le temps. Pour réaliser cette tâche par l’ordinateur, il faut des logiciels de reconnaissance optique, ( ROC ) ou OCR ( abréviation du terme anglais Optical Character Recognition) des caractères c’est – à – dire des procédés informatiques qui permettent de récupérer le texte dans l’image d’un texte imprimé ou dactylographié de le traduire en fichier texte et de le sauvegarder dans un fichier pouvant être exploité dans un traitement de texte pour enrichissement, et stocké dans une base de données ou sur un support sur et exploitable par un système informatique. Les principes des systèmes de reconnaissances des caractères sont les suivants : - Partir de l’image numérique réalisé par un scanneur optique (ou le lecteur code barre) d’une page (document imprimé, etc.) dont on veut récupérer le texte. - L’image doit être fortement contrastée pour permettre au programme de discerner les caractères - Le programme lit le document, et grâce à des bibliothèques de formes, détecter les caractères afin d’en faire correspondre la forme au caractère attendu - Des dictionnaires permettent de récupérer certaines erreurs Certains logiciels tentent même de conserver l’enrichissement de texte ainsi que la mise en page et même rebâtir les tableaux. Actuellement plusieurs types de lecteurs optiques sont disponibles sur le marché (lecteur codes barre, OCR, ...) depuis ceux spécialisés dans la reconnaissance d'une ou plusieurs polices de caractères jusqu'aux lecteurs aptes à apprendre n'importe quoi. L'intérêt dans la reconnaissance de caractères est évidement le gain de temps. A cela s'ajoute le fait que les supports de masse (magnétique, optique, ...) ont des durées de vie nettement supérieur à celle du papier, les recherches documentaires, le traitement du courrier dans les centres postaux, ....
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
45
L’analyse en scène est une reconnaissance des images en 3D. La difficulté dans l'analyse de scènes 3D réside dans le fait que toute l'information n'est pas accessible directement : c’est le problème de faces cachées, que l'on rencontre aussi en synthèse d'images.
Une scène 3D On cherche dans ce cas à détecter les points caractéristiques, par exemple, dans le cas de volumes simples, les angles ou les jonctions de droites entre les différents contours. À partir de ces informations l'ordinateur (ou le robot) doit décomposer la scène en éléments simples, comme ci après.
Points caractéristiques
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
46
II.2.2. La reconnaissance de parole ou reconnaissance vocale
La reconnaissance de la parole représente certainement l’un des éléments clés des systèmes informatiques de demain. Eminemment utile dans la relation homme-machine, la reconnaissance vocale dépasse largement le cadre de l’informatique par ses applications. Elle peut équiper des automobiles qui réagiront à un certain nombre d’ordres, elle assiste les handicapés moteurs, il existe déjà des machines-outils à commande numérique répondant à la voix, ainsi que des téléphones capables de composer eux-mêmes le numéro demandé oralement, directement dans le combiné. Pour cette dernière application, la personne qui utilise le composeur vocal enregistre, dans un premier temps, un ensemble de noms qu’elle associe à leur numéro de téléphone. Il lui suffira ensuite de décrocher son combiné, de prononcer l’un de ces noms, et l’appareil obéira à l’ordre donné en composant automatiquement le numéro. Pour éviter tout risque d’erreur, le nom prononcé s’inscrit en clair sur un afficheur alphanumérique placé sur l’appareil. Cet exemple met en évidence deux phases, que l’on retrouve en général dans les problèmes de reconnaissance : une phase d’apprentissage où le système mémorise un certain nombre de modèles, et une phase d’utilisation, où le système reconnaît un élément, mot, signal ou forme, en le comparant aux modèles appris. La reconnaissance vocale se situe à l’intersection de nombreux domaines tels que l’acoustique, l’électronique, la phonétique, la sémiologie, etc. La phase de reconnaissance vocale proprement dite intervient après la phase de prétraitement du signal. Cette reconnaissance nécessite de mettre au point des algorithmes particuliers pour la reconnaissance des structures, ainsi qu’une architecture de traitement spécialement adaptée, à grand débit, haute précision et d’une capacité de calcul ultra-rapide, car la reconnaissance de la parole doit, normalement, se faire en temps réel : la parole est reconnue au fur et à mesure de son émission. Du fait de la multiplicité des paramètres en jeu, l’IA semble une technique appropriée pour résoudre ce problème, qui se pose donc en ces termes : « Qu’est-ce qui permet à une personne de distinguer un mot d’un autre, indépendamment de celui qui parle ? » II.2.2.1. Phases de reconnaissance vocale
La reconnaissance de la parole part de la capture du signal à la reconnaissance proprement dite. Elle implique donc une analyse du signal vocal. Ce signal vocal, comme tout autre son, est une vibration longitudinale qui se propage dans l’air (ou dans tout autre milieu). L’ouïe peut nous renseigner sur certaines de ses caractéristiques : nous distinguons des sons élémentaires ou phonèmes, la hauteur, le timbre, l’intensité, la durée des sons…Mais, en réalité, la voix est beaucoup plus complexe que nous ne pouvons le percevoir à l’oreille. En convertissant, par l’intermédiaire d’un microphone, l’onde sonore en un signal électrique, il est possible de la visualiser sur un écran cathodique ou d’en sortir sur imprimante une représentation graphique. L’image ainsi obtenue est une forme extrêmement complexe, dépendant des sons prononcés et de la voix : même pour une seule personne, l’onde se modifie suivant l’âge, l’humeur, l’état de santé (rhume ou enrouement), l’environnement, etc. Mais, surtout, la représentation graphique du son diffère considérablement d’une personne à une autre, si bien qu’il est possible d’identifier un individu à partir de son « empreinte vocale », à l’instar des empreintes digitales. Voilà précisément d’où provient la difficulté de la reconnaissance de la parole, lorsqu’elle concerne un nombre illimité de locuteurs. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
47
Premièrement, il s’agit de capter le signal vocal (analogique) et de le traduire sous forme numérique (conversion analogique – numérique). Cette conversion est effectuée par des convertisseurs analogiques-numériques . En général, ce n’est pas la totalité du signal qui est captée, mais des éléments de signal limités dans le temps ; cette étape s’appelle échantillonnage . L’ensemble des échantillons, après avoir été codé, peut être réduit par des techniques de compression de signal, afin de limiter leur volume, tant pour le stockage que pour la transmission. Jusque-là, nous sommes encore dans un domaine classique, puisque ces techniques de conversion, échantillonnage et compression sont largement utilisées dans les télécommunications, ainsi que les techniques audio et video. La reconnaissance de la parole, qui consiste à comparer des objets mathématiques résultant de ce prétraitement. Deux tels objets, représentant des « éléments vocaux », même s’ils ne sont pas parfaitement identiques, doivent néanmoins être à la fois suffisamment proches pour pouvoir être identifiés, et assez distincts des autres éléments pour lever toute ambigüité. Le problème consiste à déterminer, pour chacun de ces éléments un certain nombre de paramètres décisifs.
II.2.2.2. Principe de la reconnaissance de la parole
La reconnaissance de la parole s’insère dans le cadre plus général de la reconnaissance des formes. Un son correspondant à un mot est prononcé oralement devant le microphone, qui convertit le signal acoustique en un signal électrique. Celui-ci est soumis à un prétraitement (numérisation, séparation du signal pertinent par rapport au bruit ambiant), puis il subit la paramétrisation (extraction de paramètres). Ce traitement s’applique tant en phase d’apprentissage qu’en phase de reconnaissance. L’utilisation du système consiste à comparer un nouveau son à un son de l’ensemble d’apprentissage. Il s’agit d’un problème de classification (d’un mot dans un ensemble prédéfini) ou de décision (de rattacher un mot à l’un ou l’autre des mots appris). Schématiquement, nous obtenons le schéma suivant :
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
48
Mot prononcé
Microphone
Prétraitement :
- numérisation - séparation parole / bruit
Paramétrisation
Caractéristiques du mot à reconnaître
Ensemble d’apprentissage
Comparaison
Mot reconnu Figure : Principe de reconnaissance de la parole(mots isolés)
II.2.2.3. L’analyse du signal
Pour analyser un signal, il existe plusieurs solutions : - Les méthodes temporelles : A partir de courbe représentative du signal, on tire un certain nombre de paramètres (soit les abscisses de passage par zéro de cette courbe, soit les coordonnées de ses maxima et minima). - Les méthodes fréquentielles : elles sont aussi appelées méthodes spectrales. Elles jouent un rôle fondamental en analyse du signal, dont la parole est un cas particulier. Les sons émis par la voix peuvent, en effet, être assez bien décrits en termes de fréquences. Le spectre fréquentiel d’un signal est sa transformée de Fourrier, c'est-à-dire la représentation de son amplitude en fonction de la fréquence. La parole étant un phénomène non stationnaire, il importe de faire intervenir le temps Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
49
comme troisième variable dans la représentation. La surface dans l’espace de tridimensionnel de coordonnées amplitude-fréquence-temps caractérise entièrement le signal : c’est l’ « image acoustique ». Elle peut être analysée par un banc de filtre. Un jeu de huit filtres ou plus, échantillons entre les fréquences de 300 et 5000 hertz (ou vibrations par secondes), conviendra en général. L’analyse, effectuée 50 ou 100 fois par seconde, donnera pour chaque filtre la valeur numérique de l’amplitude correspondant à la fréquence du filtre. L’ensemble des valeurs numériques ainsi obtenues pour un mot constitue l’image acoustique spectrale, ou « sonagramme », de ce mot. Le choix des paramètres pour le traitement du signal peut aussi s’inspirer des modèles physiques du mécanisme phonatoire humain. L’état des cordes vocales peut être décrit par un ensemble de paramètres numériques qui définissent un son vocal. C’est ainsi que l’on peut mettre en évidence des fréquences privilégiées, appelées « formants », lesquelles peuvent constituer des paramètres du signal vocal. Chaque voyelle se compose d’un ou plusieurs formants. Contrairement aux voyelles relativement stables, les consonnes sont surtout déterminées par les transitions avec les phonèmes environnants. II.2.2.4. Le système de reconnaissance
Quelle que soit la codification du signal vocal, le problème fondamental consiste ensuite à établir une correspondance entre différentes prononciations du même mot, c'est-à-dire effectuer un calcul de similitude pour déterminer, parmi un ensemble de mots ou de phonèmes, les plus ressemblants. Or, pour le même mot, les durées des phonèmes, les fréquences des formants, les transitions peuvent considérablement différer d’un locuteur à un autre. Il s’agit de rechercher, dans les différents diagrammes correspondant à un même mot, les « invariants » qui parviennent à leur donner une allure générale commune. Les deux phases de tout système de reconnaissances telles que nous venons de le voir sont : l’ apprentissage et la reconnaissance. Dans le cas de la parole , nous avons deux phases : - La première phase, dite « phase d’apprentissage », consiste à stocker un certain nombre de mots ou de phonèmes prononcés isolément, plusieurs fois chacun, et une « étiquette », qui peut être un numéro d’ordre ou leur forme orthographique, leur est affecté. - Dans la seconde phase, dite « phase de reconnaissance », un locuteur prononce l’un des mots de la liste, et la machine doit le comparer à ceux qu’elle a mémorisés et le classer dans l’une des catégories. Lorsque la correspondance est trouvée, l’ordinateur peut soit prononcer ce mot, par synthèse vocale, soit l’afficher sur un écran pour que le locuteur puisse s’assurer que l’interprétation est correcte. II.2.2.5. Le traitement global ou analytique de la parole
Deux approches, l’approche globale et l’approche analytique, peuvent être appliquées au traitement de la parole. L’approche globale, qui utilise comme unité de base « le mot », ne fait pas intervenir le niveau phonétique, mais passe directement du niveau acoustique au niveau lexical. Elle consiste à rechercher, pour chaque mot, la plus grande ressemblance avec l’un des modèles mémorisés lors de Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
50
la phase d’apprentissage ; à chaque comparaison, une note mesurant la ressemblance avec le modèle est attribuée ; à la fin du processus, le mot retenu sera celui qui a obtenu la meilleure note. Cette technique présente l’inconvénient d’être relativement lente et gourmande en mémoire. L’approche analytique consiste à sélectionner, pour chaque mot, un ensemble de traits caractéristiques sur le plan phonétique ; le signal est découpé, et chaque segment doit être identifié par sa valeur phonétique. L’examen d’un sonagramme révèle généralement une alternance de zones transitoires et de zones quasi stables correspondant approximativement aux formants ; le processus d’identification consiste alors à comparer chacun de ces segments, représentés par son spectre, à une série de spectres de référence (un pour chaque son élémentaire), et à retenir les plus ressemblants. Cette dernière méthode, qui ne nécessite pas d’apprentissage préalable, est cependant plus délicate à mettre en œuvre, car nous ne savons pas, à l’heure actuelle, reconnaître les phonèmes dans l’absolu, c'est-à-dire indépendamment du locuteur. II.2.2.6. Le système mono-locuteur ou multi-locuteurs
Parmi les systèmes de reconnaissance de la parole, on distingue les systèmes mono-locuteurs et les systèmes multi-locuteurs. Les premiers ne peuvent reconnaître que les mots prononcés par la personne qui a effectué la phase d’apprentissage. Un système multi-locuteur fonctionne sur le même principe, mais l’ensemble d’apprentissage doit être beaucoup plus vaste. Au cours de cette phase, chaque son ou chaque mot stocké dans le système est prononcé par plusieurs locuteurs différents. Le système effectue ensuite une sorte de moyenne, c'est-à-dire mémorise un signal plus ou moins proche des signaux correspondant aux différentes prononciations d’un mot. Enfin, pour la reconnaissance, le système doit avoir une tolérance assez élevée, sachant que les mots à reconnaître sont prononcés par une personne différente, dont on ne connaît pas les particularités par avance. Ces systèmes doivent ainsi établir un compromis entre une tolérance assez grande pour admettre la plus grande variété de locuteurs possible – même s’ils ont un accent étranger- et des capacités de discriminations suffisantes entre des mots différents. Ce sont de tels systèmes qui sont notamment mis en place pour des services téléphoniques dans certaines villes en France. II.2.2.7. Les mots isolés ou phrases
La reconnaissance de mots isolés est assez bien maîtrisée. Actuellement, de systèmes s’attaquent au problème de la reconnaissance de mots enchaînés à l’intérieur de phrases, sans pauses artificielles. Ce problème est en passe d’être résolu : le système est capable de discerner certains mots clés dans la phrase, sans pour autant comprendre celle-ci dans son ensemble. Afin de résoudre le problème dans sa totalité, c'est-à-dire comprendre toute la phrase, il faudrait d’énormes capacités de stockage d’informations (vocabulaire et formes diverses de prononciations) et des processeurs capables de traiter en temps réel des flux de données très rapides. Ce dernier problème fait appel, non seulement à des notions acoustico-phonétiques, mais aussi à des règles syntaxiques, à la sémantique, à la linguistique, etc. Il s’agit là d’un problème de compréhension de la parole ou du langage naturel plutôt que de reconnaissance proprement dit.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
51
L'analyse de la reconnaissance vocale a donné lieu à de nombreux travaux depuis plus de 25 ans, les applications ne se restreignent pas uniquement aux ordinateurs. Déjà certains systèmes (simples voire simplistes) équipent des véhicules de haute gamme, on assiste actuellement à des voitures qui réagissent à des ordres , le téléphone qui compose automatiquement des numéros -dans ce cas on peut imaginer que la personne utilisant un composeur vocal associe un mot clef à un numéro donné, puis n'a plus qu'a citer ce mot, pour que le numéro soit appelé (la société Thomson CSF a d'ailleurs développé et fabriqué de tels composants). Le KATALAVOX de M. Kempf (1985) utilisé pour commander un appareil chirurgical à l'aide des quatre commandes directionnelles ``up'', ``down'', ``left'' et ``right''. La reconnaissance vocale repose sur une relation bi-univoque entre un ensemble de sons appris (entendus, mémorisés) et les sons perçus ultérieurement. L'élément de base est le phonème (au lieu du pixel) ; le français comporte quelques 33 phonèmes distincts. En réalité on travaille sur les diphonèmes (33 × 55 ≈ 1000), et de plus ce diphonème est affecté par le phonème précédent et le phonème suivant soit au total quelques 106 combinaisons. II.3. LA ROBOTIQUE
C’est un domaine de l’intelligence artificielle qui consiste à mettre en place ou à développer des robots qui sont capables de manipuler des objets et réagir à des modifications de l’environnement. Autrement dit, on définit la robotique comme étant un ensemble de techniques permettant la conception et la mise en œuvre des dispositifs (dispositifs) destinés à substituer l’homme dans ses fonctions motrices, sensorielles et intellectuelles. Ces dispositifs peuvent être programmés pour réaliser des actions bien déterminées ou pour agir par apprentissage. II.4. JEUX ET RESOLUTION DES PROBLEMES
La résolution de problèmes est le domaine par excellence où intervient le premier jugement. Aussi c’est l’une des premières applications envisagées pour l’IA. L’un des premiers programmes d’IA est le Logic Theorist de A. Newell et W. Simon (1957), dont l’objectif était de comprendre l’activité humaine de résolution de problèmes, et notamment le raisonnement déductif. Après avoir été appliqué à des jeux, ce programme fut aussi utilisé à la démonstration automatique de théorèmes. Toutefois, il ne s’agissait que de redémontrer des théorèmes déjà prouvés, aucun théorème nouveau n’ a pu être démontré de cette manière. En général, le raisonnement appliqué pour résoudre un problème est proche de celui utilisé dans les jeux. Entre le jeu et la résolution de problèmes, il n’y a guère de différence : la solution peut être représentée par comme un cheminement à travers un ensemble d’états, à partir des conditions initiales. Il s’agit donc de trouver les états intermédiaires. C’est sur ce principe que les pionniers de l’IA, Newell et Simon, ont conçu en 1959 leur « General Problem Solver (GPS)». Le principe de Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
52
fonctionnement utilise les méthodes d’exploration et consiste à rechercher les différences entre situation courante et but à atteindre, et réduire ces différences. Son influence a été très grande en IA. Le « General Problem Solver » ( GPS) de Newell et Simon est le système de résolution de problème le plus important dans l’histoire de l’Intelligence Artificielle . C’est le premier modèle complet du traitement humain de l’information. La résolution des problèmes est ramenée à des procédures de recherches heuristiques (recherche sur l’étude des cas) dans une structure de graphe. La résolution est vue comme un cheminement inférentiel, une succession de solutions partielles. La résolution d’un problème qui est posé informellement en langage naturel, se fait en deux temps : - Le choix d’une représentation et de la spécification formelle de l’énoncé. - La résolution par la machine de l’énoncé formalisé et la construction de la solution. Les jeux sont si divers qu’ils fournissent une bonne base d’expérimentation pour l’intelligence, et donc pour l’IA. A commencer par les échecs et les divers casse-tête, mettant en œuvre la compréhension, la stratégie, la planification ou génération de plans d’action, la décision, la conduite de processus, l’évaluation, la simulation, l’optimisation, la prévision…Aussi, l’IA a été appliquée dès ses débuts aux jeux, et ce sont souvent des jeux qui servent d’évaluation pour un langage ou une machine spécialisés en IA. Parmi les problèmes ou jeux les plus couramment cités, nous trouvons « le fermier, le loup, la chèvre et le chou », « la voyageur de commerce », « les huit reines », et autres jeux d’empilement (« les tours de Haoï ») ou de récipients à remplir et vider. L’objectif est de parvenir au but avec le moins d’opérations possible, dans des situations où le nombre d’état est extrêmement grand et où il est exclu d’explorer systématiquement toutes les solutions. C’est donc d’heuristique qu’il s’agit. II.5. LES SYSTEMES EXPERTS
La plupart des activités intelligentes relevant de l’être humain, reposent sur des connaissances nombreuses et variées qui sont exploitées à bon escient. Un domaine majeur de l’intelligence artificielle relatif à la conception des systèmes à base de connaissances s’appelle systèmes experts. Ces systèmes sont construits notamment pour atteindre les performances d’un expert humain dans des connaissances limitées en exploitant un ensemble des connaissances acquises par les experts dans ce domaine. C’est à partir de 1975 que ces systèmes sont apparus et ont eu un impact sur l’intelligence artificielle. Le terme système expert a tendance à disparaître au profit du concept plus général ‘‘systèmes basés sur la connaissance’’ que l’on retrouve dans les différents domaines d’activités de l’intelligence artificielle. Ces concepts sont fondés sur une séparation entre les connaissances nécessaires pour résoudre un problème et les mécanismes de raisonnement qui exploitent ces connaissances.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
B.C
53
Moteur d’inférence : structure de contrôle : Inférence engine : Structure de résolution des problèmes : Interpréteur
M.I
Cette définition montre la dualité entre les connaissances et le raisonnement qui vient compléter la structure algorithmique traditionnelle de l’information procédurale. Le terme connaissance recouvre les différentes formes du savoir : les objets du monde, les faites concernant ces objets (par exemple : les yeux sont jaunes, la neige est blanche, le véhicule est en mouvement, etc.), la classification de ces objets, les événements (par exemple : la température du four s’est mise à osciller), les règles heuristiques de savoir faire (par exemple : si le moteur cale à froid alors le gicleur peut être bouché,...). C’est l’un des domaines de l’intelligence artificielle qui est le plus utilisé. L’idée d’un système expert c’est de permettre à un expert d’un domaine quelconque tel que la médecine, la géologie, les assurances, les banques, ... de communiquer son savoir faire à un ordinateur dans le but de faire utiliser son expertise par un non expert. En d’autres termes, l'idée d'un système expert est de «reproduire un raisonnement ». Lorsqu’il s’agit d’un système expert dans le domaine de gestion d’une entreprise on parle alors des systèmes experts en gestion. Un système expert (SE) est un programme informatique intelligent qui utilise de connaissances et des procédures d’inférences dans le but de résoudre des problèmes d’une difficulté telle qu’ils requièrent une expertise humaine conséquente. Les connaissances nécessaires pour y arriver ainsi que les procédures d’inférence utilisées peuvent être assimilées à une modélisation de l’expertise des meilleurs spécialistes du domaine considéré. Un système expert est aussi un système d’aide à la décision basé sur un moteur d’inférence et une base de connaissances. Il est la transcription logicielle de la réflexion d’un expert dans un domaine donné. Il est capable de déduction logique et de produire une solution qui semble la plus juste. Il reste toutefois un outil d’aide à la décision et est loin de pouvoir remplacer l’intelligence de l’expert. Les systèmes experts ne sont en aucun cas des logiciels adaptatifs, mais plutôt des applications dédiées à leur domaine d’activité. C’est pourquoi les systèmes experts sont des progiciels au sens pur. Ils sont généralement conçus pour résoudre des problèmes de classification ou de décision. En d’autres termes, le système expert est une application capable d’effectuer dans un domaine précis des raisonnements logiques comparables à ceux que feraient des experts humains de ce domaine. C’est un système d’aide à la décision. On peut retenir les points suivants : Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
54
-
les systèmes experts sont généralement conçus pour résoudre des problèmes de classification ou de décision ;
-
les systèmes experts sont des outils de l’intelligence artificielle, c'est-à-dire qu’on ne les utilise que lorsque aucune méthode algorithmique exacte n’est disponible ou praticable ;
-
un système expert n’est concevable que pour les domaines dans lesquels existent des experts ;
-
l’intérêt d’un système expert est que l’on peut à tout moment interroger le système pour connaître les règles qui lui ont permis de déduire telle ou telle autre conclusion.
Il existe un certain nombre d’activités abordables pour la technique des systèmes experts. Et si l’on veut travailler dans ce domaine, il est très important de pouvoir identifier le problème auquel on désire s’attaquer et ce par rapport à ces activités. En effet, si le problème ne relève pas d’un de ces activités que nous allons voir, il est fort probable que, soit le problème relève de la technique classique dite algorithmique, soit il n’est pas encore abordable par le système expert car l’entreprise qu’ils requièrent est trop difficile à formaliser. Les différents catégories d’activités des systèmes experts peuvent se présenter de la manière suivante (en allant du plus simple au plus complexe) : l’interprétation, le diagnostic, l’évaluation, la prédiction, la planification, etc. Comme tout programme informatique, sa réalisation passe par un certain nombre d’étapes : la conceptualisation (analyse), la formalisation (conception), l’implantation ou l’implémentation (programmation) et les tests. Plusieurs acteurs sont indispensables tels que l’expert (les experts), l’ingénieur de connaissance, les informaticiens, les utilisateurs et les gestionnaires. Tous les langages (classiques, orientés – objets, d’intelligence artificielle) peuvent être utilisés. Dans le domaine de la gestion, on parle de systèmes experts en gestion Lorsque la notion de temps est prise en compte dans le pilotage d’un dispositif, on parle de système temps, système embarqué, etc. II.6. L’APPRENTISSAGE
L’apprentissage est une activité très complexe et composée de plusieurs processus qu’il est difficile à décrire. Néanmoins, selon le dictionnaire Le Petit robert, « apprendre » signifie : - Etre capable de connaître, de savoir, - Etre avisé, informé de quelque chose - Acquérir un ensemble de connaissances par un travail intellectuel ou par l’expérience. - Modifier la tendance comportementale par expérience Donc, « apprendre est une activité concernant la connaissance. Il existe deux volets d’apprentissage : l’apprentissage naturel et l’apprentissage artificiel. Dans le premier volet d’apprentissage qui relève de l’être humain, la modification des potentialités de Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
55
comportement résulte d’une interaction répétée avec l’environnement. Dans l’apprentissage artificiel, un programme possède des capacités d’apprentissage. En d’autres termes ses potentialités de comportement sur les données se modifient en fonction de ses performances au fur et à mesure qu’il traite les données. Autrement dit, l’apprentissage artificiel est une activité circulaire, qui extrait des connaissances à partir des observations disponibles et utilise ces connaissances pour chercher de nouvelles informations, ou écrire différemment les observations ( prise automatique de décisions et / ou compréhension). L’Apprentissage (artificiel) est donc un domaine de l’intelligence artificielle ou l’on exploite la faculté d’apprendre pour accroître ses connaissances, améliorer ses aptitudes et pour affiner les mécanismes de raisonnement. Nous pouvons citer comme sous branches d’apprentissage : - L’apprentissage par mémorisation ou par implantation - L’apprentissage par instruction ou par conseil - L’apprentissage par résolution des problèmes - La déduction - L’induction II.7. LA MODELISATION COGNITIVE ET XIAO
La modélisation cognitive est un domaine de l’IA qui utilise la simulation des processus cognitifs en vue d’expliquer les mécanismes intellectuels. Cependant, l’IA sert non seulement à simuler ou reproduire le raisonnement, mais aussi à ressembler, conserver et rendre accessible les connaissances disponibles dans un domaine donné. En particulier, toute activité de conception et même toute activité en général peut avoir besoin de telles connaissances, à un moment ou à un autre. Ces connaissances peuvent se présenter comme une « aide en ligne », accessible sur un poste de travail, en l’occurrence un ordinateur. C’est ainsi que toutes les tâches informatiques peuvent bénéficier de l’IA, en particulier celles que l’on désigne sous le sigle XAO ou X (n’importe quoi) Assistée par Ordinateur, qui deviennent désormais XIAO ou « X Intelligemment Assisté par Ordinateur ». On y trouve : - L’enseignement assisté par ordinateur (EAO) - La conception assistée par ordinateur (CAO) - Conception Assistée par Intelligence Artificielle (CAIA) Un logiciel de Conception Assistée par Ordinateur (CAO) par exemple, peut bénéficier des connaissances d’un expert en conception, qu’il s’agisse de conception électronique ou architecturale, de développement de logiciel ou de dessin d’une automobile. Jusque dans les dessins animés, où l’IA peut fournir des modèles comportementaux des objets et des éléments, faisant intervenir des paramètres comme le temps, la masse et la gravitation, la nature du sol, la résistance de l’air, la présence d’obstacles… De telles connaissances peuvent être utilisées dans un Enseignement Assisté par Ordinateur ( EAO), lequel est alors capable de s’adapter au niveau et aux besoins de l’apprenant (élève), en lui fournissant les connaissances au fur et à mesure de ses demandes, et non d’une manière prévue par le programmeur une fois pour toutes. Enfin, l’IA est appliquée au génie logiciel (l’activité de développement de programme) pour simplifier cette tâche en autorisant la programmation automatique . Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
56
II.8. LES RESEAUX DE NEURONES
Le neurone est l’unité de base du système nerveux. Il est composé d’un petit corps de cellules avec des longues extensions fibreuses appelées Axones et dendrites. Les terminaisons des axones d’un neurone rencontrent les terminaisons des dendrites de nombreux autres neurones et forment dans le cerveau un réseau complexe et changeant. L'objectif des réseaux de neurones artificiels, c’est d'essayer de récupérer tout ou une partie des fonctionnalités d'un cerveau humain telles que : • • • • • • •
architecture massivement parallèle, calcul et mémoire massivement distribués, capacité d'apprentissage, capacité de généralisation, capacité d'adaptation, forte tolérance aux pannes, faible consommation énergétique.
II.9. CONTROLE ET CONDUITE DE PROCESSUS
L’IA peut aussi être appliquée au contrôle et à la conduite de processus industriel. L’activité de conduite de processus par un opérateur est une activité de surveillance, consistant essentiellement à prévoir pour pouvoir intervenir. Prévoir, c’est détecter dans le système des indices précoces de déviation par rapport au comportement normal, tant en ce qui concerne la grandeur des paramètres en jeu que les retards et gains de temps éventuels. La conduite des processus implique donc le recueil des données essentielles, leur interprétation, la comparaison avec le modèle de comportement, la détection et la mesure des anomalies. A partir de là, un diagnostic peut être établi, où interviennent les capacités de raisonnement détaillés ci-dessus. Le contrôle de processus passe donc par deux étapes, qui se retrouvent d’ailleurs dans toute approche scientifique d’un problème : la modélisation et la résolution. Ces deux étapes interviennent également dans toutes les actions de perception, qu’il s’agisse de la vue, de l’ouïe ou du toucher, les trois sens les mieux formalisés et maitrisés du point de vue biologique, et donc à priori les plus faciles à reproduire. Ce sont elles qui sont mises en œuvre dans les programmes de reconnaissance d’images, de traitement du signal, de reconnaissance de la parole…La compréhension du langage naturel présuppose, elle aussi une représentation de l’univers, à laquelle est superposée une stratégie pour faire coïncider le sens d’une phrase perçue avec un état possible de cet univers. Le mouvement autonome, tel celui du robot, combine les différentes approches ; la perception externe (extéroceptive) et interne (proprioceptive), la modélisation de l’univers à partir de cette perception, et enfin, en fonction de cette modélisation, la meilleure stratégie pour parvenir à un objectif. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
57
II.10. INGENIERIE COGNITIVE II.10.0. Introduction
Les fonctions telles que connaître, raisonner, apprendre, mémoriser, percevoir, communiquer, analyser, juger, décider, survivre, s’adapter…, présupposent une certaine intelligence. A divers degrés, elles caractérisent le règne vivant. Leur étude, ainsi que la conception et l’évaluation des interactions entre l’homme et la machine relèvent des sciences cognitives . La notion clé des sciences cognitives est l’information, fondamentale comme l’est la notion de force en physique. Les sciences cognitives sont le passage obligé pour développer des systèmes à base de connaissances ( SBC), pour réaliser des systèmes d’assistance à l’opérateur, élaborer des logiciels d’enseignement assisté par ordinateur, concevoir des systèmes « intelligents » d’aide à la décision, de gestion d’alarmes, de contrôle de procédé, et d’autres XAO ( « X » Assisté par Ordinateur). Plus concrètement les sciences cognitives étudient : Le substrat matériel de l’intelligence, c'est-à-dire le système nerveux et le cerveau, Les mécanismes mentaux, sources des comportements de l’être humain et de l’animal, Les manifestations de ces structures et mécanismes, à travers le perception, le raisonnement, la mémoire, le langage, l’affectivité… La simulation de ces fonctions par les machines, les ordinateurs et l’informatique. Ce dernier axe, consistant à réaliser des artefacts à partir des connaissances scientifiques, est appelé ingénierie cognitive . Ces éléments constituent l’objectif même des sciences cognitives. Elles peuvent également être définies par le champ disciplinaire couvert : la psychologie, le logique, le linguistique, l’informatique et l’intelligence artificielle, le philosophie, les neurosciences, l’anthropologie, l’épistémologie, etc. L’ingénierie cognitive est une pluri-disciplinaire, voire trans-disciplinaire. Elle tire ses connaissances de la biologie et des sciences humaines, notamment de la psychologie du travail et de l’ergonomie… Pour les réinvestir, avec une bonne dose de mathématiques, dans les techniques de l’ingénieur en informatique, automatique et productique, en vue de réaliser des simulations. Elle consiste à abstraire les principes dynamiques fondamentaux sous-jacents aux phénomènes biologiques et expérimenter ces dynamiques sur d’autres supports physiques. En cela, elle n’est que le prolongement de la cybernétique et de la systémique. Enfin, elle fait appel à la philosophie pour raccorder le domaine de ma réalité et de l’artefact. En effet, les sciences cognitives s’intéressent particulièrement à cette relation entre réalité et artefact, entre biologie et informatique, entre organisation et adaptation, entre autonomie et commande. D’ailleurs, à l’interface entre la réalité et l’artefact se trouve encore une branche des sciences cognitives, celle qui concerne les interactions homme-machine . Pour réaliser des interfaces homme-machine ergonomiques et conviviales, les machines destinées à des utilisateurs non informaticiens, dans des environnements spécifiques, comme ceux de l’aéronautique (contrôle aérien ou conception d’un poste de pilotage) ou de l’espace, ou encore l’EAO, il est nécessaire de modéliser le comportement humain dans toutes les situations imaginaires. Cette modélisation fait également appel aux sciences cognitives. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
58
Deux courants de recherche se dégagent : le premier concerne l’application des artefacts aux sciences de l’ingénieur, pour lesquels les bases mathématiques expliquent exactement ce qu’ils sont capables de faire, dans quelles conditions et pourquoi ils fonctionnement bien, quelles sont leurs limites, et cela sans la moindre référence au cerveau ou au système nerveux. L’autre voie de recherche, c’est l’utilisation de ces artefacts pour la modélisation des systèmes vivants. Les deux courants vont probablement converger dans la mesure où des données venant de la neurobiologie pourront aider à réaliser artificiellement des fonctions comme l’apprentissage, le raisonnement, l’adaptation…, et donner ainsi une impulsion nouvelle aux techniques d’IA. II.10.1. Acquisition et modélisation des connaissances
Les sciences cognitives s’intéressent d’abord, comme leur nom l’indique, à la connaissance. En particulier aux connaissances nécessaires pour développer des applications d’IA. Or le recueil, la mise en forme et la gestion de l’évolution des connaissances sont les tâches les plus délicates dans de telles applications. En l’absence d’une méthodologie, la cohérence interne de la base de connaissances ne peut être garantie, et la phase d’expertise devient rapidement le goulet d’étranglement de tout projet. C’est là l’une des principales raisons de l’échec relatif de nombreux projets d’IA. Cette constatation a abouti à la création de méthodes d’analyse et de représentation des connaissances, dont les plus développées sont KOD (Knoweledge Oriented Design) et KADS (Knowledge Acquisition and Design Support). Ces méthodes permettent de passer du monde réelcelui que connaît l’expert et du discours humain ou d’un corpus textuel, à une représentation exploitable par la machine et décrite dans un langage compréhensible par celle-ci. Elles comportement différentes étapes, de la formalisation à la vérification de la cohérence des connaissances, en passant par leur validation. Ces méthodes permettent non seulement de réaliser une base de connaissances, mais aussi de consigner le savoir et le savoir-faire d’une entreprise, d’un peuple, d’un corps de métier, et de constituer une véritable mémoire d’entreprise ou mémoire d’une société , facilement accessible et exploitable aussi bien par l’homme que par la machine. II.10.2 Apprentissage automatique
Certains projets d’IA, comme nous venons de le voir, doivent prendre en compte d’énormes quantités de connaissances et, leur acquisition par les machines pose un problème aux informaticiens, cogniticiens et même experts. C’est pourquoi l’apprentissage automatique est actuellement considéré comme l’une des préoccupations majeures. L’objectif est de doter les systèmes d’une plus grande autonomie. En outre, cette faculté semble être la clé unique pour une intelligence plus « naturelle ». L’apprentissage automatique est un cas particulier de résolution de problèmes : à partir d’un environnement de données, d’informations, il s’agit pour le système d’en sélectionner certaines, de les structurer, de les intégrer à l’ensemble déjà mémorisé, afin de pouvoir les utiliser ultérieurement. Pour cela, le système requiert, au préalable, une certaine connaissance, ou métaconnaissance, qui lui permettra d’acquérir ou de découvrir de nouvelles connaissances. Cette idée s’inspire du modèle Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
59
humain : à la naissance, l’homme a peu de connaissances innées, qu’il puisse utiliser immédiatement, à l’encontre de la plupart des animaux ; en revanche, il possède un capital de métaconnaissances lui permettant d’acquérir de nombreuses connaissances adaptées à ses besoins. C’est ainsi que, contrairement aux animaux, les humains ne possèdent pas un langage particulier à la naissance, mais ils peuvent, grâce à leurs métaconnaissances, apprendre n’importe quelle langue. Les techniques d’apprentissage automatique s’inspirent des expériences de psychologie mettant en évidence les processus de mémorisation. C’est ainsi que Hebb a modélisé , au niveau neuronal, le phénomène de plasticité synaptique permettant d’expliquer l’associativité de la mémoire (1949). Un autre modèle de mémoire associative s’inspire de l’holographie. Hopfield ( 1982) et Kohonen (1984) ont complètement formalisé le phénomène de mémoire associative. Ces recherches sont appliquées à l’apprentissage dans les réseaux neuromimétiques ou réseaux de neurones. A coté de ces techniques d’apprentissage essentiellement numérique, différentes techniques d’apprentissage symbolique se sont développées dans le sillage de l’IA, principalement pour les systèmes experts. II.10.3. Apprentissage symbolique
L’apprentissage symbolique peut s’effectuer suivant différentes modalités : par induction, par l’observation et la découverte, par analogie, par explication. L’apprentissage par induction s’effectue à partir d’exemples ou d’observations, à partir desquels le système d’apprentissage induit la description d’un concept général décrivant tous les exemples. Si l’on prend des groupes humains avec différents critères physiques (taille, couleur des yeux et des cheveux) et un critère géographique (pays d’origine), une généralisation serait : « Les suédois sont plus grands, ils ont plutôt les cheveux blonds et les yeux bleus, et les Espagnols sont plutôt petits, ils ont plutôt les yeux et les cheveux nois ou bruns ». Dans le cas d’un apprentissage par l’observation et la découverte , le système cherche des régularités et des règles générales expliquant tout ou la plus grande par des observations. L’idée est de comprendre les mécanismes de raisonnement conduisant à la découverte scientifique. Après une série d’essais, erreurs et raffinements successifs, doit émerger une formule satisfaite sur tous les exemples observés. L’apprentissage par analogie s’appuie sur la théorie de Schank de l’organisation de la mémoire (1980) : face à une situation nouvelle, un être humain se rappelle les situations passées similaires, afin de reproduire les comportements qui s’étaient avérés efficaces lors de ces situations passées ; la stratégie est adaptée en fonction des différences existant entre les situations similaires. Dans l’apprentissage par explication, on s’intéresse aux raisons de l’échec ou du succès de la solution trouvée par un système de résolution de problème. L’idée est d’acquérir des heuristiques en tentant de comprendre, à travers différents exemples, pourquoi telle ou telle solution fonctionne ou non, dans tel ou tel cas. II.10.4. Apprentissage numérique
Les connaissances apprises par des méthodes symboliques peuvent être affectées de coefficients ou « poids de connaissances », mesures probabilistes liant les ascendants aux conséquences, combinant ainsi l’approche numérique à l’apprentissage symbolique. Cette tactique d’apprentissage Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
60
par « punition / récompense » permet de sélectionner les connaissances à apprendre suivant leur valeur : le poids est d’autant plus élevé que la connaissance mène au succès. Les connaissances ayant un fort poids sont ainsi renforcées, tandis que celles qui ont un coefficient faible sont éliminées. Ces méthodes de sélection peuvent s’inspirer des lois naturelles, notamment celle de l’évolution de Darwin. Une telle méthode met en jeu un algorithme particulier, dit algorithme génétique , qui s’applique, par exemple, aux règles d’un système expert : les règles inefficaces sont éliminées et remplacées en recombinant des fragments des deux « bonnes » règles (« bonnes » en fonction de critères prédéterminés), la règle « fille » ainsi obtenue étant supposée « héritier » des qualités de ses « parents » ; par ailleurs, quelques règles prises au hasard, mais jamais choisies parmi les meilleures, subissent des « mutations ». L’ensemble des règles, élagué par ce principe de sélection, a une structure proche de l’ensemble initial, mais sa formulation est plus succinte : seules les règles les mieux adaptées survivent d’une génération à l’autre. II.10.5. Apprentissage dans les réseaux neuromimétiques
L’apprentissage est l’une des propriétés des réseaux neuromimétiques. Dans ces systèmes, la connaissance est mémorisée au niveau des interconnexions ou synapses. Au cours de la phase d’apprentissage, le réseau organise sa structure à partir des données qu’il doit mémoriser. L’apprentissage consiste à fixer les valeurs des coefficients synaptiques. Il s’agit donc d’une approche numérique, algorithmique, où les paramètres ajustables sont matérialisés sous la forme des synapses. Les méthodes d’apprentissage numérique citées ci-dessus peuvent s’y appliquer. L’un des algorithmes d’apprentissage les plus utilisés dans les réseaux neuromimétiques est la rétropropagation du gradient Cet algorithme s’efforce de minimiser une valeur, qui est fonction du nombre des erreurs observées sur l’ensemble des configurations d’apprentissage. Le système obtenu remplit bien une fonction de mémoire associative : partant d’une configuration initiale proche d’une des formes mémorisées lors de l’apprentissage, le réseau converge vers un état d’équilibre qui diffère très peu de la forme mémorisée. II.10.6. Organisation, adaptation, autonomie
Dans les années quarante, des mathématiciens et physiques, sous la conduite du mathématicien américain Norbert Wiener, ont étudié les systèmes biologiques, et surtout le cerveau, comme s’il s’agissait de machines. Cette démarche a reçu le nom de cybernétique , du grec kubernèsis (action de gouverner). Déduite de recherches poursuivies dans le domaine des mathématiques pures, de la technologie, de la biologie et des sciences humaines, la cybernétique est destinée à couvrir tous les phénomènes qui mettent en jeu des mécanismes de traitement de l’information. L’une de ses applications est la régulation des systèmes biologiques, faisant intervenir en particulier la notion de rétroaction (feed-back), très importante dans les processus de contrôle et d’apprentissage. En tant qu’étude des opérations contrôlées, la cybernétique ne s’intéresse pas aux systèmes en tant que tels, mais à la structure logique de leur fonctionnement. Ainsi, l’adaptabilité des systèmes biologiques aux variations du milieu est liée à la recherche incessante de nouveaux états d’équilibre pour ces systèmes, qui déterminent leurs propres directions de comportement ou leurs objectifs, sans jamais Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
61
retourner exactement à leur état antérieur. Cette faculté d’auto-organisation, propre aux systèmes vivants, s’applique aussi, dans une certaine mesure, à la matière en général. Les systèmes thermodynamiques, les galaxies, les systèmes planétaires, les cristaux constituent des exemples d’organisation de matière. La première tentative pour créer un système artificiel auto-organisé, suivant les principes de la cybernétique, est due au biologiste W.R.Ashby dans les années soixante : l’homéostat , constitué de quatre électro-aimants identiques, reliés entre eux par des fils conducteurs. Le nombre d’états possibles dans lesquels peut se trouver ce système est très élevé, mais peu de ces états correspondent à l’équilibre du système. Celui-ci a la propriété, s’il est perturbé, de revenir spontanément vers l’un de ses états d’équilibre. Si l’un de ses éléments est déconnecté, l’homéostat manifeste également des possibilités d’apprentissage par changement de configuration. Si cette machine « autonome » n’a eu aucune destination pratique, elle a permis le développement d’artefacts, dont les plus fameux et les plus utilisés aujourd’hui sont les réseaux neuromimétiques. II.10.7. De l’IA à la vie artificielle
La cybernétique et singulièrement les réseaux neuromimétiques ont ouvert aux cogniticiens un nouveau champ d’investigation : la vie artificielle , qui englobe toutes les recherches autour de l’IA non symbolique, de la robotique et des systèmes autonomes. L’objectif de la vie artificielle, c’est « d’abstraire des principes dynamiques du vivant, comme l’autonomie, l’apprentissage, l’adaptation, la morphogénèse …, pour les expérimenter sur les ordinateurs et les robots ». Tout ce qui touche à l’autonomie sensori-motrice, d’une part, et aux phénomènes d’évolution, d’autre part, intéresse les chercheurs dans ce domaine. Les phénomènes expérimentés dans ce cadre peuvent être appliqués à des robots dotés d’une certaine autonomie : au lieu de planifier leurs tâches, ceux-ci sont capables de deviner ce qu’ils doivent faire en fonction de leur environnement : ils apprennent , ils essaient, ils corrigent. II.11. LA PROGRAMMATION PAR CONTRAINTES
L’un des problèmes les plus classiques posés aux industriels consiste en la recherche de l’organisation optimale d’un ensemble d’objets ou d’entités (hommes, pièces, machines, etc.) devant respecter un certain nombre de contraintes : l’ordonnancement, la planification, l’allocation et la gestion des ressources… L’optimisation se trouve au cœur de nombreuses problématiques industrielles et organisationnelles. Contrairement aux systèmes experts, il ne s’agit pas là d’appliquer des règles de type « Si …alors… », mais de gérer une combinatoire, c'est-à-dire, parmi un très grand nombre de cas, de trouver en un temps limité ceux qui répondent aux impératifs du problème. On parle alors de problèmes de contraintes ou CSP (Constraint-Satisfaction Problem). En milieu industriel, on peut rencontrer des problèmes qui s’énoncent, par exemple, sous les formes suivantes : « La tâche A doit être effectuée avant la tâche B », « X hommes doivent être affectés à N postes », « La durée des processus A et B ne doit pas excéder 2 heures »… Les contraintes peuvent s’énoncer sous la forme d’équations mathématiques. Or les langages informatiques traditionnels n’offrent guère d’outils pour résoudre des équations. Pour une équation Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
62
aussi triviale que « 2x-1 = 0 », la programmation classique exige, en effet, que l’utilisateur « mâche le travail », c'est-à-dire décompose véritablement la solution du problème sous la forme d’algorithmes exprimés par une suite d’instructions. Aussi préférait – on jusqu’à présent traiter manuellement ce type de problème, soit par tâtonnement, soit à l’aide de techniques de recherche opérationnelle, une branche des mathématiques à base de résolution d’équations et d’inéquations. Depuis quelques années, une nouvelle approche émerge pour résoudre ce type de problèmes : la programmation par contraintes. Si ce n’est pas réellement une technique d’Intelligence Artificielle au même titre que les systèmes experts, la programmation par contraintes s’y rattache dans la mesure où ses outils sont développés par des personnes qui ont le savoir-faire de l’Intelligence Artificielle. Elle y est aussi apparentée en tant que technique de programmation déclarative. En particulier, elle combine les techniques de la programmation logique, comme Prolog et celles de la recherche opérationnelle. Les outils permettant la programmation par contraintes sont des langages de haut niveau, généralement dérivés des langages de l’IA. Avec un outil de programmation par contraintes, le développeur décrit, de manière déclarative, les objets et les contraintes auxquelles doivent satisfaire ces objets. Trouver une solution consiste à déterminer des valeurs pour les champs de ces objets qui respectent ces contraintes. Dès qu’une valeur est choisie, les contraintes préalablement déclarées dans le programme sont activées automatiquement pour réduire les valeurs possibles pour les autres contraintes. Applications de la programmation par contraintes
De nombreux outils de programmation par contraintes sont apparus sur le marché tels que : Prolog III, Charme de Bull qui est appliqué à la gestion des trains pour déterminer les horaires permanents à deux trains de se croiser à un endroit donné où la voie est dédoublée, sur des lignes à voie unique en Malaisie , Chip ( Constraint Handling in Prolog) qui a permis de réaliser et d’optimiser le câblage de grands bâtiments, en prenant en compte les contraintes topologiques, techniques et économiques du câbage, llog solver qui a permis de construire l’outil Caraïbe qui est appliqué à l’affectation des locomotives aux trains pour la SNCF, Chleo d’Axia Recherche , Decision Power, …C’est grâce à Charme que sont planifiées les missions des escadrons de la gendarmerie nationale. Ces outils se distinguent par leur origine : les uns sont nés dans la communauté Prolog, d’autres dans celle de Lisp. Ce sont des langages de haut niveau, intégrant des bibliothèques de programmation pour développer des applications comprenant la résolution de contraintes. La programmation par contraintes a encore servi pour développer des applications aussi diverses que la conception de clés pour des bâtiments spécifiques, selon le type d’usage et l’utilisateur ; l’optimisation de chaînes robotisées, la résolution de problèmes de comptabilité entre sous – systèmes électroniques, l’optimisation du stockage de conteneurs pour le terminal portuaire internationnal de Hongkong.. ; Outre le gain de temps que permet le programmation par contraintes par rapport à la planification manuelle, cette technique permet de garantir la qualité du résultat produit. Exemple de programmation par contraintes
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
63
Supposons que nous ayons à élaborer l’emploi de temps des différentes classes d’un complexe scolaire, comprenant plusieurs classes de 6e, de 5e, de 4e et de 3e, en tenant compte de contraintes concernant les professeurs, les salles de cours, les horaires, etc. Le problème s’énonce en termes de données et de contraintes, avec des inconnues. La résolution consiste à poser des questions de ces inconnues. Le résultat est fourni par une solution de ce système d’équations. Dans l’exemple suivant, nous avons omis la question des salles, le problème étant bien assez complexe ainsi. On pourrait ajouter, par exemple, qu’un salle est affectée à chaque classe, à l’exception de l’éducation physique, du dessin et de la technologie..Ou qu’un professeur est attaché à une salle, pour simplifier le problème. Solution au problème
Données :
• •
• •
14 classes ( 6eA, 6eB, 6eC, 6eD, 5eA, 5eB, 5eC, 5Ed, 4eA, 4eB, 4eC, 3eA, 3eB, 3eC) 15 professeurs ( 3 profs de math + 3 profs de français + 2 profs d’anglais + 1 prof d’allemand + 1 prof de technologie + 3 profs d’éducation physique + 1 prof de dessin + 1 prof de musique) 8 matières (mathématiques, français, anglais, allemand, technologie, éducation physique, dessin, musique) 5 journées de classe, de 7 heures maximum
Inconnues
•
L’affectation des différentes matières aux différentes classes.
Contraintes Contraintes de bon sens
• • • • • •
Un professeur donne un seul cours à la fois Les matières doivent être réparties équitablement sur la semaine L’éducation physique et la technologie ne peuvent excéder 2 heures dans la mêle journée Les heures d’éducation physique sont si possible, regroupées par deux Les professeurs sont spécialisés par programmes, donc par classes Les horaires des professeurs ne sont pas extensibles
Programmes à respecter
• • •
6e : 4h math + 5h français + 4h anglais + 4h education physique + 2h musique + 2h dessin 5e : 5h math + 5h français + 4h anglais + 4h education physique + 2h musique + 2h dessin 4e : 6h math + 6h français + 3h anglais + 4h allemand + 4h éducation physique + 1h musique + 1h dessin Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts •
64
3e : 6h math + 6h français + 3h anglais + 4h allemand + 4h éducation physique + 4h technologie + 1h musique + 1h dessin
II.12. LE RAISONNEMENT BASE SUR LE CAS
Le raisonnement basé sur le cas se présente comme une alternative aux systèmes experts. Les systèmes experts sont utilisés lorsque l’on connaît le domaine d’application, c'est-à-dire lorsqu’il existe une théorie, des connaissances ou du moins des règles. Mais, comment s’y prendre dans un domaine faiblement théorisé ? Souvent, lorsqu’il s’agit d’établir un diagnostic industriel ou médical, prendre une décision dans le domaine financier, ou lorsque l’on veut identifier un phénomène ou un objet (reconnaissance de formes, de risques, etc.), on est amené à se poser la question suivante : « Ai-je déjà vu un problème semblable et, si oui, qu’est-ce que j’ai fait pour le résoudre ? » En droit, par exemple, la législation est souvent si complexe qu’il est plus simple de se référer à la jurisprudence. Un nouveau problème est résolu en identifiant sa similitude avec un problème passé et en adaptant sa solution pour résoudre le nouveau problème. Pour cela, il faut disposer d’une base de cas, pouvoir y accéder, l’élargir et la mettre à jour facilement. La solution est fournie par une technique d’intelligence artificielle : le raisonnement basé sur le cas ou CBR (Case Based Reasoning). Le raisonnement basé sur le cas se rattache à l’intelligence artificielle dans la mesure où elle met en œuvre des moyens d’apprentissage symbolique, de représentation des connaissances, de filtrage et de recherche utilisant des règles d’inférence. Mais, le CBR se distingue des systèmes experts par l’aptitude à raisonner et à obtenir un résultat, une décision, même si l’on ne possède pas de modèle théorique du système en question. a) Mode de raisonnement du CBR
Contrairement aux systèmes experts classiques, qui mettent en œuvre principalement le raisonnement déductif, le mode de raisonnement utilisé par le CBR est du type inductif ; la généralisation se fait par approximation ou analogie. Ce type de raisonnement est au fond plus « naturel », plus intuitif. Il reproduit trois facultés fondamentales de l’esprit humain : mémoriser (structurer et stocker les connaissances), se souvenir (retrouver l’expérience passée la plus proche d’une situation nouvelle à résoudre), adapter (modifier le raisonnement et les conclusions pour traiter une situation nouvelle). L’intérêt de cette technique est qu’il n’est pas nécessaire de programmer. Le CBR peut donc être utilisé directement par l’homme du métier, qui sait décrire les cas, mais n’a pas besoin de savoir programmer ni de faire une analyse poussée du système pour mettre en œuvre un système basé sur le raisonnement. Il est souhaitable d’utiliser cette approche dans les secteurs où l’expérience a autant de valeur que les connaissances théoriques, où il existe beaucoup d’exceptions aux règles générales, où les problèmes sont encore mal compris, où les spécialistes… Les secteurs de prédilection sont ceux où l’on sait décrire des cas, comme en médecine, en droit, en réglementation, mais où l’on ne dispose pas nécessairement d’une théorie, de connaissances superficielles ou profondes. Le CBR s’applique aussi dans le secteur tertiaire, pour établir des contrats, évaluer les risques, rechercher des Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
65
configurations optimales ou au contraire dangereuse. Toutes ces informations peuvent être retrouvées par analogie. b) Principe du raisonnement basé sur le cas
Le CBR comprend six phases de traitement : -
retrouver dans la mémoire des cas les expériences les mieux adaptées à la situation courante ; sélectionner le(s) cas le(s) plus pertinent (s) à partir de l’ensemble construit à l’étape précédente ; tester et critiquer la solution précédemment élaborée ; évaluer les conséquences de la solution ; modifier la mémoire par intégration de la nouvelle expérience.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
66
Schématiquement : Nouvelle situation
Classification du problème
Suggestion d’un plan de résolution Prédiction des conséquences
Evaluation des résultats
Expliquer l’erreur Modifier le connaissance
Réaction de l’environnement Confirment –ils les prédictions ?
Expliquer des résultats
non
oui Modification de la connaissance
c) Les différents outils de CBR
La base de cas, constitue en quelque sorte la base de connaissances pour du système. Elle est constituée dynamiquement, à l’instar de la mémoire humaine, à partir d’un exemple de solutions à des cas fournis par l’expert. Un seul essai ne peut pas être validé ; il faut rechercher quelques cas similaires. En général, quelques dizaines de cas en tout suffisent la plupart du temps pour constituer la base de cas de départ dans une application donnée ; cette base continue à se construire au fur et à mesure. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
67
Les logiciels de CBR offrent des outils permettant de construire une base de connaissances par apprentissage à partir d’exemples, et des mécanismes permettant de trier ces exemples et de les retrouver à partir des cas similaires. Les différents produits se distinguent par leur mode de représentation de connaissances, leurs possibilités d’apprentissage ou d’adaptation, et les modalités d’analyse et de recherche dans la base de cas. ReMind de Cognitive Systems par exemple, est utilisé pour retrouver les incidents dans les centrales nucléaires. ReCall, d’ISoft, propose des fonctionnalités particulièrement bien adaptées à la détection de pannes, l’estimation financière, l’évaluation de risques, le contrôle et la surveillance. CBR Express, d’Inference , est appliqué notamment à la maintenance téléphonique de matériel et logiciel, ainsi qu’à l’aide à la vente. ISoft adopte un langage orienté objets pour la représentation des connaissances. Lockheed a mis au point le système d’extraction de données, Recon, pour analyser de grandes bases de données, en particulier pour la prédiction des prix, l’analyse et la sélection de portefeuille, et l’analyse de données commerciales par sociétés. Le CBR est fondé sur une forme d’analyse de données exploratoire et complète ainsi d’autres approches comme l’analyse statistique ou les réseaux de neurones. Le CBR peut être associé à la logique floue, afin de résoudre un problème même lorsque la base de cas ne comporte pas d’exemple exactement identique au cas présenté. La recherche se fait alors par « filtrage flou » d) Apprentissage, tri et réutilisation des cas
Les systèmes de CBR fonctionnent en 2 modes : Mode
apprentissage
Durant la phase d’apprentissage du système, les exemples sont mémorisés sous leur forme explicite dans la base de cas, ce qui permet de fournir des explications par les exemples retrouvés. Dans ce mode, l’opérateur décrit en langue naturelle les problèmes rencontrés et les solutions trouvées ; ceux-ci sont alors stockés dans la base de cas. La mise à jour se fait tout aussi facilement. Les systèmes de CBR peuvent être complétés par des outils, notamment de construction de base de connaissances à partir d’analyse d’exemples fournis par des experts. A partir des cas fournis initialement au système, au cours d’une phase d’apprentissage, le système Kate, d’Acknosoft, génère un arbre de décision ou un ensemble de règles ; il permet aussi de visualiser, d’expliquer et de modifier les connaissances apprises. AC2, d’ISoft, est un logiciel d’acquisition de connaissances intégrant un langage orienté objet de représentation des connaissances, pouvant être utilisé en amont du système ReCall. Une application développée avec de tels produits peut être automatiquement mise à jour au fur et à mesure que de nouveaux cas se présentent. Ainsi, l’expertise nouvelle, développée par un spécialiste sur un cas peu courant, sera immédiatement accessible aux autres spécialistes, qui développeront ainsi une mémoire collective de leurs expériences.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
68
En mode explication
L’opérateur consulte le système : il saisit les données relatives aux symptômes du problème auquel il est confronté, et le système doit trouver automatiquement et quasi instantanément, à partir de sa base de cas, une liste de problèmes analogues. La difficulté consiste à retrouver l’exemple correspondant au cas auquel se trouve confronté l’utilisateur. Pour pouvoir présenter à l’utilisateur les cas les plus similaires au cas étudié qu’il a décrits, deux problèmes se posent : d’une part, savoir évaluer la similitude entre le cas étudié et un cas de référence potentiellement et, d’autre part, retrouver dans la base les cas de références potentiellement intéressants. Plusieurs stratégies de recherche dans la base de cas sont possibles : une recherche de type inductive à partir d’un arbre de classification des cas, une recherche sur la base d’un calcul de proximité, et une recherche basée sur des requêtes de type base de données. Par dialogue interactif avec le système, il est possible de cibler plus exactement la solution au problème rencontré. e) CBR et réseaux de neurones
Le CBR se rapproche des réseaux de neurones par ses aptitudes au raisonnement inductif et à l’apprentissage, mais il ne met nullement en œuvre les méthodes de calcul de coefficient ( poids) propres aux réseaux de neurones. e) Avantages du CBR
L’un des grands avantages de la technique CBR est la facilité de développement : le temps d’ingénierie de la connaissance peut être réduit de 60 à 70 % avec de tels systèmes, par rapport aux systèmes experts classiques. De plus, le traitement d’un cas est beaucoup plus rapide ; en effet, le raisonnement basé sur le cas fournit un raccourci par rapport aux systèmes experts conventionnels, dans la mesure où la solution n’est pas entièrement reconstruite à partir de nombreuses règles et autres connaissances, mais plutôt dérivée de cas similaires précédemment rencontrés, par adaptation ou légère modification. II.13. Remarques
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
69
Il existe d'autres applications intégrant des composants tirant partie de techniques développées en Intelligence Artificielle. Parmi celles-ci on trouve : - Les appareils à commandes floues basés sur la logique floue : nous pouvons citer l'appareil photos Nikon F90 qui utilise un calculateur numérique, le Canon H800 camescope commercialisé en (1990) qui utilise une mise au point basée sur 13 règles floues, certains aspirateurs (Mitsubishi, Samsung) réputés pour avoir une consommation énergétique inférieure d'environ 40%. - L'industrie automobile qui utilise des composants flous : par exemple General Motors a équipé son modèle Saturn d'une transmission floue, Nissan a breveté des systèmes flous de freinage antidérapage, de transmission floue, d'injection de carburant), M. Sugeno de l'Institut de Technologie de Tokyo a réalisé l'un des systèmes les plus complexes, un modèle réduit d'hélicoptère dans lequel le gouvernail de profondeur, l'aileron, la commande des gaz et le palonnier réagissent à 13 commandes vocales floues telles que ``monter'', ``atterrir'', ``faire du sur-place'' (cette dernière action étant l'une des plus difficiles pour un pilote humain).
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
70
CHAPITRE III : PRINCIPES DE BASE DE L’INTELLIGENCE ARTIFICIELLE
En plus des problèmes de méthodologie de conception, la construction d’un système issu de l’intelligence artificielle pose un certain nombre de problèmes, il s’agit : - De l’acquisition des connaissances c’est à dire la manière de recueillir le savoir d’un expert. - De la représentation des connaissances extraites auprès de l’expert c’est à dire sa mémorisation sous forme utilisable dans la base de connaissances. - Du traitement des connaissances représentées dans la base de connaissances c’est à dire leur utilisation à la résolution des problèmes. - Du raisonnement III.1. L’Acquisition des connaissances
C’est l’une des difficultés majeures dans la construction des systèmes issus de l’intelligence artificielle. Cette phase correspond à la phase d’extraction des connaissances. Si les algorithmes de manipulation de faits et des règles sont nombreux et connus, la détermination de l’ensemble des faits et des règles qui vont composer la base de connaissance 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 problèmes essentiels sont : • la communication Expert-Ingenieur- Machine ; • définition du vocabulaire ; • le choix de la représentation ; • processus d’extraction des connaissances est très lente ; • le type d’approche à adopter pour l’acquisition des connaissances : l’apprentissage automatique ou dialogue Expert -Machine ou la mise en place d’une méthodologie rigoureuse (common KADS) Il existe plusieurs modes d’acquisition des connaissances : a.
La transmission des connaissances
C’est la phase au cours de laquelle le cogniticien (ou ingénieur de la connaissance) prépare manuellement une représentation des connaissances que l’expert utilise pour résoudre un problème spécifique. Cette méthode consiste à produire manuellement les règles qui gouvernent le processus de décision à partir de l’entretien avec l’expert du domaine. D’ou le développement d’une base de connaissances est un processus itératif dans lequel les règles sont produites, elles sont révisées et commentées par le spécialiste, et mises à jour s’il y a lieu. Le cogniticien est une personne qui dispose de certaines techniciens pour exprimer les connaissances parmi ces techniques nous pouvons citer : Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts b.
71
La technique d’interview ou d’entretien Les techniques de ré formulation Le transfert des connaissances
L’idée maîtresse de ce mode d’acquisition des connaissances est de se passer du cogniticien lors de la réalisation du système c.
L’acquisition automatique des connaissances
C’est une technique d’apprentissages dont le but est de développer les outils d’aide à la conception des bases de connaissances. Ici les principales formes d’apprentissages utilisées sont : - L’apprentissage par programmation - L’apprentissage par analogie III.2. FORMALISME DE L’IA ET REPRESENTATION DES CONNAISSANCES III.2.1. Le Formalisme de l’IA
Les langages de programmation traditionnels sont dits impératifs ou procéduraux. Ils peuvent traduire des opérations telles que « lire », « écrire », « additionner », « transférer », « comparer », etc. Ce sont des instructions correspondant à des séquences de langage machine. En IA, le problème se présente tout autrement, puisqu’il s’agit là de représenter des connaissances et de simuler des raisonnements. Pour résoudre ces problèmes particuliers, il faut des outils et langages particuliers. Les objectifs de ces outils sont les suivants : résoudre les problèmes concrets rencontrés par les entreprises, s’adapter au problème à résoudre, grâce à la définition de formalismes de représentation des connaissances, et faciliter l’acquisition et la validation des connaissances, améliorer la communication entre l’utilisateur et le système, grâce à la définition d’interfaces homme-machine conviviales. III.2.2. La représentation de connaissances
Un langage permet aux humains de communiquer et se décompose en phrases, la phrase en mots. Informatiquement parlant, la phrase représente un module de connaissances. Mais comment communiquer à l’ordinateur la signification de ces symboles ? La signification d’un concept est, en général, liée à sa relation à d’autres concepts. Ainsi, pour expliquer « bleu », « musique », « nuit », nous employons des phrases qui intègrent ces concepts : « le ciel est bleu », « j’écoute de la musique », « les gens dorment la nuit », etc. La représentation des connaissances fait donc appel non seulement à des concepts isolés (données), mais aussi aux liens qui existent entre eux (informations symboliques). Cette phase consiste à une formalisation des connaissances acquises. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
72
Cependant, il se pose les problèmes suivants : • •
•
quelle sémantique et syntaxique retenir pour éviter l’ambiguïté ? celles qui sont proches de la représentation du langage humain ? c’est dire quel formalisme serait le mieux adapté pour la représentation des connaissances dans le système expert ? les règles de production, les programmes logiques ? quelles sont les structures à appliquer ? les arbres, les réseaux sémantique, les objets, les cadres ?... comment peut on représenter l’incertitude, les probabilités ?
Il existe deux modes de représentation des connaissances : 1.
La représentation déclarative :
C’est une représentation qui ne contient jamais son mode d’emploi mais qui est facile à lire et à modifier. Comme exemple d’une représentation déclarative : les règles de production (utilise la logique des prédicats) 2.
La représentation procédurale :
Contrairement à une représentation déclarative, une représentation procédurale explicite son mode d’emploi. N.B : les deux représentations sont complémentaires 3.
La représentation structurée :
C’est une forme de représentation qui a l’avantage de prendre en compte le lieu qui existe entre les connaissances. D’une manière générale avec une représentation structurée on obtient une hiérarchie des connaissances. Parmi les modes de représentations structurées nous pouvons citer : 3.1. Les réseaux sémantiques
Un réseau sémantique est un graphe étiqueté où les n uds sont les objets (concepts ou événements) et les arcs étiquetés traduisent les relations entre ces objets. De nombreux systèmes sont issus de cette approche, tel que KL-ONE dont la conception date de 1970. Ce langage est à la frontière entre réseaux sémantique et frames. Un réseau exprime une hiérarchie et offre une solution à la structuration des données . Un n ud peut hériter par subsumption des propriétés d'un autre n ud. Ce concept est présent dans les langages orientés objets.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
73
Par exemple : Considérons la proposition « Milou est le chien de Tintin » (ou « Tintin est le maître de Milou ») ; « Milou » et « Tintin » peuvent être considérés comme des nœuds du réseau sémantique, entre lesquels il existe une relation d’appartenance et/ou de fidélité. Mammifère
est un
est un Homme
Est l’ami de
Chien
est le maître de est un
est un
Milou
Homme
Appartient à Obéit à
Figure1: Exemple d’un réseau sémantique
Les réseaux sémantiques ont été mis en œuvre dans le cadre des Systèmes Experts, en particulier dans PROSPECTOR. L'idée d'utiliser ce formalisme est attribué à Quillian (1968). Considérons par exemple une phrase comme « Médor sent Mirza » qui peut se représenter comme dans la figure 2 ci - dessous. Cette approche peut être raffinée en considérant que chaque concept (ici Médor, Mirza) est relié à sa famille d'appartenance par un lien est_un donnant lieu à la représentation de la figure 3 ci - dessous . Cette approche peut encore une fois être améliorée en introduisant des liens entre concepts par le biais de la relation sorte_de . Dans ce cadre une phrase telle que « Médor est un basset qui est un chien » se représente comme dans la figure 4. Dans ce cadre, les propriétés peuvent se transmettre des concepts les plus élevés (dans la hiérarchie) vers les fils (au sens de la relation sorte_de ). Malheureusement, on peut constater le manque de standardisation du formalisme et le risque d'associations abusives en suivant les chaînages induits par le réseau.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
74
envoie
Medor
Mirza
Figure2: Médor envoie Mirza
Chien
Chienne
est
est_un envoie Mirza
Medor
Figure 3: Relation est_un
Chien
Basset
Medor
Figure 4 : Relation sorte_de
Il est certain qu'un accroissement de la complexité du formalisme augmente sa puissance d'expressions et de raisonnement, cependant il est nécessaire, comme dans toute application informatique, de faire un compromis entre complexité des structures de données et complexité des algorithmes utilisés pour leur exploitation. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
75
Bref, dans un réseau sémantique, les connaissances sont composées des nœuds et des arcs où les nœuds représentent les éléments de la connaissance et les arcs représentent les relations entre les nœuds. La plupart des modes de représentation, à l’exception des propositions, prédicats et règles de production, peuvent être considérés comme des extensions des réseaux sémantiques ( objets structurés, schémas, scripts, acteurs et autres frames…). Il se pose avec cette mode de représentation des connaissances un problème de mise à jour. 3.2
Les schémas (ou frames)
M. Minsky (1975) a introduit cette approche dans le cadre de la vision par ordinateur. Ce travail est directement inspiré des travaux menés en psychologie cognitive sur la mémoire chez l'homme (F. C. Bartlett 1932) et visant à proposer un modèle de représentation d'expériences passées pour résoudre un problème nouveau. R. Schank (1977) s'est inspiré de ces travaux pour la compréhension des langues naturelles. Depuis, cette approche a été englobée dans les langages orientés objets (voir à ce propos le livre de G. Masini ). Un frame est une structure de données qui représente un objet typique ou une situation stéréotype, c'est en fait un réseau hiérarchisé de n uds et de relations. On peut retenir parmi les propriétés essentielles des frames, l'existence de valeur par défaut pour un attribut (slot), permettant la notion de raisonnement révisable ; de contraintes que doivent satisfaire les attributs et qui sont propagées au cours du raisonnement ; de procédure (méthode) qui se déclenche lorsque la valeur d'un attribut est requise. Comme dans un réseau sémantique, un mécanisme d'héritage est mis en uvre. Les schémas ou frames constituent une forme de représentation qui associe deux concepts : les règles et les réseaux sémantiques. Ici les objets sont représentés par classe et se découpent par leurs propriétés. Chaque objet possède des attributs ou propriétés qui permettent de le reconnaître. Exemple : Oiseau Attributs
Vole Œuf Plumes
Valeurs
Oui / Non OUI OUI
Autriche Attributs
Vole Œufs Plumes
Valeur
Non Oui Noir / Blanc
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
3.3.
76
La représentation sous forme d’objets structurés
Cette forme de représentation par les objets ressemble à celle des schémas, à la seule différence que la communication dans la représentation par les objets se fait par messages. Elle permet de traduire différents types de connaissances, au sens le plus large du terme. Elle s’applique aux relations intrinsèques des objets entre eux. Ainsi, les objets ne s’appliquent pas seulement au formalisme de l’IA, mais également à l’informatique en général. Un objet (ou objets structuré), au sens informatique, est un ensemble de variables et d’expressions, auquel sont associés les procédures décrivant comment ces variables et expressions doivent être manipulées. Un objet, un être ou une entité du monde réel peuvent être représentés par un objet au sens informatique. Par exemple « Tintin » et « Milou » peuvent être considérés comme des objets. Les propriétés d’un objet sont décrites par un ensemble d’attributs. Chaque attribut est caractérisé par une valeur et un ensemble de descripteurs et de marqueurs, ayant pour rôle de préciser certaines caractéristiques de l’attribut. Ce formalisme permet notamment d’exprimer la relation d’appartenance d’un objet à une classe. Une classe rassemble des objets analogues d’un certain point de vue. Elle est définie par un nom et un ensemble d’attributs caractérisés par des marqueurs, les descripteurs étant propres à chaque objet de la classe. Par exemple, « Milou » appartient à la classe des « chiens », qui est une sous-classe des mammifères, laquelle, à son tour, appartient à la classe des animaux (voir la figure suivante).
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
Classe
Mammifère
Sous- classe
Objet
77
Chien
Milou
Homme
Médor
Brutus
Cheval
Rantanplan
3.4. Les scripts
C’est une forme de représentation où tous les attributs d’un objet sont associés à des informations sur des valeurs qu’ils peuvent prendre éventuellement. 4. La représentation logique
L'Univers du Discours est représenté par un ensemble de formules logiques, les règles sont le modus ponens qui peut s'exprimer par (((p→q)∧p)→q), et le modus tollens qui s'exprime en logique par (((p→q)∧¬q)→ ¬p). Pour que le raisonnement puisse s'effectuer, il est nécessaire de préciser l'Univers du Discours , ce qui signifie que tout ce qui n'est pas connu comme étant vrai et, ipso facto, considéré comme faux (hypothèse dite du monde clos, qui est mise en œuvre dans un langage comme PROLOG Ainsi le langage PROLOG fournit un mode de représentation et des mécanismes de raisonnement totalement intégrés. 5. La logique des propositions
Ce mode de représentation de connaissances, fournit un moyen naturel de représenter les connaissances de façon déclarative, à partir de formules bien formées, par exemple : « Pierre a une auto ». Une proposition peut être VRAIE ou FAUSSE. Cette logique d’ordre 0 n’admet pas de variables.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
78
6. Le calcul des prédicats
Le calcul des prédicats, est une extension de la logique des propositions. Elle prend en compte les variables et les quantificateurs ( « il existe… », « tous les… »). C’est une logique d’ordre 1. Par exemple, dans l’expression « Tous les hommes sont mortels », « homme » et « mortel » sont des prédicats. 7. Les règles de production
À la suite de l'émergence des Systèmes Experts, les règles de production ont acquis leur lettre de noblesse (en particulier grâce à MYCIN). Les règles de production peuvent traduire une relation, une information sémantique ou une action conditionnelle. Une règle de production, d’une manière générale est de la forme : Si partie-si Alors partie-alors (
).
La ``partie-si '' est une formule logique qui doit être vérifiée pour que la règle soit déclenchée. C’est la condition d’applicabilité de la règle, qui peut être une conjonction de propositions logiques, de prédicats ou de relations. La ``partie-alors '' est la conséquence ou la conclusion, elle peut correspondre à un fait (ajout ou retrait) ou à une hypothèse émise par le système, au déclenchement d'une autre règle. Elle peut être une action à effectuer ou une autre proposition logique, laquelle peut, à sont tour, se trouver être la prémisse d’une autre règle. est un coefficient traduisant l'incertitude associée à la règle ; suivant le domaine dans lequel on travaille on parle de coefficient de vraisemblance , de facteur de plausibilité ou de certitude, de degré de vérité . Le noyau des systèmes à base de connaissances reposant sur des règles de production comprend trois parties : 1. une base de règles (connaissance permanente), 2. un moteur d'inférences (mécanisme de raisonnement) qui peut être de différentes natures, 3. une base de faits (mémoire de travail, connaissance temporaire) En plus, de tels systèmes se doivent d'intégrer une interface Homme/Machine performante. Nous n'en dirons pas plus pour l'instant, ces concepts seront approfondis dans les chapitres qui suivent. On peut cependant noter qu'il existe des différences notables entre règle de production (Si p alors q) et formule logique (p →q). D'une part, la relation de causalité n'est pas nécessaire dans le cas de formules logiques et d'autre part l'adjonction du coefficient de vraisemblance dans le cadre des règles de productions.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
79
Pour conclure ce paragraphe, on peut noter que de tels systèmes pêchent par une faible capacité à organiser les connaissances, c'est pourquoi on les couple (dans le cas de systèmes industriels) avec des systèmes de frames. Conclusion
Il existe de nombreuses possibilités de représenter des connaissances, mais hélas aucune n'est la panacée universelle. Toutes ont des avantages et des inconvénients qu'il est nécessaire d'apprécier en fonction de l'application souhaitée. Cependant, certaines représentations peuvent être couplées. En définitive, le choix final reposera sur le degré de compromis souhaité entre efficacité (puissance de raisonnement, puissance d'expression et de représentation) et clarté. III.3. LE RAISONNEMENT
Le raisonnement est une activité intentionnelle à la différence d'autres telles que la perception. On considère le raisonnement comme une activité élaborée pouvant se définir comme un enchaînement d'énoncés conduit en fonction d'un but qui peut suivant le cas être de démontrer, justifier ou expliquer. Le raisonnement est souvent considéré sous plusieurs angles tels que : •
• •
le raisonnement formel, basé sur la manipulation syntaxique d'énoncés symboliques à l'aide de règles. Une telle approche se trouve dans le raisonnement logique. La logique constitue une langue, i.e. un système de symboles et de variables liés par des opérateurs qui déterminent la structure interne des propositions et les relations entre ces différentes propositions. La logique classique intègre, généralement deux parties, d'une part la logique propositionnelle (parfois aussi appelé ``calcul des énoncés'') dont la brique de base est la proposition représentant soit un évènement soit un fait, elle étudie toutes les associations possibles ; d'autre part la logique des prédicats, dont l'élément fondamental est la relation et les termes internes aux propositions. La logique mathématique est quant à elle définie comme : une théorie scientifique des raisonnements excluant les processus psychologiques mis en œuvre et qui se divise en calcul des propositions et calcul des prédicats. La logique remonte à Aristote (IVe siècle avant JC) qui posa les bases du syllogisme que les philosophes scholastiques formalisèrent au Moyen-âge. C'est au XIXe siècle avec Bolzano, Boole et de Morgan que la logique devient mathématique. Frege (1848-1925) est le fondateur de la logique formelle, théorisée par Russel (1872-1970) et Wittgenstein (1889-1951). le raisonnement par analogie , qui est très courant chez l'homme mais qui est mal défini (et donc délicat à mettre en œuvre). le raisonnement par abstraction et généralisation est répandu chez l'homme mais mal défini, ce type de raisonnement, dans le cadre de simulation sur machine peut être mis en œuvre par le biais d'héritage, et est en relation avec la classification.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
80
Pour que le raisonnement puisse s'effectuer, il est nécessaire de préciser l'Univers du Discours , ce qui signifie que tout ce qui n'est pas connu comme étant vrai et, ipso facto, considéré comme faux (hypothèse dite du monde clos, qui est mise en œuvre dans un langage comme PROLOG ). Pour mécaniser le raisonnement il faut : 1. Une structure de données. Plusieurs approches sont possibles : les représentations logiques, réseaux sémantiques, règles de production et frames. 2. Une ou plusieurs procédures d'exploration. 3. Une représentation claire (être capable de faire correspondre à un élément de l'Univers du Discours, une représentation), puissante et suffisante. 4. Une simulation efficace en temps et en espace. On pourra aussi se reporter à l'article de S. Pinson sur la représentation des connaissances dans les systèmes experts, ou au livre de A. Bonnet pour une vue plus générale.
III.4. MODULES DE BASE DANS L’ARCHITECTURE DES SYSTEMES ISSUS DE L’INTELLIGENCE ARTIFICIELLE III.4.1. La Base de Connaissances (BC)
Elle est constituée de la base des faits (B.F) et de la base des règles (B.R). Les faits sont des connaissances assertionnelles et les règles sont des connaissances opératoires. III.4.2. Le Moteur d’Inférence (MI)
Le programme pour exploiter la Base de Connaissances. On l’appelle aussi Inference engine, système de résolution de problèmes, etc. III.4.3. Le Module d’Acquisition des Connaissances (MAC)
Il permet d’incorporer des nouvelles connaissances au sein de la Base de connaissances, d’une manière cohérente et non redondante. III.4.4. Le Module Explicatif (M.E)
Il permet de retracer le raisonnement qui a conduit à la résolution du problème III.4.5. L’interface utilisateur
C’est le moyen de communication entre l’utilisateur et le système. Il peut être sous forme de menu, de question-réponse, en langage naturel, etc. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
81
Schématiquement, nous avons : USER
INTERFACE
MAC
ME
BC
MI
Il existe aussi des interfaces avec des applications externes telles que les capteurs, les bases de données, les robots, les actionneurs.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
82
CHAP IV : DES BASES DE DONNEES VERS LES BASES DE CONNAISSANCES IV.1. INTRODUCTION
Le développement et l’exploitation d’une base de données nécessitent le choix d’un SGBD. Ce SGBD est un ensemble de logiciels qui fournit un environnement pour définir, contrôler, mémoriser et traiter l’ensemble de données, tout en assurant la sécurité, la confidentialité et l’intégrité de la base de données. Une bonne partie des SGBD actuelles est fondée sur le modèle relationnel de données dont les principes de base sont les suivants : - La représentation des données sous forme de tables c’est – à - dire des relations au sens mathématique. - La manipulation des données à l’aide d’opérateurs appliqués aux tables pour fournir d’autres tables dans le cadre d’une algèbre relationnelle. En vue d’améliorer leurs performances, les SGBD font l’objet de plusieurs études, lesuqelles se focalisent sur deux axes : - Développer le pouvoir expressif des modèles de données. - Introduire des capacités de raisonnement dans les SGBD conventionnels La problématique des bases de données déductives est liée directement au deuxième axe. En effet, l’idée générale de cette problématique consiste à enrichir l’ensemble des axiomes constituant le SGBD des règles logiques qui permettent d’effectuer des inférences simples à partir des données stockées dans la base, et d’obtenir ainsi ce que l’on appelle une base de donnée déductive. Par exemple : Si nous considérons une base de données qui contient les noms des personnes et leurs liens de parenté (relation parent - enfant). Nous pouvons à partir de cette base de données et d’une règle simple à concevoir, extraire toutes les personnes qui sont des grands parents. Cette opération nécessite donc un raisonnement et n’est pas possible pour une base de données simple. C’est ainsi que l’objectif de ce chapitre est d’assurer une transition continue entre un système de type base de données relationnelle vers un système de type base de données déductive c’est – à – dire : 1. tout 2.
Augmenter le système de type de base de données relationnel des capacité déductives en conservant le pouvoir d’expression du schémas conceptuel et en admettant les fonctionnalités du SGBD. Etendre les capacités de manipulation conceptuelle du schéma relationnel.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
83
IV.2. L’APPROCHE LOGIQUE D’UNE BASE DE DONNEES RELATIONNELLE
L’approche logique d’une base de données relationnelle concerne 3 points essentiels : - La caractéristique logique des modèles de données c’est – à – dire l’approche formelle avec une contrepartie sémantique. - L’approche rigoureuse des nombreux problèmes en rapport avec le langage d’interrogation de données, le traitement des contraintes d’intégrité, l’optimisation des interrogation ou des requêtes, les dépendances des données, le traitement des valeurs nuls, les informations incomplètes. - La construction de l’appareillage l’appareillage déductif c’est – à – dire les règles de gestion dans le but de de coupler la base de donnée à un système de raisonnement. L’approche logique d’une base de donnée relationnelle consiste donc en ce qu’une base de donnée ne puisse conserver des informations informations sous deux aspects c’est – à – dire l’aspect de sa signification (aspect sémantique) et l’aspect de sa structure ou sa forme (aspect syntaxique). L’aspect sémantique est mieux abordé par la théorie des modèles qui considère une base de donnée comme une interprétation des langages du premier ordre. Par contre la théorie de la preuve traite la question de l’aspect syntaxique. En effet, elle considère une base de donnée comme une théorie du premier ordre c’est – à – dire un ensemble d’axiomes (les (les faits et les les contraintes). A ces deux théories, on associe un ensemble d’axiomes de particularisation qui concerne l’évaluation des questions sur la base de données. En bref, on peut définir une base de donnée comme étant un ensemble : - D’axiomes de particularisation (axiomes d’ouverture du domaine, axiomes d’unicité du nom, axiomes de complétion, axiomes d’égalité) - D’ assertions et de contraintes d’intégrité. IV.3. VERS LES BASES DE DONNEES DEDUCTIVES IV.3.1. DEFINITION
Une base de donnée est dite déductive si et seulement si : -
elle est d’abord une base de donnée relationnelle On y a introduit une nouvelle nouvelle classe d’axiomes appelée lois déductives.
-
Il existe deux sortes de base de données déductives : Base de données déductives définie Base de données déductives indéfinie
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
84
IV.3.2. NOUVELLES FONCTIONNALITES DES SGBD IV.3.2.1.Fonctionnalités IV.3.2.1.Fonctionnalités d’un d’un SGBD conventionnel conventionnel
-
-
La représentation des données (informations) : les informations sont représentées sous forme de schémas ou instances au niveau conceptuel et sous forme de fichiers ou enregistrements au niveau physique. La manipulation des données : elle se fait au moyen des opérations élémentaires c’est – à dire opérations d’ajout, de suppression, suppression, de mise mise à jour et d’interrogation. Elle se fait également au moyen des opérations plus complexes en en utilisant des programmes d’application. Le contrôle des informations et l’intégrité sémantique : ces deux opérations sont réalisées au moyen des programmes d’application.
IV.3.2.2. Nouvelles Nouvelles fonctionnalités fonctionnalités du SGBD
Les nouvelles fonctions du SGBD sont les suivantes : - Intégrer au sein des fonctionnalités classiques précitées des nouveaux services propres à un système devant présenter présenter des capacités de raisonnement c’est – à – dire des capacités déductives. Il s’agit par exemple de problèmes de l’optimisation séquentielle séquentielle des requêtes, de la gestion des données dynamiques, de la mise en œuvre automatique des processus de génération, de potentialités du type TMS (Truth Maintenance Système), de l’intégrité sémantique de dérivation, etc. - Augmenter le pouvoir d’expression du schéma conceptuel. IV.4. ASPECT REALISATION
La véritable transition des bases de données vers les bases de données déductives à été rendu possible grâce au langage de programmation en logique appelé prolog ( programming in logic) au moyen d’un système déductif utilisant le moteur d’inférence d ’inférence logique. Avec le prolog, on peut facilement faire les opérations suivantes : - Définir et manipuler un schéma conceptuel : ici prolog permet de définir à l’avance l’avan ce la structure selon laquelle les informations qui sont propres à cette application devront être représentées mais il ne vous assure pas de la cohérence des informations. - Exprimer et vérifier les contraintes d’intégrité : à ce niveau, le prolog offre des mécanismes de vérification efficace, les contraintes d’intégrité et les mécanismes qui permettent de les exprimer. - Un accès efficace à un large ensemble des faits qui sont stockées en mémoire secondaire : le prolog permet de représenter des faits en mémoire secondaire suivant suiv ant des structures appropriées et de fournir des mécanismes d’accès appropriés. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
85
IV.5. NOTA
Pour étendre un système de gestion de base de donnée conventionnelle avec un composant déductif de sorte que le système résultant puisse être accédé par un utilisateur standard de manière analogue à un système conventionnel, il faut : - Fournir des langages assez simples pour la définition et la manipulation des informations déduites - Masquer à l’utilisateur tous les problèmes liées à l’introduction d’un processus déductif en présence d’axiomes récursifs, - Le langage prolog doit être utilisé comme langage hôte du langage d’interrogation du SGBD pour écrire des programmes prolog incluant des requêtes sur la base de données. IV.6. REMARQUES
Il existe une différence fondamentale entre une base de données et une base de connaissances : - Une base de données est destinée à stocker un ensemble d’informations que le SGBD est capable de retrouve de façon statique. - Tandis qu’une base de connaissances est destinée à être exploité par un mécanisme de raisonnement (tel qu’un moteur d’inférence associé à des règles de production) capable de découvrir dynamiquement des nouvelles informations à partir des connaissances disponibles dans la base. Les bases de données servent essentiellement à décrire la structure d’une entreprise ou d’une organisation en général. Ces données organisées permettent par exemple dans le domaine de la gestion des stocks à connaître l’état des stocks, l’état des commandes en cours, elles peuvent aussi permettre de connaître l’état de la compatibilité ou de la situation du personnel, etc. Les Systèmes Experts par contre peuvent être utilisés pour prendre des décisions ou bien pour aider à prendre des décisions.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
86
CHAPITRE V. LA ROBOTIQUE
C’est un domaine de l’intelligence artificielle qui consiste à mettre en place ou à développer des robots qui sont capables de manipuler des objets et réagir à des modifications de l’environnement. Autrement dit, on définit la robotique comme étant un ensemble de techniques permettant la conception et la mise en œuvre des dispositifs (dispositifs) destinés à substituer l’homme dans ses fonctions motrices, sensorielles et intellectuelles. Ces dispositifs peuvent être programmés pour réaliser des actions bien déterminées ou pour agir par apprentissage. V.1. Historique du robot
Les situations économiques actuelles dans les pays industrialisés, notamment la crise qui a suivi le”choc pétrolier” des années 70 et l’émergence de nouveaux pays industrialisés, d’une part, et les progrès réalisés dans l’électronique, informatique, automatique et mécanique, d’une part, ont permis de construire des robots et d’autres systèmes ”mécatroniques” performants et fiables, conduisant à une compétition industrielle très vive. Cela ne laisse survivre que les industries capables de produire à faible coût ou de fournir rapidement des produits nouveaux et/ou de qualité supérieure et garantie. Ces exigences ont conduit au développement d’une automatisation flexible impliquant l’implantation de robots dans de nombreuses branches d’activités. C’est l’apparition des robots et leur association à d’autres machines automatiques d’inspiration ”classique” (par exemple, des machines-outils à commande numérique) qui permettent d’automatiser ou d’essayer d’automatiser des opérations considérées jusqu’ici comme non automatisables. La plus ancienne trace littéraire se trouve dans le livre XVIII de l'Iliade, dans lequel on peut lire `` Alors ...il sortit en clopinant, appuyé sur un bâton épais et soutenu par deux jeunes filles. Ces dernières étaient faites en or à l'exacte ressemblance de filles vivantes ; elles étaient douées de raison, elles pouvaient parler et faire usage de leurs muscles, filer et accomplir les besognes de leur état ...''. Avant les robots étaient les automates. C'est un barbier grec du III siècle avant J.C. qui construisit le premier automate. Inventeur de l'orgue hydraulique, il est le premier à réaliser des oiseaux siffleurs et autres figurines se déplaçant sous l'action de l'eau. Plus tard Philon d'Alexandrie mis en pratique les découvertes d'Archimède , et construisit des automates pondéraux, hydrauliques et pneumatiques. Ceux-ci sont mûs par écoulement de fluide et chute de poids. Ils n'effectuent qu'un nombre limité d'actions, mais bougent sans que les mécanismes responsables soient visibles. C'est au I siècle avant notre ère qu'apparaissent les automates avec rupture de séquence -- une chevillette délogée par la chute d'un poids provoquait le changement de comportement -- qui étaient plus ``vivants''. Pendant le moyen-âge, les automates évoluent avec l'apparition de l'horlogerie. L'époque des automates modernes commence avec Descartes (1630).
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
87
La Pascaline (1645) fait des additions et des soustractions, la machine de Leibnitz (1646-1716) multiplie. Ces deux engins introduisent l'emploi des registres intermédiaires et font des reports automatiques de retenues. En 1738, Vaucanson réalise un joueur de flûte, androïde assis exécutant rigoureusement les mêmes actions qu'un véritable flûtiste. L'air actionnant l'instrument sort de la bouche de l'automate, les lèvres modulent l'air et les doigts obturent librement les trous ad-hoc. En 1860, Farcot invente le servo-moteur. Le robot a fait son apparition (en tant que tel) dans les ateliers des années (19)50. Il s'agissait de machine outils commandées par des bandes de papier perforées, le mot robot trouve son origine dans une (mauvaise) traduction d'une uvre de K. Capeck (R.U.R. 1920) et est tiré d'un mot tchèque signifiant travailleur, son titre de noblesse lui fut donné par Isaac Asimov et ses célèbres lois de la robotique : 1. Un robot ne peut porter atteinte à un être humain ni, restant passif, laisser cet être humain exposé au danger. 2. Un robot doit obéir aux ordres donnés par les êtres humains, sauf si de tels ordres sont en contradiction avec la première loi. 3. Un robot doit protéger son existence dans la mesure ou cette protection n'est pas en contradiction avec la première ou la deuxième loi. Le premier robot à usage industriel apparaît en 1962, et en France aux alentours des années 1970 (usine Renault). Avant de voir ce dont ils sont maintenant capable, faisons un saut dans le passé. si la robotique est plus au moins un ensemble des disciplines et des techniques déjà connues et sur lesquelles la recherche est active. C’est pour deux raisons : - Le désir des industriels d’automatiser leurs unités de production - Le développement de l’information et son couplage à la mécanique Ce domaine fait appel aux autres domaines tel que le domaine de la reconnaissance de la parole pour former la robotique et sémantique et celui de la reconnaissance des formes pour former la robotique et visionique. En résumé,
V.2. Définitions du mot « Robot ».
Il est vrai que le terme de robot est emprunté de la science-fiction. Il trouve en effet son origine dans une pièce de l’auteur tchèque Capek, écrite en 1923, intitulée ”Les robots universels de Rossum”. Le mot ”robot” ou ”robota” est le mot tchèque, et aussi russe, pour désigner le travail ou un travailleur.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
88
V.2.1. Définition 1
La première définition officielle de robot date de 1978, elle est due aux japonais ``un robot est une machine polyvalente, capable d'agir sur son environnement, et adaptable à un environnement changeant''. V.2.2. Définition 2
Un robot est un dispositif destiné à effectuer des travaux en se substituant à l’homme. La plupart des robots actuels sont formés d’un manipulateur (un bras articulé terminé par une pince) et d’un système de commande (généralement à base du microprocesseur). Ils sont quelque fois dotés d’une certaine mobilité (par exemple on peut les monter sur des roues). D’une manière générale, actuellement, un robot est un matériel artificiel qui est contrôlé par un ordinateur et qui réalise tout le service pouvant être exécuté par un ouvrier humain et remplissant des tâches complexes ( compliquées, difficiles). V.3. Catégories des robots Les robots sont classés en 6 catégories :
1. 2. 3. 4.
Robots manipulateurs (RM), à commandes manuelles (aucune autonomie), RM à séquences fixes RM à séquences variables, compatibles avec plusieurs hypothèses de travail, Robots programmables par apprentissage, dotés d'une mémoire contenant plusieurs séquences, 5. Robots à commandes numériques, dépendance vis-à-vis de l'informatique, 6. Robots avec capteurs sensoriels. Ces catégories sont vues soit, comme des prolongements de notre système musculaire, soit comme une extension de notre système nerveux. Toutes ces catégories consomment de l'information, mais l'automate est programmé de façon séquentielle alors que le robot est capable d'accomplir plusieurs fonctions et de les réaliser de manière autonome. La cybernétique, science qui s'occupe des robots, tente de reproduire les fonctions humaines comme l'intelligence, l'apprentissage et l'adaptation. Seuls les robots appartenant à la dernière catégorie sont considérés comme pouvant avoir un comportement intelligent, cette nouvelle génération (productique) peut communiquer avec l'homme. Ces robots peuvent se déplacer, sont capables de détecter leur défaillances et de les signaler (si ce Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
89
n'est d'y remédier). La robotique fait partie du milieu industriel, il existe même au Japon une usine de robots construisant des robots (et ça marche ...). V.4. Générations des robots
On distingue généralement 3 générations des robots : a. 1 ère génération : les robots à apprentissage Ils sont capables de mémoriser les mouvements qui leurs ont été imprimés et les reproduire fidèlement b. 2 éme génération : les robots programmés Ce sont des robots qui effectuent des mouvements commandés par leur ordinateur de commende. éme c. 3 génération : les robots auto - adaptifs Ce sont des robots qui peuvent prendre en compte leur environnement grâce à des capteurs dans proximité des retours d’efforts, voir l’utilisation des caméras de télévision. V.5. Domaines de la Robotique
Trois grands domaines d’application des robots peuvent être considérés. Les problèmes à résoudre à l’intérieur de chacun de ces domaines ont une certaine ressemblance, mais ils peuvent être assez différents d’un domaine à l’autre. V.5.1.Domaine de la Production
C’est dans le domaine de la production que l’effort est porté le plus particulièrement par les industriels, qui voient de nombreux avantages à l’utilisation des robots, notamment une diminution de la main d’œuvre et un accroissement de la productivité. En fait, l’association de robots entre eux et avec d’autres machines amène deux avantages fondamentaux par rapport aux modes de production traditionnels : 1. la flexibilité, c’est-à-dire la rapidité de reconfiguration de l’unité de production quand on passe de
la fabrication d’un produit à celle d’un produit voisin (exemple : fabriquer des modèles différents de voitures sur la même chaîne) ou bien quand un incident immobilise une machine de l’unité de production Ces unités de production ”reconfigurables” ou adaptatives sont qualifiées de flexibles (en anglais ”flexible manufacturing system”). On parle de :
atelier flexible lorsqu’on associe plusieurs cellules flexibles ou bien un nombre assez important de machines et robots ;
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
90
cellule flexible lorsqu’un petit nombre de robots et de machines sont associés (exemple : un tour et un robot de chargement de ce tour)
2. l’automatisation quasi intégrale de la production qui peut s’accompagner :
d’une meilleure adaptation de la quantité produite à la demande ; d’une plus grande fiabilité dans le maintien de cette qualité ; d’une meilleure qualité du produit fini ;
V.5.2. Domaine de l’Assistance individuelle
Ce domaine consiste à mettre au point des robots à forme plus ou moins humaine, qui remplacent l’homme ou l’assistent dans les tâches ennuyeuses, fatigantes ou dangereuses. Ces robots restent encore du domaine de la science-fiction et, actuellement on peut tout au plus envisager des machines du genre ”robot de ménage” qui nettoient les sols par exemple (en évitant les obstacles, personnes, murs, meubles, ...). L’autonomie de ces robots est encore très limitée, leur coût plutôt exorbitant et leur intérêt très réduit. Il y a cependant un domaine où la robotique d’assistance individuelle tend à se développer, c’est celui de la robotique médicale permettant d’améliorer les conditions de vie des personnes handicapées, paralysées ou amputées. La robotique recouvre alors le domaine des :
orthèses, structures rigides motorisées que l’on met autour d’un membre paralysé et qui entraînent ce dernier dans leurs mouvements ; télé thèses, destinées aux personnes paralysées des quatre membres (tétraplégiques) ce sont des robots que la personne handicapée commande à distance (en télé opération) à partir des zones de motricité volontaire qu’il a pu conserver (par exemple : la langue, la bouche, les muscles des yeux, etc.) ; prothèses (mains et jambes artificielles par exemple) ;
V.5.3.Domaine de l’exploration
Il s’agit d’un problème différent. On veut exécuter des opérations dans un lieu : 1. d’accès difficile : exploitation forestière, construction, maintenance, réparations ou nettoyage des bâtiments, lignes électriques, ... 2. dans un milieu hostile ou dangereux pour l’homme : le milieu spatial ; les sites des catastrophes ou d’accidents, survenus ou potentiels : incendies, agressions terroristes, ... le milieu sous-marin Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
91
les théâtres d’opérations militaires le milieu irradié des centrales nucléaires
. La robotique envisage deux types de solution pour ces interventions : 1. le robot autonome,
envoyé dans le milieu hostile avec une mission bien définie, programmée à l’avance, avec toutefois certaines libertés d’initiative ; actuellement, on sait réaliser des robots doués d’une certaine autonomie, mais le travail qu’on peut leur confier doit rester d’une grande simplicité et ne doit surtout pas exiger que le robot ait à appréhender et comprendre seul tout son environnement. C’est pourquoi la solution qui est encore aujourd’hui la plus opérationnelle, quoique restant grandement à améliorer, est celle de : 2. la télé - opération (appelée aussi télé - présence), qui consiste à envoyer un engin (un robot qu’on
appelle machine - esclave) dans ce milieu hostile et à pouvoir contrôler et commander cette machine à distance, à partir d’un poste appelé poste - maître aux commandes duquel se trouve un homme (l’opérateur). C’est donc l’homme qui effectue toutes les tâches de réflexion et de déclenchement des mouvements de l’esclave. Cela nécessite bien sûr le renvoi vers le maître de ce qui se passe dans l’univers de l’esclave. Ce qui est le plus utile, c’est de voir (présence de caméras), mais il importe aussi de sentir les efforts qui s’exercent sur l’esclave. On doit donc avoir des systèmes de vision et des systèmes à retour d’effort. V. 6.Classification des robots
On peut classer les robots d’un point de vue fonctionnel ou d’après leur structure géométrique. V.6.1.Classification fonctionnelle
Le nombre de classe et les distinctions entre celles-ci varient de pays à pays (6 classes au Japon,4 en France). L’A.F.R.I.(Association Française de la Robotique Industrielle) distingue 4 classes illustrées ci-dessous :
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
92
V.6.1.1. Robots à commande manuelle ou télécommande.
V.6.1.2. Robots manipulateurs automatiques à cycles préréglés
(le réglage se fait mécaniquement par cames, butées, la commande peut se faire par automate programmable) ; on peut distinguer entre manipulateurs à cycle fixe et manipulateurs à cycle programmable.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
93
V.6.1.3. Robots programmables
C’est la première génération de robots industriels ; ils répètent les mouvements qu’on leur a appris ou programmés, sans informations sur l’environnement ou la tâche effectuée. On peut aussi faire la distinction entre robots ”play-back” qui reproduisent la tâche apprise et robots à commande numérique qui peuvent être programmés hors-ligne. Pour de nombreux robots, l’apprentissage de la tâche se fait à l’aide d’un ”syntaxeur” (”boite à boutons”, ”teach pendant”) qui permet à un opérateur d’amener le robot en un certain nombre de points, qui sont ensuite mémorisés ; lors de l’exécution de la tâche, le robot suivra une trajectoire passant successivement par tous les points programmés, le passage d’un point au suivant se faisant suivant un profil de vitesse en fonction du temps qui est prédéfini (triangulaire ou trapézoïdal), l’opérateur n’ayant qu’à choisir la fraction de la vitesse maximum à laquelle il souhaite que le robot effectue la tâche. Pour certains robots, par exemple les robots de peinture, qui doivent suivre une trajectoire complexe qu’il est difficile d’exprimer mathématiquement, un opérateur humain spécialiste de la tâche effectue la trajectoire en guidant le bras du robot à l’aide d’un ”pantin”, et l’entièreté de la trajectoire est mémorisée par le robot.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
94
V.6.1.4. Robots ”intelligents”.
On trouve actuellement des robots de seconde génération qui sont capables d’acquérir et d’utiliser certaines informations sur leur environnement (systèmes de vision, détecteurs de proximité, capteurs d’efforts, ...). On étudie des robots de troisième génération, capables de comprendre un langage oral proche du langage naturel et de se débrouiller de façon autonome dans un environnement complexe, grâce à l’utilisation de l’intelligence artificielle.
V.6.2. Classification géométrique
On peut aussi classer les robots suivant leur configuration géométrique, autrement dit l’architecture de leur porteur. Les 3 premiers ddm d’un robot peuvent être réalisés avec un grand nombre de combinaisons de translations (max. 3T) et de rotations (max. 3R), autrement dit par des articulations prismatiques (P) ou rotoïdes (R) ; en pratique, on n’utilise que 4 ou 5 d’entre elles :
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
95
V.6.2.1. porteur cartésien (TTT ou PPP) :
Les 3 axes sont animés d’un mouvement de translation.
V.6.2.2. porteur en coordonnées cylindriques (RTT ou RPP ) :
Un mouvement de rotation et une translation axiale, complétées par une translation radiale.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
96
V.6.2.3. porteur en coordonnées polaires ou sphériques (RRT ou RRP) :
Deux rotations (longitude et latitude) autour d’axes orthogonaux, complétées par une translation radiale.
V.6.2.4. porteur en coordonnées universelles,
Appelé aussi configuration poly articulée ou anthropomorphe (RRR), trois rotations dont les deux dernières se font autour d’axes parallèles orthogonaux au premier, les trois articulations correspondant respectivement au tronc (base), à l’épaule et au coude d’un être humain.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
97
V.6.2.5. Deux rotations autour de deux axes parallèles,
Une cinquième architecture comprend deux rotations autour de deux parallèles précédées ou suivies d’une translation dans la même direction (éventuellement celle-ci peut être reportée au niveau du poignet, qui peut aussi tourner autour du même axe, soit au total 4 ddm). Cette architecture est celle des robots SCARA (Sélective Compliance Arm for Robotic Assembly) que l’on utilise dans des opérations d’assemblage.
V.7.Eléments constitutifs d’un robot V.7.1.Les actionneurs
Le terme d’actionneur désigne tout dispositif générateur d’effort à vitesse variable qui permet de modifier la configuration d’un robot. Si on se limite aux actionneurs pratiquement utilisables, il est possible de les classer suivant : •
le type du mouvement généré.
Dans l’état actuel de la technologie, on trouve les actionneurs linéaires qui développent une force et génèrent un mouvement de translation parallèlement à cette force et les actionneurs rotatifs qui développent un couple et génèrent un mouvement de rotation autour de l’axe du couple. • la nature de la source d’énergie.
On dispose d’actionneurs pneumatiques qui utilisent l’air comprimé comme source d’énergie, d’actionneurs hydraulique sous pression, et d’actionneurs électriques qui utilisent l’énergie électrique. La puissance massique et le pouvoir d’accélération sont des critères importants qui permettent une comparaison objective de ces différents types d’actionneurs. Il n’existe pas actuellement d’actionneurs qui présentent globalement toutes les caractéristiques énoncées ci-dessus. Exemples des actionneurs les mieux adaptés
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
98
les moteurs à courant continu
— moteurs pas à pas, — moteurs à courant continu commandés par l’induit et à flux inducteur constant (généralement par aimants permanents), — moteurs à courant continu sans balais (Brushless DC motor). Les actionneurs hydrauliques — vérins linéaires et rotatifs, — moteurs à pistons axiaux,
Les actionneurs pneumatiques
— vérins linéaires et rotatifs V.7.2. Les effecteurs
L’effecteur est l’organe terminal du robot, il est souvent connecté au poignet de celui-ci. Ce poignet se termine généralement par une plaque de base, percée de trous filetés ; cela permet la fixation de différents effecteurs à un robot universel et donc l’adaptation de celui-ci à des tâches spécifiques. En fait, la plupart des machines de production exigent des outils et des fixations spécialement conçus pour une application particulière ; à cet égard, le robot n’est donc pas une exception. Il faut d’ailleurs noter que beaucoup d’outils conventionnels, utilisés à la main ou sur certaines machines (pistolets de peinture ou de collage, visseuses, perceuses, pinces,...) peuvent devenir des effecteurs de robotique, au prix d’un travail d’adaptation permettant de : Compenser certaines imprécisions où dispersions dans les caractéristiques des objets extérieurs ou du robot lui-même, • Présenter une certaine flexibilité pour se prêter à des tâches diversifiées. Les principaux problèmes qu’il faut résoudre dans la conception d’un effecteur, sont liés aux connexions de l’effecteur, parmi les différentes connexions possibles, nous citons celles-ci : • Connexions mécaniques : solidarisation effecteur - poignet, transmission d’efforts, élasticité (”compliance”), • Connexions énergétiques : transmission de l’énergie (électrique, pneumatique ou hydraulique) nécessaire à l’action de l’organe terminal • Connexions matérielles : fourniture à l’effecteur des matières consommées par la tâche effectuée (colle, peinture, pâte, métal d’apport, fluide de refroidissement ou de lubrification, ...) • Connexions informationnelles : transmission de commandes aux actionneurs de l’effecteur et de contrôles provenant des capteurs ou détecteurs prévus dans l’effecteur •
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts •
99
Connexions logicielles : incorporation d’une routine définissant la fonction de l’effecteur et appelant ou générant les informations correspondantes, dans le logiciel de programmation et de commande du robot.
En outre, il ne faut pas oublier que l’effecteur est l’organe terminal du robot, c’est donc lui qui sera en contact avec des objets extérieurs. De ce fait, il est exposé à des accidents divers et doit être muni de protections (butées, ”fusibles” mécaniques, etc.).Généralement, les effecteurs doivent être conçus et fabriqués ”sur mesure” en fonction de la tâche qu’ils doivent effectuer. On peut concevoir et réaliser un effecteur complètement nouveau ou adapter un effecteur existant sur le marché. Cela peut être fait par la société qui vend ou installe le robot, ou par le client qui l’achète ou par une firme spécialisée dans ce genre de travail. Dans le cadre de notre travail, nous utiliserons les connexions logicielles. V.7.3.Les capteurs
Le capteur doit cumuler les fonctions d’acquisition et de conversion en signal électrique de la grandeur physique ou chimique. Il y a autant des méthodes de détection et de transformation que l’objet physique permet de réaliser. La liste suivante cite les principaux capteurs : • • • • •
Capteur d’image (image) Microphone (son) Thermistance, thermocouple (température) Capteur à éléments semi-conducteurs (rayonnement) Capteur optoélectronique semi -conducteur, pile thermique, élément golay (infrarouge)
V.7.8. Organes de transmission
Ce sont des organes qui transmettent un mouvement d’un actionneur vers une partie mobile d’une liaison cinématique. Ils interviennent parfois aussi comme éléments de structure (mécanismes à pantographe ou à parallélogramme). Ces organes augmentent les masses en mouvement et présentent des défauts (jeu, frottements, élasticité, ...) qui accroissent l’incertitude sur la position de l’effecteur ou aggravent le comportement en vibration de la structure. Par contre, ils permettent de transférer les masses des actionneurs, moteurs et réducteurs en des points où leurs effets statiques et dynamiques seront fortement réduits.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
100
CHAPITRE VI. LES RESEAUX DE NEURONES VI.0. Introduction
A la suite des observations de l'anatomiste espagnole Ramòn y Cajal, dès la fin du 19ième siècle, on a pu déterminer que le cerveau était composé de cellules distinctes appelées neurones formant un ensemble dense d'environ 10 à 100 milliards d'unités interconnectées. La principale caractéristique de ces neurones est qu'ils permettent de véhiculer et de traiter des informations en faisant circuler des messages électriques dans le réseau ténu et massivement parallèle formé par leur axone. L'extrémité des axones se divise en une multitude de ramifications. A l'inverse, les arborescences qui amènent l'information vers le corps cellulaire sont appelés dendrites . Les informations sont transmises d'un neurone à l'autre, de manière unidirectionnelle, par l'intermédiaire de points de jonction appelés synapses . Un réseau de neurones formels est un modèle rudimentaire du cerveau humain, chaque cellule neuronale étant décrite comme une fonction à seuil possédant une sortie et dont les entrées sont reliées à d'autres neurones. Le but des réseaux de neurone n'est pas la simulation du cerveau, en effet, les réseaux de neurones formels ne sont pas un modèle de notre structure cérébrale mais plutôt une métaphore. Le connexionnisme, se référant aux processus auto-organisationnels, envisage la cognition comme le résultat d’une interaction globale des parties élémentaires d’un système. On ne peut nier que le chien dispose d'une sorte de connaissance des équations différentielles du mouvement, puisqu’il arrive à attraper un bâton au vol. Et pas davantage qu’un chat ait aussi une sorte de connaissance de la loi de chute des corps, puisqu’il se comporte comme s’il savait à partir de quelle hauteur il ne doit plus essayer de sauter directement pour se diriger vers le sol. Cette faculté qui évoque un peu l’intuition des philosophes se caractériserait par la prise en compte et la consolidation d’éléments perceptifs dont aucun pris isolément n’atteint le seuil de la conscience, ou en tout cas n’y déclenche d’interprétation particulière. VI.1. Réflexions sur la pensée
Les philosophes et les scientifiques se sont toujours interrogés sur la nature de l’intelligence. Toute définition de l’intelligence doit couvrir les aptitudes humaines suivantes : raisonnement, apprentissage, jugement, Souvenir, émotion, intention, compréhension, bon sens et conscience. Toutes ces qualités et aptitudes sont possibles pour les humains. Pour un ordinateur, on peut programmer pour qu’il apprenne ou se souvenir, mais c’est délicat de lui attribuer un jugement, des émotions, du bon sens et plus encore la conscience.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
101
A la fin du 20ième siècle, la « psychologie » développa des théories sur l’esprit pour expliquer notre façon de percevoir le monde, d’apprendre, de se souvenir, afin de mieux comprendre les comportements humains et animaux. Les tests de quotient intellectuel (QI) apparurent à la même époque pour mesurer ce que les psychologues appellent l’intelligence générale et les capacités cognitives (le raisonnement verbal, les aptitudes spatiales et arithmétiques). Mais la façon dont le cerveau crée les aptitudes cognitives et les désirs inconscients demeure un mystère. En 1930, les neurosciences (étude des cellules nerveuses et de neurones) firent quelques progrès. L’un des buts des neurosciences est de comprendre comment les neurones, dans le cerveau contribuent à l’intelligence par la perception, l’apprentissage et la mémoire. La mise en application de cela dans la conception des ordinateurs est prometteuse pour l’Intelligence Artificielle. VI.2. Le cerveau et l’ordinateur
Pour beaucoup de neuroscientifiques, le cerveau n’est qu’un ordinateur très complexe. Cependant, il existe des similitudes entre un cerveau et un ordinateur : -
-
Tous deux reçoivent l’information sous formes d’impulsions électriques, la traitent en interne et produisent des impulsions électriques en sortie. Les neurones ont des homologues informatiques, il s’agit de circuits intégrés appelés « portes ouvertes ». A l’instar des états d’excitations ou de repos des neurones, les portes logiques ( circuits intégrés) ont un état « vrai » ou « faux ». Ce système a deux états ou binaire , est au cœur du traitement de l’information de l’ordinateur. Les portes logiques produisent des sorties ( état « vrai ») uniquement lorsque certains critères sont respectés en entrée, c’est aussi valables pour les neurones. De plus la plupart des portes logiques reçoivent leurs entrées d’autres portes , formant un réseau, comme les neurones dans le cerveau. De la même façon, les exceptions sont des portes recevant les entrées de l’extérieur de l’ordinateur ou produisent des sorties. Malgré ces similitudes, il existe des différences : Au sujet de la complexité : même les ordinateurs les plus puissants sont loin d’avoir le même nombre de portes que le cerveau de neurones. Le cerveau n’a pas besoin d’être programmé pour faire ce qu’il fait On peut cerner le fonctionnement d’un ordinateur alors qu’il reste encore beaucoup à découvrir sur le cerveau.
Les ordinateurs actuels (fin du 20ème siècle) outrepassent largement les aptitudes du cerveau dans le domaine du calcul et de la manipulation de symboles. Cependant les êtres humains, peuvent sans effort, résoudre des problèmes complexes (ou mal définis) dans le domaine de la perception (reconnaissance d'un visage dans une foule, reconnaissance d'un individu plusieurs (dizaine d') années plus tard, .... On peut considérer que la nature des problèmes résolus dépend fortement du type d'architecture des modèles computationnels utilisés. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
102
VI.3. Les Réseaux de Neurones formels
L'histoire des réseaux de neurones formels remontent au milieu des années 1940. On doit à Mc Culloch et Pitts la première présentation des neurones formels, et à Hebb la première règle empirique pour la modification des poids synaptiques (et par conséquent l'apprentissage dans ce type de système). Le perceptron de Rosenblatt (1958) est le plus célèbre système utilisant une architecture voisine. En 1969 Minsky et Pappert ont montré mathématiquement les limitations de ce genre d'appareil ; ce qui stoppa les recherches jusqu'en 1982. À cette date, J. Hopfield, éminent physicien a remis au goût du jour cette approche en proposant une solution au problème du voyageur de commerce grâce à un modèle que depuis lors on appelle réseau de Hopfield. De plus en plus de chercheurs venant d'horizons très diverses s'intéressent à ce domaine (neurobiologie, mathématiques, informatique, électronique, biologie). Le neurone est l’unité de base du système nerveux. Il est composé d’un petit corps de cellules avec des longues extensions fibreuses appelées Axones et dendrites. Les terminaisons des axones d’un neurone rencontrent les terminaisons des dendrites de nombreux autres neurones et forment dans le cerveau un réseau complexe et changeant.
L'activité d'un neurone se mesure en fonction de la fréquence6.2 du train de potentiels d'actions (ou spikes ) propagés sur l'axone. Cet influx nerveux , lorsqu'il parvient à une synapse, permet de libérer des neuromédiateurs qui excitent (neuromédiateurs excitateurs) ou inhibent (neuromédiateurs inhibiteurs) le neurone suivant et peuvent ainsi générer ou interdire la propagation d'un nouvel influx nerveux. Une caractéristique fondamentale de la synapse est qu'elle est capable de s'adapter et ainsi faciliter ou non le passage des influx nerveux. Cette plasticité est à l'origine des mécanismes d'apprentissage.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
103
Une synapse est constituée d'un bouton présynaptique situé en prolongement de l'axone du neurone afférent et d'une partie réceptrice sur le corps du neurone efférent, les deux étant séparés par un espace extra-cellulaire très faible appelé fente synaptique. Le bouton pré-synaptique contient des vésicules synaptiques remplies de transmetteurs chimiques. Lorsque le PA parvient à la synapse, il fait rentrer des ions calcium. Les neurones sont liés par des fibres, et échangent constamment des signaux électriques. On estime qu’il y a 100 milliards de neurones dans le cerveau ( plus de 10 fois la population terrestre) et on a calculé qu’il y a plus de 1 000 000 000 000 000 ( un quatrillion) de liens Le cerveau est ainsi constitué d'un réseau extrêmement dense de cellules nerveuses (neurones), et de chaque cellule partent plusieurs dizaines de branches (dendrites), l'influx nerveux passe d'un neurone à l'autre par le biais de synapses. L'influx est de nature électrique et se transmet par un processus chimique. En d’autres termes, l'influx nerveux se caractérise par une impulsion électrique (Potentiel d'Action -- PA ) se déplaçant le long de l'axone depuis le corps cellulaire jusqu'aux synapses. Le déplacement du PA est généré par une diminution locale de la différence de potentiel entre l'intérieur et l'extérieur de la membrane de la cellule qui provoque l'ouverture des canaux sodiques de la membrane laissant entrer les ions sodium ( ). Le potentiel ayant toujours tendance à revenir à une valeur d'équilibre, la cellule libère des ions potassium ( ). C'est ainsi que de proche en proche se propage l'influx électrique jusqu'aux synapses. Le neurone collecte, au niveau des dendrites les signaux électriques et propage l'information à ses voisins si le seuil de sensibilisation est atteint. Chaque élément constitutif d'un réseau de neurones formels réalise un traitement simple, dont l'intérêt réside dans l'émergence de propriétés globales à l'ensemble du système (le neurone formel est au réseau, ce que la fourmi est à la fourmilière). Chaque composant fonctionne plus ou moins indépendamment de ses voisins, la structure globale étant fortement parallèle avec un indice de connexions très élevé. ( à dessiner). Notre capacité d’apprentissage et de mémoire découle des connexions entre les neurones. Il est probable que les signaux produits (influx) par les neurones constituent la base de nos perceptions, pensées et comportements. Et la plupart des neuroscientifiques pensent que la conscience résulte de ces innombrables et minuscules signaux nerveux. Un neurone est soit à l’état « d’excitation » (là il produit entre 50 et 100 impulsions électriques par seconde), soit à l’état de repos (là il en produit quelques unes). Un neurone est excité s’il reçoit assez de stimulations des autres neurones auxquels il est connecté. Certains neurones (dont les dendrites), qui forment nos organes sensoriels reçoivent leur stimulation du monde extérieur. La peau contient des dendrites de neurones sensibles à la pression et à la chaleur, alors que les dendrites des yeux sont sensibles à la lumière. La production du cerveau est transportée par les neurones moteurs vers les muscles. Une impulsion électrique atteignant un muscle provoque une contraction. Ainsi, notre perception du monde ( par exemple depuis le son du tonnerre jusqu’à la douleur due à une piqûre d’épingle) commence par des impulsions électriques sur Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
104
les terminaisons de nos neurones sensoriels. Les impulsions électriques de nos neurones moteurs sont responsables de tout depuis le clin d’œil jusqu’à la conduite d’une voiture. Chaque neurone est entouré d’une membrane présentant un potentiel électrique de telle sorte que si les modifications du potentiel dépassent un certain seuil, le neurone est excité. En réaction au monde qui nous entoure, de nouveaux neurones et synapses de créent, d’anciens sont perdus, et la nature de certains synapses peut changer. VI.3.1. Modèle de Neurone Formel
Un neurone formel est un automate caractérisé par : - un état interne e ∈ S des signaux d’entrée e1, e2, …, en - une fonction de transition d’état e = f(e2, …, en) ou de transfert Schématiquement, e1(t) e2(t)
wi1 wi2
. . . . win en(t)
∑
f
τ
Vi(t)
Yi(t+τ)
ei (t), i = 1, …, n sont les entrées; Wij sont les poids et Vi (t) est la somme pondérée. Un neurone est donc semblable à un processeur élémentaire muni d’une fonction de transfert ou d’activation continue ou non permettant de calculer la sortie en fonction des entrées. Les différentes connexions ont des poids qui mesurent la force de la connexion. Un neurone formel réalise simplement une somme pondérée des entrées, ajoute un seuil à cette somme et fait passer le résultat par une fonction de transfert pour obtenir sa sortie. En effet, soient i et j deux neurones. Il peut y avoir une connexion pondérée, qui , suivant le cas peut être orienté ou pas. Dans le cas orienté, s’il y a connexion du neurone i vers le neurone j, on notera w ji la pondération associée. On notera ei l’entrée fournit par un neurone i à un neurone j. On notera Y j la sortie de la cellule.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
105
Un neurone est donc semblable à un processeur élémentaire muni d’une fonction de transfert ou d’activation continue ou non permettant de calculer la sortie en fonction des entrées. Les différentes connexions ont des poids qui mesurent la force de la connexion. Un neurone formel réalise simplement une somme pondérée des entrées, ajoute un seuil à cette somme et fait passer le résultat par une fonction de transfert pour obtenir sa sortie. En effet, soient i et j deux neurones. Il peut y avoir une connexion pondérée, qui, suivant le cas peut être orienté ou pas. Dans le cas orienté, s’il y a connexion du neurone i vers le neurone j, on notera w ji la pondération associée. On notera ei l’entrée fournit par un neurone i à un neurone j. On notera s j la sortie de la cellule. La quantité v j (t) =
∑w e associée au neurone j est appelée activation. La sortie est alors ji i
i
calculée par v j (t ) = f j (ei (t )) où f j désigne la fonction de transfert associée au neurone j. En général, dans la littérature, on trouve souvent v j (t ) = f j (∑ w ji ei (t ) − θ j ) où θ j désigne le seuil associé au neurone j. Et on pose souvent l’existence d’un neurone O, tel que s0 =1 et w j0 = - θ j VI.3.2. Les différentes sortes de neurones
Il existe deux sortes de neurones : Le neurone produit scalaire et le neurone distances. VI.3.2.1. Le neurone produit scalaire
s1
wi1 Neurone i
s2
wi2
Σ
f
si = f ( t w . s ) i
s3 . . sn
wi3 win
wi s i , i = 1, …, n représentent les signaux du neurone i ; w ij représente le poids du signal j associé
au neurone i.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
106
S = ( s 1 , …, s n ) t wi représente la transposée de w i . Avec w i = ( w i 1 , …, w in )
Par conséquent : s i = f ( t w i . s ) =
∑w k
s
ik k
représente la sortie du neurone et f représente la fonction de transfert
associée au neurone. Toutes les fonctions f sont des fonctions non linéaires à seuil sigmoïde. Elles sont utilisées dans les problèmes de classification, d’identification, de prévision, etc. VI.3.2.2. Le neurone distance
s1
wi1 Neurone i
s2
wi2 f
dist s3 . . sn
2
si = f ( wi − s )
wi3 win
si , i = 1, …, n représentent les signaux du neurone i ; wij représente le poids du signal j associé au neurone i. S = ( s 1 , …, s n ) t wi représente la transposée de w i . n
2
Avec w i = ( w i 1 , …, w in ) et wi − s =∑(wik − sk ) 2
k =1
Par conséquent :
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts s i = f ( t w i . s ) =
∑w k
s
ik k
107
représente la sortie du neurone et f représente la fonction de transfert
associée au neurone. Les différentes fonctions f sont des identités et sont utilisées pour la compression de données ou la clusterisation. VI.3.3. Un Réseau de neurones
Un réseau de neurones se compose de neurones qui sont interconnectés de façon à ce que la sortie d’un neurone puisse être l’entrée d’un ou plusieurs autres neurones. Ensuite il y a des entrées de l’ extérieur et des sorties vers l’extérieur ( Rumelhart et al. 1986). D’après Rumelhart et al., un réseau de neurone comprend les huit éléments principaux suivants : - Un ensemble de neurones - Un état d’activation pour chaque neurone ( actif, inactif, …) - Une fonction de sortie pour chaque neurone ( f(S)) - Un modèle de connectivité ( architecture) entre les neurones ( chaque neurone est connecté à tous les autres, par exemple) - Une règle de propagation pour propager les valeurs d’entrée à travers le réseau vers les sorties - Une règle d’activation pour combiner les entrées d’un neurone ( très souvent une somme pondérée) - Une règle d’apprentissage - Un environnement d’opération ( le système d’exploitation, par exemple) Les réseaux de neurones sont souvent appelés des boîtes noires, car la fonction mathématique qui est représentée devient trop complexe pour l’analyser et la comprendre directement. Cela et notamment le cas si le réseau développe des représentations distribuées. VI.4. Les Réseaux de neurones Artificiels ( RNA)
A l’issue des paragraphes précédents, on voit bien qu’il y a moyen de reproduire sur ordinateur le comportement d’un neurone biologique en considérant un dispositif à deux états « en marche » lorsqu’il est excité et « arrête » lorsqu’il n’est pas excité. Un neurone décide d’être excité ou non en fonction des entrées qu’il reçoit d’autres neurones. Et la probabilité d’excitation d’un neurone augmente ou diminue suivant les synapses recevant les signaux. Cela peut être reproduit sur un ordinateur ou un circuit électronique pour former des neurones artificiels. On peut définir les « Réseaux de Neurones Artificiels » comme des réseaux fortement connectés de processeurs élémentaires fonctionnant en parallèle. Chaque processeur élémentaire calcule une sortie unique sur la base des informations qu’il reçoit. De fait, l'objectif des réseaux de neurones artificiels est d'essayer de récupérer tout ou une partie des fonctionnalités d'un cerveau humain telles que :
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts • • • • • • •
108
architecture massivement parallèle, calcul et mémoire massivement distribués, capacité d'apprentissage, capacité de généralisation, capacité d'adaptation, forte tolérance aux pannes, faible consommation énergétique.
Les domaines où les architectures neuronales sont particulièrement efficaces sont : • • • • • • • • • • • • • • • •
l'association, la classification, la discrimination, l'estimation la reconnaissance des formes le traitement du signal l’apprentissage par l’exemple la mémorisation la généralisation l’extraction des traits la détection le diagnostic la prévision L’approximation des fonctions La lecture des chèques la gestion des emplois de temps dans les centres d’appels.
VI.5. Les modèles mathématiques des RNA
Les Réseaux de Neurones Artificiels sont des modèles , et à ce titre ils peuvent être décrits par leurs composants, leurs variables descriptives et les interactions des composants. VI.5.1. Composants VI.5.1.1. Structure
La figure suivante montre la structure d’un neurone artificiel. Chaque neurone artificiel est un processeur élémentaire qui reçoit un nombre variable d’entrées en provenance de neurones amonts. A chacune de ces entrées est associé un poids w abréviation de weight (poids en anglais) représentatif de la force de la connexion. Chaque processeur élémentaire est doté d’une sortie unique, qui se ramifie ensuite pour alimenter un nombre variable de neurones avals. A chaque connexion est associé un poids.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
109
Poids
Fonction de transfert
Elément de sortie
Un neurone artificiel i , dont les entrées sur celui – ci sont de poids w ij et les connexions avals sont de poids w ki , aura la structure suivante :
i
k
VI.5.1.2. Comportement
On distingue deux phases dans le comportement d’un neurone. La première est habituellement le calcul de la somme pondérée des entrées (a) selon l’expression suivante : a=
∑ ( w .e ) i
i
A partir de cette valeur, une fonction de transfert calcule la valeur de l’état du neurone. C’est cette valeur qui sera transmise aux neurones avals. Il existe de nombreuses formes possibles pour la fonction de transfert. Les plus courantes sont présentées sur la figure suivante. On pourra distinguer qu’à la différence des neurones biologiques dont l’état est binaire, la plupart des fonctions de transfert sont continues, offrant une infinité de valeurs possibles comprises dans l’intervalle [0, +1] ( ou [-1, +1]).
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts x = f(a)
110
x = f(a)
+1
x = f(a)
+1
+1
a
a
-1
a
-1
(a)
(b)
-1 (c)
Figure : Différents types de fonctions de transfert pour le neurone artificiel (a) : fonction à seuil ( S, la valeur du seuil) (b) : fonction linéaire par morceaux ( a) : fonction sigmoïde Nous constatons que les équations qui décrivent le comportement des neurones artificiels n’introduisent pas la notion de temps. En effet, et c’est le cas pour la plupart des modèles actuels de réseaux de neurones, nous avons à faire à des modèles à temps discret, synchrone, dont le comportement des composants ne varie pas dans le temps. VI.5.2. Variables descriptives
Ces variables décrivent l’état du système. Dans le cas des réseaux de neurones qui sont des systèmes non autonomes, un sous – ensemble des variables descriptives est constitué par les variables d’entrée, variables dont la valeur est déterminé extérieurement au modèle. VI.5.3. Structure d’interconnexion
Les connexions entre les neurones qui composent le réseau décrivent la topologie du modèle. Elle peut être quelconque, mais le plus souvent il est possible de distinguer une certaine régularité. Plusieurs topologies sont possibles : 1. Le réseau multicouche
Les neurones sont arrangés par couche. Il n’y a pas de connexion entre neurones d’une même couche et les connexions ne se font qu’avec les neurones des couches avales. Habituellement, chaque neurone d’une couche est connecté à tous les neurones de la couche suivante et celle – ci seulement. Ceci nous permet d’introduire la notion de sens de parcours de l’information ( de l’activation) au sein d’un réseau et donc définir les concepts de neurone d’entrée, neurone de sortie. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
111
Par extension, on appelle couche d’entrée, l’ensemble des neurones d’entrée, couche de sortie, l’ensemble des neurones de sortie. Les couches intermédiaires n’ayant aucun contact avec l’extérieur sont appelées couches cachées.
Couche d’entrée
Couche cachée Couche de sortie
Figure : réseau multicouche
2. Le réseau à connexions locales
Il s’agit d’une structure multicouche, mais qui à l’image de la rétine, conserve une u ne certaine topologie. Chaque neurone entretient des relations avec un nombre réduit et localisé de neurones de la couche avale. Les connexions sont donc moins nombreuses que dans le cas d’un réseau multicouche classique.
Couche d’entrée
Couche cachée Couche de sortie
Figure : réseau à connexions locales
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
112
3. Le réseau à connexions récurrentes
Les connexions récurrentes ramènent l’information en arrière par rapport au sens de propagation défini dans un réseau multicouche. Ces connexions sont le plus souvent locales.
Figure : réseau à connexions récurrentes 4. Le réseau à connexion complète
C’est la structure d’interconnexion la plus générale. Ici, chaque neurone est connecté à tous les neurones du réseau ( et à lui même ).
Figure : réseau à connexions complètes
N.B. Il existe de nombreuses autres topologies topolo gies possibles que le lecteur peu trouver dans la littérature, mais qui n’ont pas eu à ce jour la même notoriété des quelques unes que nous avons décrites ici.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
113
VI.5.4. Fonctionnement Fonctionnement VI.5.4.1. Le Perceptron Perceptron
Les neurones se comportent d’une manière collective. Ce comportement collectif permet l’émergence de fonctions d’ordre supérieur par rapport à la fonction élémentaire du neurone. Avant d’aborder cet aspect collectif de comportement, nous présentons d’abord le Perceptron ( un seul neurone) en phase d’utilisation. L’apprentissage ayant été réalisé, les poids sont fixés. Le neurone de la figure suivante, réalise une simple somme pondérée de ses entrées, compare une valeur de seuil, et fournit une réponse binaire en sortie. Par exemple, on peut interpréter sa décision comme classe 1 si la valeur de x est +1 et classe 2 si la valeur de x est – 1. w1
e1
x w2
e2 x = f(a) +1
a Les connexions des deux entrées e1 et e2 au neurone sont pondérées par les poids w1 et w2. La valeur de sortie du neurone est notée x. Elle est obtenue après somme pondérée des entrées (a) et comparaison à une valeur de seuil S. Question : Sachant que les poids du Perceptron à deux entrées sont les suivants : w 1 = 0,5 ; w 2 = 0,2 et que la valeur de seuil est S = 0.0, déterminer son comportement, sachant que les comportements du ET logique, OU logique et OU exclusif sont rappelés dans la table suivante :
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
ET logique e1 e2 x 1 1 1 1 -1 -1 -1 1 -1 -1 -1 -1
114
OU logique e1 e2 x 1 1 1 1 -1 1 -1 1 1 -1 -1 -1
OU exclusif e1 e2 x 1 1 1 1 -1 -1 -1 1 -1 -1 -1 1
Quelle set la réponse à la question ? VI.5.4.2. Réseau multicouche en phase d’association
Il s’agit ici du comportement en phase de reconnaissance d’un réseau de neurone multicouche lors d’une tâche d’auto – association. Soit un réseau multicouche composé de 361( 19 x 19), 25 et 361 neurones. Ce réseau a appris à associer à la lettre « a » présentée en entrée la même lettre en sortie. Présentons au réseau cette lettre avec quelques erreurs : un certain nombre de pixels ont été inversé (ils sont passés de blanc à noir ou inversement ). L’image est composée de 19 x 19 pixels, chacun de ces pixels est associé à un neurone de la couche d’entrée. Chacun des 25 neurones de la couche cachée reçoit 361 connexions (une pour chaque neurone d’entrée) et envoie sa sortie à chacun des neurones de la couche de sortie ( au nombre de 361). Dans notre exemple illustrant le comportement en phase de reconnaissance d’un réseau de neurone multicouche lors d’une tâche d’auto - association, la couche cachée se compose de 25 neurones, mais ce nombre, à la différence des couches d’entrée et de sortie, n’est pas impératif. Il y a donc 2 – (361.25) = 18050. Les neurones sont binaires. La valeur d’activation de chaque neurone est indiquée par la hauteur de la colonne. Les neurones sont rangés par couche, tous les neurones d’une couche sont connectés à tous les neurones de la couche suivante (avale). La première étape code l’image d’entrée sur le réseau. Il s’agit pour chaque neurone de la couche d’entrée de fixer la valeur de son état selon la couleur du pixel correspondant. Si les neurones qui composent le réseau sont binaires, on choisit arbitrairement de coder un pixel noir par un niveau d’activation du neurone égal à 1 ; si le pixel est blanc alors le niveau d’activation du neurone correspondant est égal à 0. La seconde étape est celle du calcul de la réponse du réseau qui se décompose en autant de sous - étapes qu’il y a de couches dans le réseau. Ainsi, chaque neurone de la couche d’entrée envoie sa valeur aux neurones de la couche cachée. Chacun des neurones réalise la somme pondérée de ses entrées et seuil. Ce processus est effectué en parallèle et indépendamment pour tous les neurones de la couchée. Lorsque le vecteur d’activation de la couche a été obtenu. Le même processus est répété avec les neurones de la couche de sortie. On considère ceux – ci comme 361 Perceptrons indépendants à 25 entrées. La dernière étape est l’interprétation du vecteur d’activation de la couche de sortie par l’expérimentation. Dans notre cas, on réalise l’opération inverse du codage initial, à savoir associer
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
115
un pixel noir à chacun des neurones de la couche de sortie dont la valeur d’activation est égal à 1, un pixel blanc dans le cas contraire. VI.5.4.3. Réseau à connexion complète
Il s’agit ici de l’évolution du vecteur d’activation d’un réseau à connexion complète sur une période de trois cycles. La matrice des poids W est complète ( 361 x 361 = 130321 poids). Entre deux « couches », c’est la même matrice de poids. Ici, chaque vecteur d’activation représente la réponse du réseau à une date particulière. Pour faciliter la représentation, nous avons déplié dans l’espace les évolutions temporelles du réseau à connexion complète (trois cycles). D’un instant au suivant, chaque neurone recalcule indépendamment et en parallèle sont état. Rappelons que chacun des neurones est connecté à tous les autres, ce qui implique pour chacun d’entre eux de recevoir 361 connexions et d’envoyer sa sortie sur ses 361 voisins. La principale différence entre les évolutions temporelles d’un réseau à connexion complète et le calcul de la sortie dans un réseau multicouche est que pour le premier les poids des connexions entre deux évolutions temporelles sont identiques, alors que pour le second, d’une couche à l’autre les poids des connexions sont différentes. VI.5.4.4. Réseau à inhibition latérale récurrente
Ici, les poids sont fixés à priori lors de la construction du réseau, il n’y a pas de phase d’apprentissage. La structure du réseau est représentée sur la figure ci – après. Il y a une seule couche de neurones. Les connexions sont localisées, chaque pixel d’entrée est en relation (excitatrice) avec un nombre réduit de neurones. De plus, on remarque la présence de connexions récurrentes inhibitrices localisées autour de chaque
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
116
neurone. Pixel d’entrée +
+
-
a) Architecture : chaque pixel d’entrée est connecté à un ensemble de neurones par des connexions excitatrices. Sur le réseau, chaque neurone réalise des connexions locales inhibitrices. b) Comportement : seuls les pixels noirs de la forme d’entrée envoient une information sur le réseau. Pour chaque neurone, il y a compétition entre l’excitation en provenance de l’entrée et l’inhibition en provenance de ses voisins. On observe alors le développement au cours du temps de sous – groupes d’activité significatifs (angles, intersections, extrémités, etc.) En utilisation, une image est présentée en entrée. Elle n’est pas codée comme précédemment : un groupe de neurones est associé à chaque pixel dont la couleur détermine le niveau d’activation. De plus, à la différence d’un réseau multicouche classique, la réponse n’est obtenue qu’après stabilisation de l’état de sortie. Le régime transitoire est du au retour d’information depuis les neurones voisins. De fait, cette boucle doit être réalisée un certain nombre de fois avant que l’on obtienne une valeur fixe en sortie. En conclusion, ces quelques exemples traités de comportements, permettent de comprendre que la disparition d’un ou même de plusieurs neurones ( ou de connexions) ne provoque pas une rupture brutale du traitement. En fait, la dégradation du comportement est fonction de la quantité d’éléments détruits. Cette propriété est désignée sous le terme de résistance aux pannes. Par rapport aux neurones biologiques, les neurones artificiels ont un nombre réduit de connexions( de 10.000 à quelques centaines), un nombre réduit de neurones ( quelques centaines à comparer aux mille milliards du cerveau) et une diminution de la complexité de la topologie. La plupart des modèles que nous verrons, sont des modèles synchrones à temps discrets et combinatoires, alors que le monde biologique est asynchrone et continu. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
117
VI.6. Modes de fonctionnement des RNA
-
Un RNA est caractérisé par : une architecture (topologie) : le nombre de neurones, le schéma d’interconnexion déterminé par le programmeur. La fonction de transfert : poids, fonctions de transition générées automatiquement par apprentissage. Un réseau de neurones travaille selon deux modes : mode d’apprentissage : c’est à dire le réseau de neurones s’adapte en utilisant des exemples mode de reconnaissance : le réseau de neurones traite des données jamais vues pendant l’apprentissage.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
118
VI.6.1. L’APPRENTISAGE
L’apprentissage est vraisemblablement la propriété la plus intéressante des réseaux neuronaux. Elle ne concerne cependant pas tous les modèles, mais les plus utilisés. VI.6.1.1. Définition
L’apprentissage est une phase du développement d’un réseau de neurones durant laquelle le comportement du réseau est modifié jusqu’à l’obtention du comportement désiré. L’apprentissage neuronal fait appel à des exemples de comportement. VI.6.1.2. Remarques
Dans le cas des réseaux de neurones artificiels, on ajoute souvent à la description du modèle, l’algorithme d’apprentissage. Dans la majorité des algorithmes actuels, les variables modifiées pendant l’apprentissage sont les poids des connexions. L’apprentissage est la modification des poids du réseau dans l’optique d’accorder la réponse du réseau aux exemples et à l’expérience. Il est souvent impossible de décider à priori des valeurs des poids des connexions d’un réseau pour une application donnée. A l’issu de l’apprentissage, les poids sont fixés : c’est alors la phase d’utilisation. Certains modèles de réseaux sont improprement dénommés à apprentissage permanent. Dans ce cas, l’apprentissage ne s’arrête jamais, cependant on peut toujours distinguer une phase d’apprentissage ( de remise à jour du comportement) et une phase d’utilisation. Cette technique permet de conserver au réseau un comportement adapté malgré les fluctuations dans les données d’entrées. VI.6.1.3. Classes d’algorithmes d’apprentissage
Dans un apprentissage, le réseau de neurones utilise des exemples pour s’adapter au problème. Il peut modifier : - Les poids de ses connexions ; - Son architecture c’est – à – dire créer ou éliminer des neurones, des connexions. Modifier les fonctions de transitions des neurones Il existe deux grandes classes d’algorithmes d’apprentissage : L’apprentissage supervisé et l’apprentissage non supervisé. VI.6.1.3.1. Apprentissage non supervisé
On considère des exemples X 1 , X 2 ,…, X n ; une architecture Α et W 0 des poids initiaux. Le problème est de trouver des poids W tels que : - les exemples soient correctement regroupés ; - la généralisation soit correcte : les nouveaux exemples sont assignés au cluster correctement.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
119
Exemple de l’apprentissage non supervisé : La loi de Hebb
La loi de Hebb ( 1949) s’applique aux connexions entre neurones, comme le représente la figure suivante :
w
ij
i
j
i est le neurone amont , j le neurone aval et wij le poids de la connexion. La loi de Hebb s’exprime de la manière suivante : « Si 2 cellules sont activées en même temps alors la force de la connexion augmente ». La modification de poids dépend de la co activation des neurones pré synaptique et post synaptique, ainsi que le montre la table suivante. xi et x j étant respectivement les valeurs d’activation des neurones i et j, et ∂wij ( dérivée partielle du poids ) correspondant à la modification de poids réalisée. xi
0 0 1 1
x j
0 1 0 1
∂wij
0 0 0 +
Table : La loi de Hebb La loi de Hebb peut être modélisée par les équations suivantes, en supposant que wij (t+1), désigne le nouveau poids et wij (t), l’ancien poids :
wij (t+1) = wij (t) + ∂wij (t)
∂wij (t)
= xi . x j (la co activité est modélisée comme le produit des deux valeurs d’activation)
L’algorithme d’apprentissage modifie de façon itérative (petit à petit) les poids pour adapter la réponse obtenue à la réponse désirée. Il s’agit en fait de modifier les poids lorsqu’il y a erreur seulement. Etape 1
Initialisation des poids et du seuil S à des valeurs (petites) choisies au hasard.
Etape 2
Présentation d’une entrée E 1 = ( e1 ,…, en ) de la base d’apprentissage. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
120
Etape 3
Calcul de la sortie obtenue x pour cette entrée : a=
∑ (w .e ) − S ( la valeur de seuil est introduite ici dans le calcul de la somme pondérée). i
i
x = signe(a) (
Si a > 0 alors x = +1 sinon a ≤ 0 alors x = -1)
Etape 4
Si la sortie x est différente de la sortie désirée d 1 pour cet exemple d’entrée E 1 alors modification des poids ( µ est une constante positive, qui spécifie le pas de modification des poids) :
wij (t+1) = wij (t) + µ( xi . x j ) Etape 5
Tant que tous les exemples de la base d’apprentissage ne sont pas traités correctement ( i.e. modification des poids ), retour à l’étape 2
Exemple d’application de l’algorithme d’apprentissage de Hebb :
Nous choisissons pour les neurones, un comportement binaire. Les entrées e1 et comme des neurones.
e1
e2
w1
x e2
w2
Nous obtenons ainsi trois neurones. Nous considérons comme base d’apprentissage, les données de la table suivante :
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
sont considérées
Intelligence artificielle et systèmes experts
e1
e2
1 1 -1 -1
1 -1 1 -1
x 1 1 -1 -1
121
E 1 E 2
E 3 E 4
Etape 1
µ = +1, les poids et le seuil S sont nuls. Etape 2
Nous considérons l’entrée E 1 = (1,1) de la base d’apprentissage : exemple 1 correspondant à la première ligne. Etape 3
Calcul de la sortie obtenue x pour cette entrée : a = w1 .e1 + w2 .e2 − S = 0.0.1+0.0.1-0.0 = 0 D’où a ≤ 0. Donc x = -1.
Etape 4
la sortie x = -1 est différente de la sortie désirée modifier les poids en appliquant
d 1
= 1 pour cet exemple d’entrée E 1 alors il faut
w1 = w1 + e1 .x
= 0.0 + 1.1 = 1 w2 = w2 + e2 .x = 0.0 + 1.1 = 1 Etape 5
On retourne à l’étape 2
Etape 2
On passe à l’exemple 2, l’entrée
E 2 =
(1,-1)
Etape 3
Calcul de la sortie obtenue x pour cette entrée : a = w1 .e1 + w2 .e 2 − S = 1.1+1.-1- 0.0 = 0 D’où a ≤ 0. Donc x = -1. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
122
Etape 4
la sortie x = -1 est différente de la sortie désirée modifier les poids en appliquant
d 1
= 1 pour cet exemple d’entrée E 2 alors il faut
w1 = w1 + e1 .x
= 1 + 1.1 = 2 w2 = w 2 + e 2 .x = 1 + 1.-1 = 0 Etape 5
On retourne à l’étape 2 …/ L’entrée ou l’entrée E 3 (3ème ligne) (1,-1) est correctement traité : a = -2 et x = -1 ( la sortie est bonne). On passe directement, sans modification des poids à l’entrée E 4 (4ème ligne) (-1,-1) . Celui – ci est E
aussi correctement traité. On revient alors au début de la bade d’apprentissage : l’entrée 1 (1,1) . Il est correctement traité, ainsi que le second E 2 (1,-1) . L’algorithme d’apprentissage est alors terminé : toute la base d’apprentissage a été passée en revue sans modification des poids. Exercice
Soit le réseau composé de 4 neurones d’entrée et d’un neurone de sortie ( w1 = et la base d’apprentissage : e1
e2
e3
e4
1 1 1 -1
-1 1 1 -1
1 1 -1 1
-1 1 -1 -1
w 2 = w3 = w 4 =
S = 0)
x 1 1 1 1
On demande de recherche les valeurs des poids qui résolvent le problème avec µ = 1. Remarque Il existe une possibilité de calculer les valeurs des connexions à partir des exemples, sans utiliser l’algorithme itératif. Si l’on initialise les poids à zéro et que l’on présente les exemples de la base d’apprentissage, la valeur des poids à l’issue de l’apprentissage est donnée par : = ∑ x il . x jl 0ù l est l’indice de l’exemple dans la base d’apprentissage. wij
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
123
VI.6.1.3.2. Apprentissage supervisé
On considère des exemples ( X 1 , Y 1 ),( X 2 , Y 2 ), …, ( X n , Y n ) ; une architecture initiaux. Le problème est de trouver des poids W tel que
Α et W 0 des
poids
k Y k = F A,W ( x ) On utilise des réseaux multicouches, car le résultat peut ne pas correspondre à Y k . Pour rappel, un réseau multicouche comprend des couches externes ( entrée et sortie), des couches internes ou cachées ( pour les traitements intermédiaires). Le problème est donc celui d’associer X k à Y k , k = 1, …, n. Les entrées sont présentées sur la première couche et sont propagées selon la loi
X i = f ( Ai ) avec Ai = ∑ W ij X j et S k est la sortie calculée sur la dernière couche.
La rétro - propagation du gradient permet de minimiser l’erreur entre la sortie désirée ( Y k ) et la sortie calculée ( S k ). Cette erreur peur être calculée de la manière suivante : e( W ) = =
1 m
1 m
2
m
∑1 S
k
− Y
k =
2
m
∑1
k
k S s
− Y sk
avec s ∈ couche de sortie.
k =
Exemple d’apprentissage supervisé : La règle du Perceptron
La règle de Hebb présentée ci – dessus ne s’applique pas dans certains cas, bien qu’une solution existe ( cf exercice précédent). Un autre algorithme d’apprentissage a donc été proposé , qui tient compte de l’erreur observée en sortie. L’algorithme du Perceptron est semblable à celui utilisé pour la loi de Hebb. Les différences se situe au niveau de la modification des poids. Algorithme du Perceptron Etape 1
Initialisation des poids et du seuil S à des valeurs ( petites) choisis au hasard.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
124
Etape 2
Présentation d’une entrée E 1 = ( e1 ,…, en ) de de la base d’apprentissage. Etape 3
Calcul de la sortie obtenue x pour cette entrée : a=
∑ (w e ) − S ( la valeur de seuil est introduite ici dans le calcul de la somme pondérée). i i
x = signe(a) (
Si a > 0 alors x = +1 sinon a ≤ 0 alors x = -1)
Etape 4
Si la sortie x du Perceptron est différente de la sortie désirée d 1 pour cet exemple d’entrée E 1 alors modification des poids ( µ est une constante positive, qui spécifie le pas de modification des poids) :
wi (t+1) = wi (t) + µ(( d 1 - x ) ei ) Rappel : d 1 = +1 si E est de la classe 1, de l’erreur.
d 1
= -1 si E est de la classe 2 et ( d 1 - x) est une estimation
Etape 5
Tant que tous les exemples de la base d’apprentissage ne sont pas traités correctement ( i.e. modification des poids ), retour à l’étape 2
Exemple de fonctionnement de l’algorithme du Perceptron
On prend comme base d’apprentissage e1
e2
1 -1 -1 1
1 1 -1 -1
d 1 -1 -1 -1
E 1 E 2 E 3 E 4
Etape 1
Conditions initiales :
w1
= -0,2,
w2
= +0,1, µ = +1, S = 0. (µ = +0,1)
Etape 2
Nous considérons l’entrée E 1 = (1,1) de la base d’apprentissage : exemple 1 correspondant à la première ligne. a(1) = -0.2 + 0.1.1 = -0.1. Etape 3
Calcul de la sortie obtenue x pour cette entrée : Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
125
x(1) = -1 ( la sortie désirée d(1) = +1, d’où modification des poids) Etape 4 w1 w2
= -0,2 + 0,1.( 1 + 1 ). (+1) = 0 = +0,1 + 0,1.( 1 + 1 ). (+1) = +0,3
Etape 5
On retourne à l’étape 2
Etape 2
Nous considérons l’entrée E 2 = (-1,1) de la base d’apprentissage : exemple 2 correspondant à la deuxième ligne. a(2) = +0,3.1 = = +0.3. Etape 3
Calcul de la sortie obtenue x pour cette entrée : x(2) = +1 ( la sortie désirée d(2) = -1, d’où modification des poids)
FAUX
Etape 4
= 0 + 0,1.( -1 - 1 ). (-1) = +0,2 w2 = +0,3 + 0,1.( -1 - 1 ). (+1) = +0,1 a(3) = -0.2- 0,1 -0 = = - 0.3 . OK E3 (-1,-1) a(4) = +0.2- 0,1 -0 = = 0.1. X = 1, KO E4 (1, -1) w1
w1 w2
= 0,2 + 0,1.( -1 - 1 ). (1) = 0 = +0,1 + 0,1.( -1 - 1 ). (-1) = +0,3
a(1) = 0+ 0,3.1 = = + 0.3. a(2) = 0+ (0,3. -1)-0 = = - 0.3. a(3) = 0+ (0,3. -1)-0 = = - 0.3. a(4) = 0+ (0,3. -1)-0 = = - 0.3.
OK OK OK OK
Etape 5
Tous les exemples de la base ont été correctement traits, l’apprentissage est terminé. Le Perceptron réalise une partition de son espace d’entrée en 2 classes ( 1 et 2 ) selon la valeur de sa sortie ( +1 ou -1). La séparation de ces deux zones est effectuée par un hyperplan (voir le schéma ). L’équation de la droite séparatrice est : w1 e1 + w2 e2 = 0
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
126
e2 (-1,+1)
(+1,+1) Classe 1
Classe 2
(-1,-1)
e1
(+1,-1)
La figure ci – dessus représente la partition de l’espace d’entrée de dimension 2 réalisée par un Perceptron se comportant comme un ET booléen. Les 4 exemples de la base d’apprentissage sont les 4 arêtes du carré. Les paramètres du Perceptron sont : w1 = 0, 2, w2 = 0,1 et S = -0,2. Remarque
Si les exemples d’apprentissage étaient différents, par exemple représnant le OU, alors c’est le comportement du OU qui aurait été appris avec le même algorithme d’apprentissage. D’autre part, il est possible de considérer que le seuil S est le poids d’une connexion dont le neurone amont est toujours dans l’état -1. La valeur de seuil se modifie alors en même temps que les autres poids. La convergence de l’algorithme vers la solution est plus rapide ( si cette solution existe). On appelle itération d’apprentissage, le passage de tous les exemples de la base d’apprentissage une fois dans l’algorithme. Exercices
1) Reprendre la question précédente (apprentissage non supervisée) et la résoudre en appliquant l’apprentissage du Perceptron. On ne modifiera pas le seuil S dans cet exemple précis. 2) Simuler la fonction ET avec des poids fixes et sans apprentissage. Les paramètres du Perceptron sont les suivants : w1 = 0, 2, w2 = 0,1 et S = -0,2. Les exemples de comportement à vérifier ( ET ) sont rappelés sur la table suivante :
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
127
e1
e2
1 -1 -1 1
1 1 -1 -1
d 1 -1 -1 -1
E 1 E 2
E 3 E 4
3) Pour la même base d’apprentissage, réaliser l’apprentissage ( ne pas oublier la modification du seuil). Le choix des conditions initiales est confié au hasard. Dans une première étape, il est conseillé de refaire pas à pas l’exemple de ce support : w1 = -0, 2, w2 = +0,1 et S = 0, µ = +0,1 ( conditions initiales). Puis faites varier µ. 4) Essayer d’apprendre le XOR. d E 1 1 1 1 E 2 -1 1 -1 E 3 -1 -1 1 E 4 1 -1 -1 5) Sachant que le XOR peut s’écrire comme : (( e1 ET (NON( e2 ))) OU (NON( e1 ) ET e2 )) proposez une solution pour réaliser le XOR avec 3 personnes. (NON(1) = - 1 et inversement) e1
e2
e1
e2
1 -1 -1 1
1 1 -1 -1
d 1 -1 -1 -1
E 1
E 2 E 3
E 4
Table du OU L’apprentissage de chacun des Perceptrons est réalisé séparément des autres. Qu’en est déduisez – vous quant aux possibilités d’un Perceptron ? d’une association de Perceptrons ? 6) Réaliser la fonction ET et OU avec 2 neurones. Dans ce cas, le réseau se compose de 2 entrées, 2 neurones et 4 poids. L’apprentissage de chacune des fonctions n’est pas
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
128
séparé. Il faut donc construire une base d’apprentissage spécifique de ce problème ( qui ne comprendra pas plus de 4 exemples). 7) Reconnaissance de caractère avec un Perceptron. Un caractère est codé sur 4 x 7 = 28 pixels. Il y a donc 28 entrées sur le Percetron. Tester la généralisation et la résistance au bruit en proposant à l’issu de l’apprentissage des caractères « abîmés ». 8) Reconnaissance de caractères : On associe à priori un caractère par neurone. Il faut donc autant de Perceptrons que de caractères à reconnaître. Tester la généralisation. Etudier les erreurs sur quels caractères apparaissent – elles, comment peut – on y remédier ? VI.7. Les mémoires associatives
Les mémoires associatives ont été proposés par plusieurs auteurs dès 1977 dont T. Kohonen. Dans mémoire associative , le terme « mémoire » fait référence à la fonction de stockage de l’information et le terme « associative » au mode d’adressage. L’expression « mémoire adressable par son contenu » est aussi souvent employée. L’information mémorisée ne peut être obtenue à une autre adresse précise, le seul moyen d’accès est de fournir une information. Dans le cas des mémoires auto – associatives, il faut fournir tout ou partie de l’information mémorisée. Ces mémoires sont donc principalement utilisées pour la reconstruction des données : l’opérateur fourni une information partielle que le système complète. Des expérimentations dans ce sens ont été faite avec l’annuaire électronique où l’utilisateur tape le maximum d’information relatives à sa demande, que le système complète et corrige (voir la exemple ci – dessous). Les mémoires hétéro – associatives se différentient des précédentes en rendant une information différente. Par exemple, si la clef d’entrée est une image de visage, le système répond par le nom de la personne correspondante. Exemple d’interprétation ( et de correction ) de requêtes d’un utilisateur de l’annuaire électronique par une mémoire auto – associative ( il peut subsister des erreurs). Appris : Jean Dupond, 22 rue du 29 Février, 99001 Asnières, 66 38 70 29 Clef : Jean Dupond, 22 rues du 29 Septembre, Asnières Résultat : Jean Dupond, 22 rue du 29 Février, 92501, Asnières, 66 38 70 29 VI.7.1. Structure
La structure neuronale d’une mémoire associative est similaire à celle d’une carte auto – organisatrice sans la notion de voisinage ( cfr les paragraphes suivants), ou à celle d’un ensemble de Perceptrons tous alimentés par les mêmes entrées. La figure suivante montre cette architecture où chaque entrée est connectée par des poids modifiables à toutes les sorties. La dimension de la couche d’entrée est de n neurones, celle de sortie de p. Il y a donc n.p poids dans ce réseau. Structure d’une mémoire associative
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
e1
….
w1
…
x1
129
en
E
wpn
…
xp
W
S
VI.7.2. Fonctionnement
Le principe de fonctionnement d’une mémoire associative se résume de la manière suivante : Soit ( E 1 , E 2 , …, E l , …) un ensemble de vecteurs de Rn. A chaque vecteur E l appelé « prototype » de l’espace d’entrée est associé un vecteur de sortie S l . La relation d’association entre E l et S l est linéaire. Elle est donnée par l’équation : = W. E l Où W est la matrice des poids de dimension (p.n). C’est une matrice rectangulaire de p lignes et n colonnes. L’objectif est de faire réaliser à ce réseau des associations entre les vecteurs d’entrées et les vecteurs de sortie désirés. Ceci nécessite une étape d’apprentissage. S l
VI.7.3. Apprentissage
L’apprentissage utilisé est de type supervisé. La base d’apprentissage est composée de couple de vecteurs d’entrées et de vecteurs de sortie associés. L’algorithme d’apprentissage initial fait appel à la règle de Hebb. Une entrée E 1 est appliquée sut les neurones d’entrée du réseau et l’on force dans le même temps les valeurs des neurones de sortie à S l . Les poids de chaque connexion est alors modifié selon la coactivité du neurone afférent ( entrée ) et du neurone efférent (sortie). Cet algorithme est itéré sur tous les exemples de la base d’apprentissage. A la fin du processus d’apprentissage, si la matrice W est initialement nulle ( W = 0 ), on obtient :
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
130
S . E W= ∑ l
T l
l
T
Où E l est la transposée du vecteur E l ( qui transforme un vecteur ligne en un vecteur colonne et réciproquement ) Cette expression est en fait un raccourci mathématique au processus d’apprentissage itératif mettant en jeu une règle locale de modification des poids. VI.8. La carte auto – organisatrice
Ce modèle de carte auto – organisatrice appartient à la classe des réseaux à compétition. Les neurones de la couche de sortie entrent en compétition, de telle façon qu’habituellement, un seul neurone de sortie est activé pour une entrée donnée. Cette compétition entre les neurones est réalisé grâce à des connexions latérales inhibitrices. Nous présentons deux modèles parmi les plus intéressants : la carte auto – organisatrice et le réseau ART. Il faut noter que tous ces deux réseaux sont des modélisations de processus biologiques et ont été récupérés par les ingénieurs connexionnistes. Comme applications des cartes auto – organisatrices, nous pouvons citer : les cartes phonétiques, le diagnostic des pannes, la compression d’images, la robotique, etc. Ces cartes s’organisent par rapport aux exemples d’entrée présentés en respectant les contraintes topologiques de l’espace d’entrée avec l’espace du réseau. Les zones voisines de l’espace d’entrée sont voisines sur la carte auto – organisatrice ( voir la figure suivante) . VI.9. Un réseau à architecture évolutive ( ART)
ART ( Adaptive Resonance Theoty) est un modèle de réseau de neurones à architecture évolutive développé en 1987 par Carpenter et Grossberg. Dans la plupart des réseaux de neurones , deux étapes sont considérées : - La phase d’apprentissage : les poids des connexions sont modifiés selon une règle d’apprentissage - La phase d’exécution où les poids ne sont plus modifiés. Avec le réseau ART, ces deux étapes sont réalisées simultanément. En phase de test, le réseau s’adapte à des entrées inconnues en construisant de nouvelles classes ( ajout de neurones) tout en dégradant au minimum les informations déjà mémorisées. II existe plusieurs versions de réseaux ( ART1, ART2,ART3). Le réseau ART1 est formé d’une couche d’entrée qui est aussi la couche de sortie et d’une couche cachée. Le terme couche cachée est emprunté au réseau multicouche, il souligne le fait que cette couche n’est pas directement observable par l’utilisateur à la différence de l’entrée ou de la sortie. Ce genre de réseau est utilisé dans la reconnaissance de la parole, la reconnaissance des formes visuelles, la détection d’image radar , la classification, etc.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
131
VI.10. Apprentissage par pénalité / récompense
L’algorithme d’apprentissage par pénalité ou renforcement est de type qualitatif par opposition aux apprentissages dits supervisé ou non supervisé. Il n’est pas nécessaire dans ce type d’apprentissage de disposer pour les exemples d’apprentissage des sorties désirées, seulement d’une appréciation globale du comportement du réseau pour chacun des exemples traités. Cet algorithme s’applique à toutes les structures de réseaux. La seule condition est de disposer de neurones de sortie stochastiques ( binaires). La réponse du réseau de neurones est ainsi fonction des entrées et, aussi, des neurones de sortie. On introduit donc à ce niveau une part d’aléatoire dans le comportement du système. Si la réponse fournie par le système est considérée comme bonne, l’algorithme tend à favoriser l’apparition de ce comportement en réduisant l’aléatoire. Dans le cas ou la réponse du système globale est considérée comme mauvaise, on cherche à éviter l’apparition ultérieure de ce comportement. Ce processus est itéré jusqu’à l’obtention du comportement désiré pour l’ensemble du système. VI.11. Les réseaux multicouches
Apparus en 1985, les réseaux multicouches sont aujourd’hui les modèles les plus employés. Ils comprennent plusieurs couches de traitement qui leurs permettent de réaliser des associations non linéaires entre l’entrée et la sortie. Ils sont capables de résoudre le cas du « ou exclusif » ( voir Perceptron). d)
Structure du réseau
Les neurones sont continus. La fonction de transfert est une sigmoïde qui peut être définie, par exemple, par l’équation : θ ai
f (ai ) = (e
−1) /(eθ ai + 1) Où θ spécifie la pente
L’architecture d’un réseau multicouche est son fonctionnement en phase d’utilisation ont été présenté au paragraphe I.4.8.5.3. e)
Apprentissage
L’apprentissage est supervisée : On associe une configuration d’entrée à une configuration de sortie. L’algorithme de la rétropropagation est un algorithme de gradient itératif conçu pour minimiser un critère quadratique ( à la puissance 2) d’erreur entre la sortie obtenue d’un réseau multicouche et la sortie désirée. Cette minimisation est réalisé par une configuration des poids adéquate. L’erreur(e) est la différence entre la valeur désirée (d) pour le neurone de sortie et sa valeur calculée par propagation ( x ). Ce signal d’erreur permet de définir une fonction de coût :
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
C( W ) = M [C l(W)] =
M
∑
132
e lj ( W )
avec
elj = ( d lj - x lj )
Où j indique un numéro d’indice pour les neurones de sortie et l indique un exemple d’apprentissage. M est l’opérateur de moyennage, c’est une estimation de la moyenne temporelle dans le cas stochastique. On réalise donc la moyenne des erreurs obtenues pour chacun des exemples de la base d’apprentissage. Cet algorithme nécessite une fonction continue, non – linéaire et différentiable comme fonction de transfert du neurone. 1) 2) 3) 4) 5)
Initialisation des poids à des valeurs aléatoires de faible grandeur Sélection d’un exemple d’apprentissage ( E, d )l dans la base d’apprentissage Présentation de la forme d’entrée ( E ) sur la couche d’entrée du réseau ; Calcul par propagation de la sortie obtenue ( o ) ; Si erreur sortie Alors pour tout les neurones i ( depuis la sortie jusqu’à l’entrée) Si i est un neurone de sortie alors y i = 2 f ' (ai ).(d i − xi )
i ∑ ki k Si i est un neurone caché (ou d’entrée) alors i k ( k : neurones compris entre la couche actuelle et la couche de sortie ) 6) Application de la procédure de gradient µ est un gain fixé par l’utilisateur wij (t + 1) = wij (t ) + µ . y i . x j ; 7) Tant que l’erreur est trop importante, retour à l’étape 2 (exemple suivant).
y = f ' ( a
)
w
− y
L’algorithme de la rétropropagation de gradient, bien que très simple à implanter, nécessite un certain savoir – faire pour une utilisation efficace. En effet, la convergence de l’algorithme n’est pas prouvée et de multiples variables sont à ajuster précisément en fonction du problème traité. Parmi ces variables à fixer, citons par exemple : les paramètres apparaissants dans les différentes équations ( gain de la procédure de gradient (µ), pente de la fonction sigmoïde (θ), …), la sélection des exemples pour l’apprentissage et le test, l’ordre de présentation et les distribution relatives des exemples dans la base d’apprentissage, le choix du codage des informations en entrée et en sortie, la structure du réseau ( présence éventuelle de connexions directes de la couche d’entrée sur la couche de sortie pour traiter à ce niveau la partie linéaire du problème, limitation pratique du nombre de couches, taille de la couche cachée), la configuration initiale des poids, le nombre d’itérations d’apprentissage, …
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
133
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
134
CHAPITRE VII. L’INTELLIGENCE ARTIFICIELLE DISTRIBUEE (IAD) VII.0. Introduction
L’Intelligence Artificielle classique dont il a été question dans les paragraphes précédents s’attache à la construction des programmes informatiques qui sont capables d’exécuter des tâches complexes en s’appuyant sur une centralisation et une concentration de l’intelligence au sein du système unique. Il en résulte ainsi un certain nombre de difficultés dues pour la plupart à la nécessité d’intégrer au sein d’une même base de connaissance : l’expertise, les compétences et les connaissances d’individus différents qui dans la réalité communiquent et collaborent à la réalisation d’un but commun. C’est ainsi qu’on pouvait se poser des questions telle que : ‘‘Comment réunir au sein d’un seul système intelligent toutes les connaissances et les expertises requises pour la réalisation des certaines tâches complexes habituellement effectuées par les hommes ?’’. Telle est l’une des préoccupations de l’intelligence artificielle classique dès qu’elle veut modéliser des processus tel qu’un processus de production, une mission spéciale, un pilotage d’avion, etc. Cela suppose le plus souvent l’assimilation des savoirs faire et des compétences souvent trop nombres et disparates faisant l’objet d’une programmation centralisée. C’est ainsi que l’Intelligence Artificielle Distribuée est née au début des années 1970, de la volonté de trouver des solutions à ces difficultés. A la différence de l'Intelligence Artificielle classique (IA) qui modélise le comportement intelligent d'un seul agent, l'Intelligence Artificielle Distribuée (IAD) s'intéresse à des comportements intelligents qui sont le produit de l'activité coopérative de plusieurs agents. Le passage du comportement individuel aux comportements collectifs est considéré non seulement comme une extension mais aussi comme un enrichissement de l'IA, d'où émergent de nouvelles propriétés et de nouveaux comportements. Pourquoi distribuer l'intelligence ? • • • • • •
Les problèmes sont physiquement distribués : les problèmes complexes le sont souvent (réseaux, chaînes de montage, gestion de trafic...) Les problèmes sont fonctionnellement distribués Les réseaux imposent une vision distribuée La complexité impose une vision locale Les systèmes doivent pouvoir s'adapter à des modifications de structures ou d'environnement Le génie logiciel va dans le sens d'une conception en termes d'unités autonomes en interactions : langages objets
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
135
Exemple
Supposons que nous voulons concevoir un robot capable de suivre un mur. En Intelligence Artificielle classique, on cherche à décomposer le problème en différents sous fonctions : - détecter le mur, - Aller vers le mur, - S’arrêter à une certaine distance du mur, - Tourner - Puis se déplacer en gérant convenablement la distance avec le mur, etc. En IAD, par contre, l’approche réactive consiste à envisager deux types de comportements matérialisés par deux mécanismes simples : le premier fera que le robot est attiré par les obstacles, et le second qu’il est repoussé par les obstacles. On constate que les deux comportements c’est à dire les agents, interagissent et la fonctionnalité « suivre le mur « va émerger. On a affaire à des agents de faible granularité. Ces derniers s’apparentent en fait à des agents du type automate simple, voire même à des neurones formels. Toutefois, c’est l’école cognitive qui, à ce jour, donne lieu aux applications les plus avancées. Les connaissances sont éclatées en plusieurs entités. Cela oblige aux concepteurs de concevoir des bases de connaissances qui ne sont pas uniques, mais qui sont reliées aux réalités du monde c’est à dire à ce que l’agent peut savoir des autres d’une part et à ce qu’il peut connaître de leur environnement d’autre part. La prise en compte de cette extériorité, composée à la fois des conséquences des actes de chaque agent et des communications inter – agents, nécessite des développements de théories dans le domaine des protocoles de communications, de la coopération entre agents et de leurs relations vis – à – vis de l’environnement. Pour coordonner les actions entre agents, il existe deux schémas possibles : - Soit on opte pour une architecture du système capable de déterminer et de planifier d’une manière globale les actions des différents agents ; - Soit on opte pour une architecture du système où les agents sont totalement autonomes c’est à dire sont capables d’identifier eux mêmes les conflits et les résoudre localement. Les différents comportements des agents supposent des mécanismes de raisonnements appropriés et une logique sous – jaçante. Les agents doivent être à mesure d’acquérir des informations sur l’environnement et sur les autres agents, soit directement par leur propre système de perception, soit par échanges d’informations, soit encore par apprentissage. Ces informations doivent par conséquent trouver une représentation formelle qui les rend utilisables par les mécanismes de raisonnements, de gestion d’hypothèse, de prise de décision, etc. VII.1. Définition de l’Intelligence Artificielle Distribuée ( IAD)
L’intelligence artificielle distribuée (IAD) est une discipline de l’informatique qui se propose de distribuer l’intelligence parmi plusieurs agents, non soumis à un contrôle centralisé. En d’autres mots, elle se propose d’élaborer des systèmes constitués d’un groupe d’agents chacun étant doté Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
136
d’une certaine autonomie et devant être capable de planifier, d’agir et de travailler dans un environnement commun au prix des conflits éventuels. N.B : Ces nouveaux systèmes ne sont plus des penseurs renfermés sur leurs propres pensées mais des penseurs ouverts vers l’extérieur et qui sont capables de faire des échanges au sein d’un groupe ou des sociétés. D’ou la naissance des certains concepts nouveaux en intelligence artificielle distribuée tels que la coopération , la coordination des actions, la négociation , la planification , l’organisation . La distribution de l’intelligence peut alors être guidée par deux formes de répartition de l’expertise : une répartition matérielle et une répartition fonctionnelle. L’Intelligence Artificielle Distribuée propose une distribution de l’expertise sur un ensemble de systèmes capables d’interagir en coopération dans un environnement commun et de résoudre les éventuels conflits pour mener à bien une tache complexe (résolution de problème, aide à la décision, reconnaissance de formes, conduite de processus, …) L’Intelligence Artificielle Distribuée s’organise autour de trois axes : o L’intelligence Artificielle Parallèle (IAP) o La résolution Distribuée de Problèmes(RDP) o Les Systèmes Multi-Agents (SMA) VII.1. 1. L’intelligence Artificielle Parallèle(IAP)
Elle concerne le Développement de langage et d’algorithmes pour l’IAD Elle vise l’amélioration des performances des systèmes d’IAD par la proposition de langages concurrents et d’architectures parallèles sans toutefois s’intéresser à la nature du raisonnement ni à l’intelligence des comportements VII.1. 2. La Résolution Distribuée de Problèmes(RDP)
Elle s’intéresse à la manière de décomposer un problème particulier sur un ensemble d’entités distribuées et coopérantes. Elle s’intéresse aussi à la manière de partager la connaissance du problème entre entités et d’en obtenir la solution. Les entités sont en générale dépendantes les unes par rapports aux autres
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
137
VII.1. 3. Les Systèmes Multi-Agents(SMA)
Il s’agit de faire coopérer un ensemble d’entités pro-actives et relativement indépendantes appelés « agents » dotés d’un comportement intelligent et de coordonner leurs buts et leurs plans d’actions pour la résolution de problèmes. Un Système Multi – Agent ( SMA) est un ensemble d’agents situé dans un certain environnement et interagissant selon une certaine organisation. Un agent étant une entité caractérisée par le fait qu’elle est, au moins partiellement , autonome. Un agent peut être un processus, un robot, un être humain, etc. Cette technique est utilisable dans de nombreuses disciplines notamment en simulation VII.2. Applications de l’IAD
L’intelligence Artificielle Distribuée a plusieurs applications dans plusieurs domaines : : L’approche intelligence artificielle distribuée consiste à exploiter la distribution matérielle des différents centres qui constituent le réseau. Alors que l’intelligence artificielle classique cherche à représenter par un modèle unique le fonctionnement de l’ensemble. En IAD, chaque centre est considéré comme un « agent » autonome interagissant avec d’autres agents (centres). 1. Dans le domaine de management et de surveillance des réseaux de télécommunication.
2. Dans les problèmes de gestion d’un réseau hétérogène d’ordinateurs 3. Dans les problèmes de gestion des réseaux de transport 4. Dans les problèmes de gestion des réseaux de distribution de l’énergie
Dans tous ces quatre problèmes, chaque centre est considéré comme un agent autonome. Un projet intéressant dans le domaine de gestion des réseaux de distribution d’énergie, consisterait à l’élaborer des prototypes des systèmes distribués destinés notamment à l’exploitation des grands réseaux de production et de distribution de l’énergie électrique. Ces différents réseaux seront constitués des centrales électriques, et chaque centrale électrique comprendrait plusieurs systèmes experts destinés à l’analyse des pannes, à l’évaluation des risques, etc. L’objectif d’un tel système est de planifier au mieux le fonctionnement de l’ensemble et son exploitation en respectant l’architecture et le matériel existant. 5. Pilotage de navires tels que les supers tankers ou les porte – avions 6. Planification des missions spatiales
Dans les problèmes 5 et 6, l’expertise est abordée en termes de fonctions ou de tâches. Chaque fonction ou tâche requerrant la plupart du temps la coopération de plusieurs expertises. . Ici, les expertises, tout en s’appuyant sur des informations identiques et une conceptualisation semblable d’un problème sont alors susceptibles de conduire à des conclusions divergentes, selon des critères d’appréciation ( exprimées sous forme de règles) qu’elles utilisent.. L’approche IAD consiste donc à, élaborer une architecture, constituée d’entités expertes ( les agents) dont il s’agit de respecter l’indépendance , tout en prévoyant de gérer les situations Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
138
conflictuelles. Par exemple, si nous nous imaginons un scénario d’interaction entre un groupe de robots autonomes, possédant un certain degré d’intelligence et coopérant pour accomplir leur travail. Supposons qu’un robot X doit être transporté par un autre robot Y, d’un atelier où il a été réparé vers sa place habituelle. Après l’avoir transporté le robot Y doit aller souder des pièces à un poste P. Mais, voilà que ses batteries sont déchargées et qu’il ne peut plus souder dans le temps qui lui est imparti, d’autant que le poste de distribution de l’énergie est déjà occupé par un autre robot Z , d’où une attente supplémentaire de plusieurs heures , et les choses peuvent toutefois s’arranger dynamiquement si le robot Z est lui même un robot soudeur et si le robot Y peut négocier avec lui le soudage des pièces. 7. Dans les problèmes de planification
L’intelligence artificielle distribuée offre des possibilités de négociations autorisant une gestion locale des conflits pour une re - planification dynamique. En effet, avec l’intelligence artificielle classique les problèmes de planification trouvaient des solutions en couplant les modèles de la recherche opérationnelle et l’intelligence artificielle. Cependant, chaque fois qu’il y a conflit l’ensemble du processus est obligé de s’arrêter et de se réinitialiser pour mettre en place un nouveau plan. VII.3. Concepts sur les Agents
L’IAD a introduit le concept de Systèmes Multi – Agents ( SMA) qui porte sur le modèle de l’agent dont les caractéristiques sont : la coopération, la coordination et la communication. L'approche multi-agent provient, en partie, d'une critique de l'intelligence artificielle classique qui considère qu'un problème doit être traité par un superviseur qui décompose la tâche à réaliser en tâches plus simples, puis en itérant le procédé jusqu'à atteindre un niveau de description atomique, soluble par le superviseur. A l'inverse, dans les systèmes multi-agents, la résolution de problèmes est le fruit d'interaction entre entités relativement autonomes appelées agents . Ces interactions sont plus ou moins complexes (coopération, conflits, compétitions...) et peuvent faire émerger des comportements qui n'étaient pas spécifiquement comprise dans la description exhaustive des agents. a .Qu’est ce qu’un agent ?
Un agent c’est une entité plus ou moins autonome qui est définie par : - Ses connaissances c’est à dire les objets qu’il manipule (une base d’objets) ainsi que les contraintes correspondantes. - Ses accointances c’est à dire l’ensemble des autres agents qu’il connaît avec les contraintes qui s’y rattachent et qui sont notamment liés aux aspects organisationnels. - Ses buts - Ses compétences formées d’opérateurs et des contraintes sur ces opérateurs tels leur agencement dans un plan.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
139
-
Ses interactions comportant les connaissances nécessaires à l’agent pour communiquer avec les autres agents. Ces connaissances portent sur : - Les conventions de l’interaction de l’agent avec ses accointances qui son aussi liés contraintes organisationnelles appelées protocoles , et les contrôles regroupant les règles de gestion ces protocoles. - Les mécanismes de raisonnement qui lui permettent de prendre des décisions ou de planifier actions La structure d’un agent est ainsi axée autour de trois fonctions principales : - Celle de percevoir ; - Celle de décider ; - Celle d’agir. b. Nature des agents
Les agents peuvent être des entités physiques (capteurs, processeurs, véhicules, etc.) ou des entités abstraites (tâches à réaliser, déplacements, etc.) qui sont capables d’agir sur leur environnement, et sur elles – mêmes c’est à dire modifier leur propre comportement. Ils disposent ainsi d’une représentation partielle de l’environnement et de moyens de perception et de communication. Le comportement des agents est fondé sur des connaissances données à priori ou des connaissances acquises. D’où les agents se composent généralement de deux parties : - La première partie est à « tendance sociale » et elle est tournée vers la collectivité ( c’est le domaine du conversationnel et du relationnel) : Les mécanismes et les bases de connaissances associés concernent les activités du groupe. - La seconde est à tendance individuelle (c’est le domaine du savoir et du comportement de l’agent) : les mécanismes et les bases de connaissances contiennent les règles de fonctionnement interne de l’agent. c. Les agents dits intelligents
-
Il existe plusieurs définitions des agents intelligents. Nous retenons ici quelques unes : Un agent intelligent est un logiciel conçu pour remplir une mission de façon autonome sur un réseau pour le compte de son utilisateur. Par exemple les agents de recherche d’information « off line », les agents de recherche avancée, les agents pour le commerce électronique, etc. Un agent intelligent est un objet utilisant les techniques de l’intelligence artificielle : il adapte son comportement à son environnement et en mémorisant ses expériences, se comporte comme un sous – système capable d’apprentissage. Un agent intelligent est un composant logiciel et / ou matériel capable à des degrés différents d’être autonome, de communiquer et d’apprendre. On peut aussi ajouter à ces capacités la mobilité.
D’une manière générale, un agent intelligent contient au moins un des éléments suivants : - Une base de connaissances prédéfinie, - Un moteur d’inférence, lui permettant de tenir des raisonnements plus ou moins complexes Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts -
140
Un système d’acquisition de connaissances Un mécanisme d’apprentissage.
d. Agents logiciels / Agents Physiques
Un Agent logiciel : a . se trouve dans un système informatique ouvert (ensemble d'applications, de réseaux et de systèmes hétérogènes) b . peut communiquer avec d'autres agents c . est mue par un ensemble d'objectifs propres d . possède des ressources propres f . ne dispose que d'une représentation partielle des autres agents g . possède des compétences (services) qu'il peut offrir aux autres agents i . a un comportement tendant à satisfaire ses objectifs, en tenant compte des ressources et des compétences dont elle dispose, et en fonction de ses représentations et des communications qu'elle reçoit. Agent physique : a . se trouve situé dans un environnement c . est mue par une fonction de survie d . possède des ressources propres, sous la forme d'énergie et d'outils e . est capable de percevoir (mais de manière limitée) son environnement f . ne possède pratiquement aucune représentation de son environnement g . possède des compétences h . peut éventuellement se reproduire i . a un comportement tendant à satisfaire sa fonction de survie, en tenant compte des ressources, des perceptions et des compétences dont elle dispose e. Niveaux d'organisation des agents:
On distingue 3 niveaux d'organisation entre agents : • • •
Le niveau micro-social : on s'intéresse aux interactions entre agents Le niveau des groupes : on s'intéresse aux structures intermédiaires (différenciation des rôles et activités, émergence de structures organisatrices...) Le niveau société globale : on s'intéresse à la dynamique d'un grand nombre d'agent, à sa structure générale et a son évolution.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
141
VII.4. Les Système Multi – Agents
Les Systèmes Multi – Agents ( SMA) puisent leur fondement de nombreuses disciplines (Sciences cognitives, sociologie et psychologie sociale, l’informatique) et proposent une nouvelle approche pour le développement de systèmes à plusieurs composantes autonomes pouvant coopérer entre elles. Lorsqu’on parle de Système Multi – Agents, on sous entend que l’expertise est abordé en terme des fonctions ou des tâches. Chaque fonction ou chaque tâche requiert la coopération de plusieurs expertises. On peut rencontrer ces genres de situations par exemple dans le pilotage des navires, dans les porte – avions, dans la planification des missions spatiales, etc. Un système multi – agents intègre certains mécanismes régissant la dynamique de participation d’un individu à la vie d’un groupe ; raison pour laquelle les études sur ces systèmes multi – agents sont pluri -disciplinaires (faisant intervenir plusieurs disciplines tel que l’informatique, la sociologie et la psychologie au sein des milieux industriels). Un système multi – agents ( SMA) est composé de : 1. Un environnement , disposant généralement d'une métrique 2. Un ensemble d'objets . Ces objets sont situés, c.a.d. que pour chaque objet il est possible d'associer une position dans . Ils sont passifs, c.a.d. qu'ils peuvent être perçus, crées, détruits et modifiés par les agents 3. Un ensemble d'agents, qui sont des objets particuliers, lesquels représentent les entités actives du système 4. Un ensemble de relations qui unissent des objets entre eux 5. Un ensemble d'opérations permettant aux agent de percevoir, produire, consommer, transformer et manipuler des objets 6. Des opérateurs chargés de représenter l'application de ces opérations et la réaction du monde à cette tentative de modification (lois de l'univers) VII.4.1. Pourquoi utiliser des SMA ?
En effet, de plus en plus de systèmes sont des systèmes répartis : • • •
Bases de données (ressources) Internet (CPU) IHM multi-modales (information)
Il y a une augmentation sensible des ressources informatiques : • • •
explosion du WWW augmentation des puissances CPU développement du haut-débit Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
142
VII.4.2.Quelle est la nécessité d'utiliser des SMA ? • • •
Pour intégrer la nouveauté, rendre le système adaptatif, modulable Pour faire coopérer des machines distantes Pour permettre l'inter-opérabilité entre systèmes hétérogènes
VII.4.3.Quand utiliser un SMA ? • • • • • • • •
Quand le problème est trop complexe mais peut être décomposé Quand il n'y a pas de solution générale ou lorsque celle-ci est trop coûteuse en CPU A des fins de modélisation (populations, structures moléculaires, molécula ires, réseaux de spins, tas de sables...) Quand on peut paralléliser le problème (gain de temps) Quand on veut une certaine robustesse (redondance) Quand l'expertise provient de différentes d ifférentes sources Quand les données, contrôles, ressources sont distribués Quand le système doit être adaptatif ada ptatif
VII.5. Ecoles des agents
Concernant le niveau d’intelligence caractérisant chaque agent, Il existe deux grandes opinions coexistant dans le domaine de l’intelligence artificielle distribuée, plus particulièrement dans les systèmes multi - agents : -
L’une correspondant à l’école cognitive Et L’ autre correspondant à l’école réactive
L’école cognitive se
fonde sur la coopération des agents qui sont déjà capables à eux seuls de réaliser des opérations complexes tandis que l’école réactive suppose que les agents sont plus simples et moins intelligents, mais beaucoup plus nombreux et actifs. Il n’est pas question ici, à l’agent d’être individuellement intelligent. Les agents de l’école cognitive sont dits des agents cognitifs . Ces agents sont caractérisés en utilisant des notions mentales telles que la connaissance ( par exemple Jean connaît le fait que les humains sont mortels), la croyance ( par exemple Jean a pris son para soleil parce qu’il croit que la journée sera ensoleillée), les désirs, buts ( Jean désire avoir un doctorat), les intentions ( Jean a l’intention de travailler durement pour avoir sa thèse), les choix, décisions ( Jean a décidé de faire une thèse), les engagements ( par exemple Jean ne va pas s’arrêter de travailler avant d’avoir fini sa thèse), des conventions ( si par hasard, Jean décide d’abandonner sa thèse, il va le dire à son promoteur), les obligations ( Jean doit travailler pour entretenir sa famille). Ces agents ont une représentation partielle de leur environnement, des buts explicites, sont capables de planifier leur comportement, de mémoriser leurs actions passées, de communiquer par envoi de messages ; de négocier, etc. Un SMA constitué d’agents cognitifs possède communément peu d’agents cognitifs. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
143
Dans l’école réactive, les agents sont dits réactifs .
Ils sont qualifiés de ne pas être intelligents par eux – mêmes. Ce sont des composants très simples qui perçoivent l’environnement et qui sont capables d’agir sur celui – ci. Ils n’ont pas une représentation symbolique de l’environnement ou des connaissances, ne possèdent pas de croyances, ni de mécanismes d’envoi de message. Les SMA constitués d’agents réactifs possèdent généralement un grand nombre d’agents cognitifs et présentent un comportement global intelligent. Les agents intelligents intelligents sont donc intelligents au niveau du groupe, du système. Et par conséquent, l’intelligence est distribuée entre beaucoup d’agents réactifs et le comportement intelligent devrait émerger de l’interaction entre ces agents réactifs et l’environnement. VII.6. Les Agents mobiles
Les SMA dans lequel les agents sont mobiles, présentent un intérêt dans l’étude de l'approche client/serveur actuelle : En effet, effet, dans ce type d'architecture, il y a beaucoup d'utilisation de la bande passante pour faire communiquer le client et le serveur et pour le transfert tr ansfert de données. Dans une approche ``agents mobiles'', il n'y a pas de communication entre le client et le serveur mais, une fois que l'agent s'est déplacé dépl acé sur le ``serveur'', les communications se font fon t en local. Citons quelques avantages d’une architecture SMA à agents mobiles •
• • • • •
• •
En terme de performances : il y a moins d'utilisation de la bande passante p assante (les communications sont beaucoup plus rapides puisqu'elles sont locales), ou du moins de manière plus ponctuelle. Il faut cependant faire un compromis entre BP ou QoS (Qualité de service), et puissance CPU nécessaire n écessaire au niveau du ``serveur'' (utilisation du RTC). En termes de sécurité : les données ne circulent pas sur le web. Le système est plus robuste car réparti. répa rti. Les charges sont réparties, parallélisées. Le ``client'' peut faire autre chose pendant ce temps (voire même être éteint) : application en sans-fil ou utilisation nomade. Tout ceci est avant tout intéressant si les interactions entre agents sont nombreuses. Or ce devrait être le cas si le serveur est conçu comme un SMA puisque l'agent mobile doit alors interroger les différents agents ``serveurs''. A partir des fonctions de base fournies par les ``serveur'', le client peut composer co mposer un agent complexe qui utilise un u n ensemble de ces capacités (ex: (ex : ftp récursif). Les agents étant dynamiques, ils peuvent évoluer au cours du temps : ils peuvent apprendre des choses et les ramener au ``client'', leur stratégie tant du coté client que serveur peut évoluer, ils n'agissent pas de manière automatique mais en fonction de leur passé...
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
144
Parmi les inconvénients, nous pouvons citer :
Interopérabilité et portabilité : les agents peuvent fonctionner fo nctionner sur différentes plate-formes. Conséquence : Une Nouvelle architecture ISO s’impose
Au niveau application, il faut prévoir de nouvelles couches ``réseau'' pour l'interaction entre agents. Base : langage de programmation commun multi-plateforme (ex: Java) ou architecture de communication au niveau réseau. (AGLETS/IBM, Grasshopper, Voyager, Concordia...), (AgentTCL...) Compréhension entre les agents : langage commun (ex: ACL : Agent Communication Language ) Utilisation de CORBA (IIOP) CORBA, acronyme de Common Object Request Broker Architecture , est une architecture
logicielle, pour le développement de composants et d'Object Request Broker ou ORB ( Courtier de Requête Objet). Ces composants, qui sont assemblés afin de construire des applications complètes, peuvent être écrits dans des langages de programmation distincts, être exécutés dans des processus séparés, voire être déployés sur des machines distinctes. Corba est un standard maintenu par l'Object Management Group.Corba est une norme créée en 1992, initiée par différents constructeurs et éditeurs dont Sun, Oracle, IBM,… regroupés au sein de l'Object Management Group.C'est avec la version 2 de Corba (fin 95) qu'est apparu le protocole IDL). standard IIOP et l'Interface description language ( IDL IDL : Interface description language (appelé
aussi interface definition language ) est un langage voué à la définition de l'interface de composants logiciels, laquelle permet de faire communiquer les modules implémentés dans des langages différents. IDL est défini par l'OMG et utilisé notamment dans dan s le cadre d'applications CORBA. CORB A. L’OMG(Object Management Group) est
une association américaine à but non-lucratif créée en 1989 dont l'objectif est de standardiser et promouvoir le modèle objet sous sou s toutes ses formes. L'OMG est notamment à la base des standards UML (Unified Modeling Language), MOF (MetaObject Facility), CORBA (C0mmon Request Broker Architecture) et IDL (Interface Definition Language). L'OMG est aussi à l'origine de la recommandation MDA (Model Driven Architecture) ou Ingénierie des Modèles, avec en particulier le langage standardisé de transformation de modèles QVT (Query/View/Transformation). Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
145
La version 2.3 rend interopérables Corba et RMI. La version 3 de Corba spécifie 16 types de services (nommage et annuaire des objets, cycle de vie, notification d'événements, transaction, relations et parallélisme entre objets, stockage, archivage, sécurité, authentification et administration des objets, gestion des licences et versions,…) mais tous ne sont pas mis en œuvre dans les ORB du marché. VII.7. Conception des Systèmes Multi - Agents
La conception d’un SMA nécessite de se poser les questions suivantes : • • •
Que perçoit l'agent ? Quels sont ces moyens d'action ? Quelles sont ses capacités de décision ?
Par ailleurs, pour la tache à résoudre on peut se poser les questions suivantes ? : • • • •
Quelles sont les capacités d'interactions avec les autres agents ? Quelle est leur nature ? (coopération, compétition, neutre...) Est-il nécessaire de leur donner des capacités de communication ? De quel type ? (imitation, signaux, langage...)
Il faut repenser la programmation. Exemple: Tâches émergentes : pas besoin de coder la tache. C'est la dynamique d'interaction qui fait émerger le comportement global. Par ailleurs, cette interaction existe mais n'est pas ``codée''. Exemple des fourmis de Deneubourg ou des robots ramasseurs. Exemple: Tache de déminage : la tache consiste à déminer un terrain. Différentes approches : • •
•
Supervision : il existe un superviseur qui planifie le déminage. On optimise alors la recherche mais tout se fait séquentiellement. Tache émergente : on utilise une stratégie de type exploration aléatoire par un ensemble d'agents qui s'évitent. La recherche est parallélisée mais il n'y a pas de coordination et l'on peut repasser au même endroit. Stratégie mixte : on effectue un compromis entre supervision et parallélisme en élisant un ``gouvernement'' (3 agents : premier ministre, ministre de la défense, ministre de la communication) dont les taches sont spécifiques (resp. récupérer les information provenant des agent et fabriquer une représentation globale, donner les ordres stratégiques, gérer les communications entre agents). Une stratégie intéressante consiste à élire le gouvernement parmi les citoyens en fonction de leur mérite (changement de rôle). Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
146
VII.7.1. Architecture des SMA VII.7.1.1. Architecture à base de tableau noir
C’est une architecture où le contrôle est centralisé. Elle est composée de trois éléments : -
Les connaissances Le tableau noir Le mécanisme de contrôle
Il n’y a pas de communication directe. L’interaction se fait via le partage d’un espace commun de travail. Agen
Tableau Noir
Agen
Agen
Agen
Contrôle
VII.7.1.2. Architecture à contrôle distribué
C’est une architecture où le contrôle et les connaissances sont totalement distribuées. Elle est caractérisée par : -
Un traitement local au niveau de chaque agent La communication se fait par envoi des messages
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
147
Agen t
Agen t
Agen t
Agen t
Agen t
Agen t Agen t
Le langage d’acteurs est la technique la plus utilisée pour ce genre d’architecture. Un acteur regroupe au sein d’une même entité un ensemble de connaissances ( les accointances et un script). VII.7.2. Environnement de développement des SMA
En plus des langages d’acteurs qui supportent l’exécution des mécanismes parallèles, les langages de base les plus utilisés sont : LISP, C++, PROLOG, SMALLTALK. VII.8. Applications des SMA
Les télécommunications, le commerce électronique, la robotique, l'optimisation de réseaux (transport, routage...), gestion. Par ailleurs, des applications spécifiques visent la simulation de sociétés (écologie, économie). VII.9. Représentation des connaissances en IAD
Les modes de représentation des connaissances en IAD sont celles de l’Intelligence Artificielle classique : La logique classique, les réseaux sémantiques, qui consistent à exprimer sous forme de graphes les liaisons entre les différents concepts, les règles de production, les représentations en langages objets, etc. Les raisonnements révisables, les méthodes de validation des hypothèses, la logique floue, la logique modale ou la logique de l’incertain sont utilisés pour pallier au problème d’autonomie des agents et aux limites de leurs capacités.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
148
VII.10. Applications de l’IAD dans le domaine militaire
L’informatique est actuellement omniprésente dans le domaine militaire. En effet, on trouve des ordinateurs sur les missiles, les sous – marins ou les avions de combats, sur les portes avions , etc. Ces ordinateurs permettent d’analyser les signaux recueillis par un radar, un microphone, une caméra infrarouge ou bien de calculer des trajectoires. L’informatique ne peut plus être utilisée seulement pour résoudre les problèmes scientifiques , médicaux, techniques, voire commerciaux, mais aussi des problèmes militaires. Avec les systèmes experts , il ne s’agit plus simplement de calculer plus vite et plus précisément que l’homme, mais bine des raisonner et de décider sur le terrain à sa place, sans mettre sa vie en danger. Il existe plusieurs applications de l’intelligence artificielle dans le domaine militaire, parmi lesquelles nous pouvons citer : -
Le système avancé de reconnaissance des cibles ; Les véhicules autonomes ; Les copilotes informatiques la mise au point des robots sentinelles qui sont capables de surveiller des secteurs délimités, la mise au point des robots sacrifiables c’est à dire des robots capables de mener une opération de reconnaissance dans une ville. Le pilotage des navires ou la planification des missions spatiales : Il s’agit ici par exemple de super – tankers, de portes avions, etc.
a) Les systèmes de reconnaissances de cibles
Ce sont des systèmes capables de guider un missile vers sont objectif à partir d’une analyse des signaux et images provenant de différents capteurs. Ces systèmes reposent essentiellement sur la mise en œuvre de techniques statistiques. Ils commencent généralement par distinguer dans les images des « objets » dont la surface correspond approximativement à celle d’une cible. Un certain nombre de paramètres sont alors calculés sur ces objets , pour être comparés à ceux caractérisant une cible idéale ( ou plusieurs), préalablement enregistrés. On calcule ensuite pour chaque objet détecté une fonction de « proximité » qui mesure l’écart entre ses propres caractéristiques et celles de la cible idéale. La distance calculée est interprétée comme une mesure de la probabilité d’appartenance de chaque objet à la classe cible. Les objets pour lesquels la probabilité d’appartenance dépasse un certain seuil préétabli sont classés dans la catégorie cible alors que les autres sont éliminés. Cette démarche est purement statistique et présente des inconvénients. En effet, elle suppose certaines hypothèses simplificatrices concernant l’homogénéité de la répartition de l’intensité du signal sur la surface de la cible et elle sensible au bruit du signal provenant des capteurs. D’où, pour remédier à ces inconvénients, l’Intelligence Artificielle propose les principes de déduction contextuelle c’est à dire ils confortent ou infirment l’hypothèse d’appartenance d’un objet détecté à une certaine catégorie , à l’aide d’arguments tirés de l’analyse de son contexte. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
b)
149
Les véhicules sans pilote (véhicules autonomes)
L‘évolution technologique actuelle a permis aux champs de bataille de l’an 2000 d’être peuplé d’une foule d’engins de toutes sortes faisant largement appel à l’électronique. L’IAD a permis ainsi de réaliser des véhicules autonomes qui dans un environnement hostile (armes chimiques ou retombées radioactives) sont capables d’évaluer des situations avec précision et d’atteindre les objectifs tactiques d’une mission. Tout cela suite à l’avènement des systèmes experts. L’objectif visé dans la conception des véhicules sans pilotes, c’est de parvenir à éliminer toute présence humaine à bord des appareils. Comme véhicules sans pilotes, nous pouvons parler de véhicules terrestres autonomes, des sous – marins (véhicules robotisés en utilisant les algorithmes de vision : robots sous – marins), véhicules aériens autonomes (systèmes autonomes aéroportés). Ces véhicules, qu’ils soient terrestres, marins ou aériens reposent sur la mise en œuvre de plusieurs systèmes experts. Et ces systèmes doivent communiquer les uns avec les autres tout en étant asservis à une unité centrale de commandes. Une telle réalisation implique la maîtrise de plusieurs domaines de l’Intelligence Artificielle. Un véhicule autonome doit avoir une bonne vision afin de pouvoir analyser, identifier et interpréter son environnement local ; il doit être capable de classifier des objets et des régions de l’espace, de détecter les mouvements, de faire une analyse contextuelle de la scène et d’évaluer par exemple la distance qui le sépare des cibles. Il devra ensuite avoir des capacités de planification c’est à dire capables d’élaborer à partir de cartes numériques du terrain des itinéraires fiables, maximisant le nombre d’objectifs atteints tout en minimisant le nombre de véhicules perdus ou endommagés. La prise en compte et la fusion d’informations provenant de multiples sources, notamment de capteurs variés, est un autre thème de recherche fortement sollicité pour le développement de véhicules sans pilotes. Les capacités de raisonnement de ces systèmes experts permettent de régler des problèmes tels que l’interprétation des objectifs de la mission ou la prise de décisions en présence d’informations insuffisantes provenant de plusieurs sources. c) Les Drones
Un drone est un aéronef capable de voler et d’effectuer une mission sans présence humaine à bord. C’est la raison pour laquelle on les appelle UAV ( Uninhabited ou Unmanned) Aerial Vehicule. Le mot « drones » est d’origine anglaise et signifie « bourdon », ou « bourdonnement ». Il est communément employé en français en référence au bruit que font certains d’entre eux en volant. d) Les hélicoptères autonomes
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
150
L’objectif de la mise au point de ces engins, c’est d’éliminer le pilote pour réduire non seulement le poids, mais aussi le volume de l’appareil. Ce gain de l’espace et de poids rend l’appareil plus rapide et plus maniable, et en fait une cible plus difficile à atteindre. Le système de contrôle de cet hélicoptère comprend trois unités correspondant aux fonctions de vision, de planification et de commande. L’unité de vision permet d’établir une classification des objets et des surfaces par une analyse à la fois locale et globale. Au niveau local, les images fournies par les capteurs sont analysées de façon à déterminer des caractéristiques telles que la structure, la texture et la distance des objets étudiés. Au niveau global, une carte numérique du terrain conservée en mémoire, permet par comparaison avec une image de la région survolée de déterminer la position de l’hélicoptère et facilite l’identification des objets et des surfaces par la mise en correspondance d’informations accompagnant la carte avec les résultats de l’analyse locale. D’autre part, l’unité de planification a pour rôle de combiner les informations recueillies sur le terrain avec des données de référence embarquées afin d’évaluer la situation tactique du moment, d’analyser cette situation en fonction de la mission à accomplir et d’élaborer un plan d’action pour réaliser cette mission. Elle produira des plans d’exécution de sous objectifs qui seront confiés à l’unité de commandes. Enfin, l’unité de commande permet d’identifier et de résoudre les conflits qui peuvent apparaître entre les prédictions et la réalité dans l’exécution des plans et le suivi des itinéraires. Les conflits sont souvent les obstacles inattendus, les contraintes concernant l’appareil, des dangers permanents liés à un certain itinéraire ou d’informations contradictoires provenant de différents capteurs. Un radar constitue un danger qui peut être détecté suite aux systèmes embarqués de l’hélicoptère, l’unité de planification produit alors un plan d’action à risque de détection minimum consistant à dissimuler l’appareil derrière la plus proche rangée d’arbres. e) Les Systèmes Experts copilotes
-
Ce sont des systèmes experts utilisés comme assistants d’un pilote humain, notamment pour lui présenter une information synthétique et lui prodiguer des conseils. On les appelle aussi copilotes informatiques. Ainsi, le copilote informatique est vu comme un ensemble de systèmes experts communiquant avec le pilote humain notamment au moyen d’un module d’interfaces en langue naturelle. Les fonctions du système se répartissent en deux niveaux : Au niveau inférieur : le copilote accomplit un certain nombre de tâches de routine sans rapport avec le combat telles que la vérification du bon fonctionnement de l’aéronef, la réception des communications, la navigation et la génération d’itinéraires. Au niveau supérieur : le copilote accomplit des tâches d’exécution difficiles pour le pilote humain telles que la planification d’itinéraires en temps réel, la reconnaissance des cibles, l’analyse des dangers et le diagnostic rapide des pannes de matériel. Le copilote n’est donc pas destiné à supplanter l’opérateur humain, mais plutôt à jouer un rôle complémentaire. Pour accomplir correctement ces tâches complexes, le système doit disposer tout comme un expert, d’une masse de connaissances qui le guideront au moment de la prise de décisions.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
151
La base de connaissances du copilote informatique doit comporter donc un certain nombre considérable d’informations lui permettant d’intervenir dans le diagnostic des pannes, la navigation et la tactique : - Les connaissances nécessaires au diagnostic sont sous forme d’informations détaillées sut la structure de l’appareil, la durée de vie des composants ainsi que sur les procédures d’essai de diagnostic. - Les connaissances de navigation portent quant à elles sur les techniques d’assistance à la navigation, la reconnaissance des repères, la planification d’itinéraires, ainsi que sur les procédures permettant d’éviter les obstacles , de suivre un parcours et de faire une analyse générale du terrain. - Les connaissances tactiques dépendent essentiellement de la mission et regroupent toutes les informations relatives à la mission, aux aéronefs et aux moyens défensifs de l’ennemi, ainsi qu’aux diverses tactiques et stratégies possibles. f) Le robots sentinelles : Ce sont des robots capables de surveiller des secteurs délimités
( comme des agents de renseignements). g) Les robots sacrifiables : Ce sont des robots capables de mener une opération de reconnaissance dans une ville ou une installation abandonnée. Ils peuvent prémunir une troupe de combat contre le feu d’un tireur embusqué. Nous pouvons encore parler de pilotage de navires, de la planification des missions spatiales, tec.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
152
CHAPITRE VIII. Les langages de l’Intelligence Artificielle
Les langages de programmation traditionnels sont dits impératifs ou procéduraux. Ils peuvent traduire des opérations telles que « lire », « écrire », « additionner », « transférer », « compare », etc. Ce sont des instructions correspondant à des séquences de langage machine. En IA, le problème se présente tout autrement, puisqu’il s’agit là de représenter des connaissances et de simuler des raisonnements. Pour résoudre ces problèmes particuliers, il faut des outils et langages particuliers. Les objectifs de ces outils sont les suivants : •
Résoudre les problèmes concrets rencontrés par les entreprises,
•
S’adapter au problème à résoudre, grâce à la définition de formalismes de représentation des connaissances, et faciliter l’acquisition et la validation des connaissances,
•
Améliorer la communication entre l’utilisateur et le système, grâce à la définition d’interfaces homme-machines.
Il n’y a pas à proprement parler de langage d’IA. Même si l’on parle de langages d’IA, ceux-ci peuvent aussi être employés parfois dans des programmes classiques ; d’autre part, les langages de programmation classiques, comme Basic, C, Pascal…, peuvent également être utilisés pour développer des applications d’IA. Mais, il existe certains langages, comme Lisp, Prolog ou les langages orientés objets, qui permettent d’exprimer plus directement le mode d’expression de l’IA, c'est-à-dire la déclarativité, le raisonnement logique et les connaissances. En particulier, ils permettent de « prototyper » assez rapidement une application, qui pourra, ensuite, être traduite dans un langage classique pour accélérer l’exécution du programme et son intégration avec d’autres applications. Lisp, « langage naturelle » de l’IA, est né au début des années soixante. Il a été conçu par John McCarthy (Massachusetts Institute of Technology) pour le traitement des données et la résolution de problèmes, il a longtemps été considéré comme le langage le mieux adapté au traitement d’expressions symboliques. Son fondement est la structure de données, se présentant sous formes de listes, d’où le nom du langage provenant de l’expression List Processing . Une liste est une sorte de tableau de longueur variable, de la forme (a b c …) ; a, b, c, etc. peuvent être soit d’autres listes soit des éléments appelés atomes ; un atome est une suite de caractères alphabétiques ou numériques. Les atomes peuvent être soumis à des fonctions. Par exemple, si PLUS désigne la fonction d’addition, cette opération s’écrit : (PLUS a b), ce qui est équivalent à a+b. On voit bien que cette manière d’écrire est relativement complexe pour les opérations élémentaires, auxquelles convient mieux un langage classique comme Basic, C ou Pascal. En revanche, si les atomes représentent des expressions oh des propositions, la fonction peut être « vrai » ou « faux », ou encore « condition », etc. Il Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
153
existe ainsi des milliers de fonctions Lisp, qu’il est nécessaire de connaître pour pouvoir programmer dans ce langage. Prolog, de Programming in Logic , est, comme son nom l’indique, un langage de programmation fondé sur la logique. Son origine remonte aux travaux sur la démonstration de théorèmes, avec en particulier le principe de résolution d’A. Robinson (1965). Les premières implémentations de ce langage ont été réalisées par Alain Colmerauer et son équipe de l’Université de Marseille en 1970, à partir de travaux sur le traitement du langage naturel. Un programme Prolog admet une double interprétation : procédurale et déclarative. Selon l’interprétation déclarative, la situation est décrite par une suite de règles et de faits (le modèle sous-jacent) est celui de la logique des prédicats) et le problème à résoudre est spécifié sous forme d’un but qui est donné au mécanisme de résolution de l’interpréteur. Celui-ci va réduire le but en sous-buts jusqu’à la solution. Par rapport aux autres langages classiques de programmation, Prolog offre plusieurs avantages :
C’est un langage d’expression et de résolution de problèmes : en tant que langage déclaratif, il utilise un mécanisme de résolution automatique qui prend en charge la recherche de la solution ;
Fondé sur une théorie formelle (logique du premier ordre), il est proche du langage naturel ;
Il est non déterministe, dans la mesure où il fournit toutes les solutions sans avoir à spécifier l’ordre et la séquence des instructions pour y parvenir ;
Particulièrement orienté vers le traitement symbolique, il peut aussi faire du traitement numérique ;
Il permet de définir d’autres formalismes de représentation, tout en bénéficiant des moyens puissants de l’interpréteur, comme l’unification, l’exploration arborescente et le retour arrière.
Prolog est ainsi un langage particulièrement puissant et général. Il s’applique notamment à la spécification et au prototypage d’applications (les premières phases du développement de logiciel). Il peut aussi être vu comme un générateur de systèmes experts.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
154
VIII.1. PROGRAMMATION LOGIQUE (PROLOG) VIII.1.1. Définition de la programmation logique
La programmation logique est dite déclarative. En effet, ici on ne s’occupe pas de la manière d’obtenir le résultat ; par contre, le programmeur doit faire la description du problème à résoudre en lisant les objets concernés, les propriétés et les relations qu’ils vérifient. Ensuite, le mécanisme de résolution (pris entièrement en charge par le langage) est général et universel. Tout d’abord insistons sur le fait que PROLOG est un langage de programmation à part entière, tout comme le C, Java, Caml, Scheme… cependant, il se distingue de ces derniers par son mode de programmation. Il s’agit en effet d’un langage déclaratif, de haut niveau, interactif et particulièrement performant pour résoudre tous les problèmes ayant une relation avec la logique : systèmes experts, langage naturel, aide à la décision, représentation de connaissances… PROLOG est étonnamment puissant puisqu’il suffit bien souvent de très peu de lignes de code pour mettre en place des programmes intéressants. Il est capable à partir de quelques faits et règles, décrits d’une façon très mathématique, d’établir une stratégie de réflexion pour répondre aux requêtes de l’utilisateur. VIII.1.2. Eléments fondamentaux du Prolog : VIII.1.2.1. Faits
Les faits sont des affirmations qui décrivent des relations ou des propriétés. -Exemples :
masculin (ben). feminin (hermine). pere (andre, ben). % andre est le père de ben mere (pascaline, ben). % pascaline est la mère de ben -La forme générale d’un fait est :
Prédicat (argument1, argument2,…). Un prédicat est un symbole qui traduit une relation. L’arité est le nombre de ses arguments. On identifie un prédicat par son nom et son arité : Prédicat /arité, par exemple : mere/2.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
155
De manière générale : •
Un prédicat unaire donne une propriété de l’argument : Fifi est un chien. chien (Fifi). Le soleil est chaud. chaud (soleil). Le ciel est bleu.
• •
bleu (ciel).
Un prédicat binaire exprime une relation entre 2 objets : Hermine est plus grand que Tanya. plusGrand (Hermine, Tanya). Un prédicat d’arité supérieur à 2 établit un lien entre ses arguments :
Compositeur (beethoven, 1770, 1827). VIII.1.2.2. Questions ou requêtes
En mode interactif, on peut poser des questions sur les faits :
?- masculin (ben). Yes
?-masculin (martin). No (Pas dans la base de connaissance) On peut aussi utiliser des variables. Elles peuvent s’identifier à toutes les autres valeurs : aux constantes, aux termes composés, aux variables elles-mêmes. Les constantes commencent par une minuscule, les variables commencent par une majuscule.
?- masculin (X). X= ben ; X= martin ; No Le caractère « ; » permet de demander la solution suivante. Le caractère « ↵ » arrête la recherche des solutions. VIII.1.2.3. Types en Prolog
En prolog, tout est un terme : •
Les constantes ou les termes atomiques : Les atomes sont des chaînes alphanumériques qui commencent par une minuscule : sam, dan, pas0. On peut transformer une chaîne contenant des caractères spéciaux (point, espace, etc.) dans un atome en l’entourant de caractères « ′ » ou « ′′ ». Ainsi ′vin de Lavaux ′, ′ lavaux′ ont des atomes.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
•
156
Les nombres : 19, -25, -3.14, 23E-5 Les variables commencent par une majuscule ou le signe _. _ tout seul est une variable anonyme et peut désigner n’importe quelle variable. Ainsi X, XYZ, Xyz, _x_3_ sont des variables. Le système renomme en interne ses variables et utilise la convention _nombre, comme _127 ou _G127.
VIII.1.2.4. Quelques définitions
Une formule est une application d’un prédicat à ses arguments. L’unification est le procédé par lequel on essaie de rendre 2 formules identiques en donnant des valeurs aux variables qu’elles contiennent. Une unification peut réussir ou échouer : pere (X, X) et père ( jean, paul) ne peuvent pas s’unifiées. Lors d’une question, si elle réussit, les variables s’unifient. Exemple: ?- père (X, Y) X= paul Y= jean Yes Le Prolog unifie le terme de la question au terme contenu dans la base de données. Pour ceci, il réalise la substitution des variables X et Y par des termes, ici des constantes. On note cette substitution par : {X= paul, Y= jean} On dit qu’un terme A est une instance de B s’il existe une substitution de A à B : • Masculin (jean) et masculin (luc) sont des instances de masculin (X) •
{X= jean} ou {X = luc} sont les substitutions correspondantes.
En Prolog, une variable ne représente pas une location contenant une valeur modifiable. Une variable instanciée ne peut pas changer de valeur.
VIII.1.2.5. Variables partagées
On utilise une même variable pour contraindre deux arguments à avoir la même valeur. Exemple Pour chercher un père qui a le même nom que son fils (exemple peu idiot) : ?- père (X, X). Les questions peuvent être des conjonctions et on peut partager des variables entre les buts. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
157
Exemple Pour chercher tous les fils d’un père, on partage la variable X entre père et masculin : ?- père (X, Y), masculin (Y). VIII.1.2.6. Règles
Les règles permettent d’exprimer des conjonctions de buts. Leur forme générale est :
: - C1, C2, C3,…, Cn. La tête de la règle est vraie si chacun des éléments du corps de la règle C1,…. , Cn est vrai. On appelle ce type de règles des clauses de Horn. Les éléments du corps sont aussi appelés des sous-buts, car pour démontrer la tête de la règle, il faut démonter tous ses sous-buts. Exemples « Si X est un homme alors X boit de la bière » boit (X, biere) :- homme (X) « Il n’y a pas de fumée sans feu. »
Fumée :- feu
« Jean étranglera le prof s’il échoue ce cours. »
etrangle (jean, X) :echoue (jean, ‘langages et paradigmes de programmation’), enseigne (X,’ Langages et paradigmes de programmation’). Arbre généalogique :
fils (A, B) :- père (B, A), masculin (A). fils (A, B) :- mère (B, A) masculin (A). parent (X, Y) :- père (X, Y). parent (X, Y) :- mère (X, Y). grandParent (X, Y) :- parent (X, Z), parent (Z, Y) • Les faits sont une forme particulière de règles qui sont toujours vraies. Un fait est une clause dont la queue est
vide. Exemples : fait. Est en effet équivalent à fait :- true.
boit (X, biere). Signifie que tout le monde boit de la bière ou « Pour tout X, X boit de la biere. » • On peut aussi utiliser une variable anonyme :
enfant (Y) :- parent (X, Y).
Peut s’écrire
enfant (Y) :- parent ( _,Y). • Une requête est une clause sans tête
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
158
?- < corps>.
Signifiant : Détermine si est vrai. • Les règles peuvent aussi être récursives. Exemple : Définissons un nouveau prédicat déterminant l’ancêtre X de Y par récursivité : 1. Condition de terminaison de la récursivité si c’est un parent direct.
ancetre (X, Y) :- parent (X, Y).
2. Sinon X est ancêtre de Y si et seulement s’il existe Z, tel que X parent de Z et Z parent de Y.
ancetre (X, Y) :- parent (X, Z), ancetre (Z, Y) VIII.1.2.7. Exécution des requêtes
Lors de l’exécution d’une requête, Prolog examine les règles ou les faits correspondants dans l’ordre de leur écriture dans le programme : de haut en bas. Il utilise la première règle (ou le premier fait) du prédicat pour répondre. Si elle échoue, alors il passe à la règle suivante et ainsi de suite jusqu’à épuiser toutes les règles (ou tous les faits) définies pour ce prédicat. Lorsqu’une règle est récursive, l’interprète Prolog rappelle le prédicat du même nom en examinant les règles (ou les faits) de ce prédicat dans le même ordre. Dans le corps d’une règle, la virgule «, » est le symbole représentant un ET logique : la conjonction de buts. Le symbole « ; » représente le OU logique, la disjonction de buts :
A : - B ; C. est équivalent à
A :- B. A :- C Un prédicat correspond donc à un ensemble de règles ou de faits de même nom et de même arité : les clauses du prédicat. Beaucoup de Prolog demandent que toutes les règles et tous les faits d’un même prédicat soient contigus et groupés ensemble dans le fichier du programme. On note un prédicat par son nom et son arité, par exemple fils/2, parent/2, grandParent/2. VIII.1.2.8. Les opérateurs en Prolog
Chaque Prolog dispose d’opérateurs binaires infixés (X+Y), unaire préfixés (-X) et unaire suffixes (X^2). Le langage considère les opérateurs comme des foncteurs et transforme les expressions en termes. Par exemple l’expression suivante 2*3 + 4*2 est un terme identique à +(* (2,3), *(4,2))).
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
159
VIII.1.2.9. Les règles de précédence et d’associativité
Les opérateurs sont définis par leurs priorités 0 à 1200 (0 étant la plus haute) et leurs associativités. L’associativité détermine le parenthésage de A op B op C : • Si elle est à gauche, on a (A op B) op C • Si elle est à droite, on a A op (B op C) • Sinon elle est non associative : les parenthèses sont obligatoires, et la syntaxe A op B op C est interdite. Un type d’associativité est associé à chaque opérateur : infixé préfixé suffixé
non associatif
droite
Gauche
xfx fx xf
xfy fy
Yfx Yf
Certains opérateurs sont prédéfinis en Prolog standard comme le montrent le tableau suivant : Priorité 1200 1100 1000 700 700 700 500 400 200 200
Associativité xfx xfy xfy xfx xfx xfx yfx yfx xfy fy
Opérateurs :; , = \= = = \= = is = : = =\= < <= > >= + * / (flottant) // (entier) &^ -
On peut définir de nouveaux opérateurs par : op (Précédence, Associativité, NomOpérateur).
Exemple : op (1000, xfx, aime) définit comme un opérateur infixé non associatif Par la suite, on peut écrire l’expression aime(François, Henriette).
François aime Henriette au lieu de
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
160
VIII.1.2.10. Les opérateurs logiques d’unification
L’unification est définie de la manière suivante :
= dans X = Y signifie « X s’unifie avec Y » Par exemple ?- a(b,X,c) = a(b,Y,c). La réponse sera X = Y ?- p(b, [A, [B,C]],25) = p(, [B, [D, E]], 25). La réponse sera A = B = D, C = E = A. \= dans X \= Y signifie « X ne s’unifie pas avec Y » Par exemple ?- a(b,X,c) \= a(b,Y,c). La réponse sera no ?- [A, [B,C]] \= [A,B,C]. La réponse sera Yes.
VIII.1.2.11. Les opérateurs arithmétiques
En Prolog, évaluer un terme représentant une expression arithmétique revient à appliquer les opérateurs. Ceci se fait par le prédicat prédéfini is / 2. Exemples ?- X = 1+1+1. X = 1+1+1. % ( ou X = +(+(1,1), 1) ?- X = 1+1+1, Y is X. X = 1+1+1, Y = 3. ?- X is 1+1+a. % erreur car a n’est pas un nombre ?- X is 1+1+Z. % erreur car Z n’est pas instancié à un nombre ?- 5 is (3*7+1) // 4. % (égal la division entière de 22 et 4) Yes. ?- Z = 2, X is 1+1+Z. Z=2 X=4 12. Les opérateurs numériques et littéraux Dans l’expression ?- 1+2 < 3+4. Il y a évaluation des 2 additions (celle de gauche puis celle de droite) avant d’évaluer la comparaison. Il est important de distinguer les opérateurs numériques des opérateurs littéraux, ainsi que d’unification.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
161
Numérique Opérateur d’égalité Opérateur d’inégalité Plus petit Plus petit ou égal
=\=
Littérale (terme à terme) == \= =
< <=
@< @=<
=:=
Exemples ?- 1+2 = : = 2+1. Yes ?- 1+2 = 2+1. No ?- 1+2 = 1+2. Yes ?- 1+X = 1+2. (unification) X=2 ?- 1+X = : = 1+2. % X n’est pas un nombre ?- 1+2 = = 1+2. Yes ?- 1+2 = = 2+1. No ?- 1+X = = 1+2. % « est déjà instancié ? » No ?- 1+a = = 1+a. Yes ?- a(b,X,c) = = a(b,Y,c). No ?- a(b,X,c) == a(b,X,c). Yes ?- A\= = hello. % « n’est pas déjà instancié » Yes ?- a(b,X,c) \== a(b,Y,c). Yes VIII.1.2.13. Les listes et prédicats de manipulations de listes VIII.1.2.13.1. Motivation et définition d’une liste
Si on demandait de représenter le contenu d’un congélateur. Chaque maison représenterait de sa manière. Par exemple : congélateur(viande, poisson, lait, eau, boisson) Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
162
congélateur( lait, eau, boisson) congélateur(viande, beurre, fromage, eau) Nous obtenons ainsi trois faits différents représentés sous la forme de structures. Pour représenter un nombre variable d’arguments avec la même structure, on pourrait utiliser un fait d’arité : congélateur / 2. congélateur(viande, congélateur(poisson, congélateur(lait, congélateur(eau, congélateur(boisson, nil()))))) congélateur( lait, congélateur(eau, congélateur(boisson, nil()))) congélateur(viande, congélateur (beurre, congélateur (fromage, congélateur (eau, nil())))) Cette notation est trop encombrante. Le plus simple serait d’introduire une liste. Nos exemples deviennent alors : .(viande, .(poisson, .(lait, .(eau, .(boisson, nil())))) .(lait, .(eau, .(boisson, nil()))) .(viande, .(beurre, .(fromage, .(eau, nil())))) Le foncteur « . » est le foncteur de liste. Par exemple l’intervalle [a,b] est équivalent à la liste .(a, .(b, [])). Exemples
.(a, .(b, .(c, [])) = [a, b, c] .(1, .(2, .(3, [])) = [1, 2, 3] [a] [a, X, pere(X,jean)] [[a,b], [[[pere(X, jean)]]]] [] est la liste vide. L’opérateur « | » est un constructeur de liste et peut servir pour extraire la tête de la liste. Exemples
.(a, .(b, .(c, [] )) = [a | [b, c] ]] = [a, b | [c]] = [a, b, c | []] = [a, b, c] .(1, .(2, .(3, .)) = [1| [2 | [3]]] = [1, 2, 3] ?- [a, b] = [X | Y] X = a, Y = [b] ?- [a] = [X | Y] X = a, Y = [] Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
163
?- [a, [b]] = [X | Y] X = a, Y = [[b]] ?- [a, b, c, d] = [X, Y | Z] X = a, Y = b, Z = [c, d] ?- [a, b] = [X | Y] X = a, Y = [b] ?- [[a, b, c], d, e] = [X | Y] X = [a, b, c], Y = [d, e] VIII.1.2.13.2. Quelques prédicats de manipulation de listes
Certains prédicats de manipulation de listes sont prédéfinis suivant les variantes de prolog 1. Prédicat member / 2 : l’appartenance d’un élément à une liste. Le prédicat member(Element, List) réussit si son deuxième argument est une liste dont le premier argument est un élément. Ce prédicat peut être écrit de plusieurs manières : - member(X, [Tete | Queue]) :- X = Tete - member(X, [Tete | Queue]) :- X \= Tete, member(X, Queue). Puisque Prolog utilise des gabarits pour identifier les termes d’une expression et que les règles sont exécutées dans l’ordre qu’elles sont écrites, on peut simplifier la définition du prédicat : Member(Tete, [Tete | _]). Member(Tete, [_| Queue]) :- member(Tete, Queue). Ou autrement member(X, [ X | _ ]). member(X, [ _ | Xlist]) :- member(X, Xlist). Exemples ?- member(a, [b, c, a]). Yes ?- member(a, [c, d]). Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
164
No ?- member(X, [a, b, c]). X = a; X = b; X = c; No Exécution de member(X, [a, b, c]).
Trouve rune unification: Unifie member(X, [a, b, c]) avec member (Tete, [Tete| _]) Instancie X à a Une règle sans corps réussit, affichage de X = a On presse « ; » pour demander la solution suivante. Trouve une seconde unification Unifie member(X, [a, b, c]) avec member (Tete, [_| Queue]) Instancie X à Tete, instancie Queue à [a, b] Replace la tête de la règle par son corps et essaie de satisfaire le but member(X, [b,c]) Trouver une unification Unifie member(X, [b, c]) avec member (Tete, [Tete, | _]) Instancie X à b Une règle sans corps réussit, affichage de X = b etc. 2. Prédicat append / 3
: ce prédicat permet de concaténer deux listes.
Le prédicat append (List1, List2, List3) réussit si List3 est la concaténation de List1 et List2. Append est défini par les deux clauses : Syntaxe
append ([], L, L). append ([X | XS], YS, [X | Liste]) :- append (XS, YS, Liste). Ou append([], Xlist, Xlist). Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
165
append([X | Xlist], Ylist, [X | Zlist]) :- append(Xlist, Ylist, Zlist). Une requête du type ?- append([a,b], [c,d, e], List). donnera la réponse List = [a, b, c, d, e]. Exemples
?- append ([a, b, c], [d, e, f], [a, b, c, d, e, f]). Yes ?- append ([a, b], [c, d], [e, f]). No ?- append ([a, b], [c, d], L]). L = [a, b, c, d] ?- append (L, [c, d], [a, b, c ,d]). L = [a, b] ?- (L1, L2, [a, b, c]). L1 = [], L2 = [a, b, c] ; L1 = [a], L2 = [b,c]; etc. avec toutes les combinaisons. Si nous souhaitons afficher toutes les combinaisons possibles sans faire intervenir l’usager, nous écrirons : combinaisonListe(Liste) :append(L1, L2, Liste), write(L1), write(L2), n1, fail.
% Le prédicat fail échoue toujours
Exemple Append(L1, L2, [a, b]). La réponse sera [] [a, b] [a] [b] [a, b] [] No N.B. member peut être redéfini par la clause : Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
166
member(X, Xlist) :- append( _ , [X | _ ], Xlist). 3. Prédicat length / 2 : determine la longueur d’une liste: Le prédicat length(List, N) réussit si le nombre entier naturel N est le nombre d’éléments de List. Length est défini par les deux clauses : length([],0). length([X | Xlist], s(N)) :- length(Xlist, N). où s est la fonction successor. Ou length([], 0). length([Tete | Queue], N) :- length (Queue, N1), N is N1+1. Une requête du type ?-length([a, b, c], N). donnera comme réponse N = 3. Exemples
?- length([a, b, c], 3). Yes ?- length([a, [a, b], c], N). N=3 4. Prédicat reverse / 2 : inverse l’ordre d’une liste. Deux solutions sont possibles. Le prédicat reverse(List1, List2) réussit si List2 est la version inversée de List1. Reverse est défini par les clauses : Première solution (coûteuse): reverse ([], []). reverse ([X | XS], ZS) :- reverse (XS, YS), append (YS, [X], ZS). Ou reverse([], []). reverse([X | Xlist], Ylist) :- reverse(Xlist, Zlist), append(Zlist, [X], Ylist). Deuxième solution (par une liste intermédiaire): on passe d’une arité 2 à une arité 3 : reverse(X, Y) :- reverse (X, [], Y). Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
167
reverse([X | XS], Accu, ZS) :- reverse(XS, [X | Accu], ZS). reverse([], ZS, ZS). Une requête du type ?- reverse([a, b, c, d], List). donnera la réponse List = [d, c, b, a]. 5. Le prédicat prefix(List1, List2) réussit si les éléments de List1 sont en tête de List2 Prefix est défini par la clause : prefix(Xlist, Ylist) :- append(Xlist, _ , Ylist). Une requête du type ?- prefix(Xlist, [a, b, c]). donnera les réponses Xlist = [], Xlist = [a], Xlist = [a, b] et X = [a, b, c]. 6. Le prédicat suffix(List1, List2) réussit les éléments de List1 sont en queue de List2 Suffix est défini par la clause : suffix(Xlist, Ylist) :- append( _ , Xlist, Ylist). Une requête du type ?- suffix([c, d], [a, b, c, d]). donnera la réponse yes. 7. Le prédicat last(Element, List) réussit si Element est le dernier élément de List. Last est défini par la clause : last(X, Xlist) :- append( _ , [X], Xlist). Une requête du type ?- last(X, [a, b, c, d]). donnera la réponse X = d. VIII.1.2.14. Coupure en Prolog
Le prédicat prédéfini « ! » appelé « le cut » ou la coupure en français, permet d’empêcher le retour en arrière. La règle p(X) :- a(X), !, b(X).
Satisfait d’abord le premier sous-but a(X), puis vérifie ensuite le second sous-but b(X). Si le second sous – but échoue, il n’y a pas de retour en arrière à a(X). La coupure permet d’indiquer à Prolog qu’on ne désire pas conserver les points de choix en attente. Le but recherché est d’améliorer l’efficacité et d’exprimer le déterminisme Quand une coupure est franchie : • ! coupe toutes les clauses en dessous de lui, • ! coupe tous les buts à sa gauche, • Par contre, il est possible de retourner en arrière sur les sous-buts à droite de la coupure. Exemples
factorielle (0,1) :- !. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
168
factorielle (1,1) :- !. factorielle (N, Resultat) ;- N1 is N-1, factorielle (N1, ResultatPrecedent), Resultat is ResultatPrecedent*N. estMembre (X, [X | _]) :- !. estMembre (X, [_| Queue]) :- estMembre (X, Queue). Règles pratiques d’utilisation
La fonction minimum min(X,Y, X) :- X < Y, !. min (X, Y, Y). Ce prédicat conduit correctement au calcul du minimum pour la première solution. La coupure est nécessaire pour éviter de produire une seconde solution au cours d’un retour en arrière. Mais, si nous avons la règle : P :- C 1 , …, C i −1 , min (2, 3, Z), C i , …, C n . A la première exécution, Z = 2. Si on doit revenir en arrière à cause d’un échec des buts C i , …, C n et si min / 3 ne comporte pas de coupure, on obtient Z = 3 car min / 3 aurait pu produire deux solutions. On repartirait alors avec cette valeur pour prouver les buts C i , …, C n Autre coupure
ifthenelse (P, Q, R) :- P, !, Q. ifthenelse (P, Q, R) :- R. Coupure dangeureuse
Tous les enfants ont 2 parents à l’exception de justin. parents (julien, 2). parents (justin, 0) :- !. parents (X, 2). ?- parents (justin, N). N=0 ?- parents (justin, 2). Yes
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
169
Pour corriger le problème, il faudrait écrire : parents (julien, 2). parents (justin, N) :- !, N = 0. parents (X, 2). VIII.1.2.15. La Négation dans Prolog
Un programme logique exprime ce qui est vrai. La négation, c’est ce que l’on ne peut pas prouver. Le prédicat not se définit par : not (P) :- P, ! , fail. not (P) :- true. Exemples et precautions
Il vaut mieux que les variables soient instanciées avant d’utiliser une negation: ?- not (member (X, [a, b]). No Le programme identifie X à une des variables, réussit et le not le fait échouer. Dans une règle, il faut veiller à l’instanciation des variables. Exemple
marie (françois). etudiant (aubin). etudiantCelibataire (X) :- not (marie(X)), etudiant (X). La requête suivante échoue : ?- etudiantCelibataire(X). No Car X s’associe à françois puis le not fait échouer le sous-but. Alors que : ?- etudiantCelibataire (aubin). Yes réussit car X = aubin donc not (marie(aubin)) est vrai. Pour que la règle produise les résultats attendus, il faut inverser les sous – buts : etudiantCelibataire(X) :etudiant (X), Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
170
not (marié(X)). Ainsi X sera instancié avant d’être soumis à la négation.
VIII.1.3. Les conventions de SWI-PROLOG (un interpréteur PROLOG) •
Tous les faits et règles doivent se terminer par un «. ».
•
Les variables utilisées dans les faits ou règles commencent toujours par une majuscule « _ ».
•
A l’inverse, tout le reste commence par une minuscule.
•
Il ne faut pas mettre d’espace entre le prédicat et la parenthèse ouvrante qui l’accompagne.
•
Les commentaires sont mis entre « /* » et « */ » ou commencent par « % » et se termine sur la même ligne.
Rem :
Mieux vaut faire commencer les variables classiques par des majuscules. En effet, cela permet de différencier sans ambiguïté dans le mode débogage des variables du programme, des variables internes générées dynamiquement par PROLOG qui commencent par « _ ». Rem :
ces conventions s’appliquent également aux faits par l’utilisateur dans l’interpréteur de commande de SWI-PROLOG©
VIII.1.4. Utilisations de PROLOG VIII.1.4.1. Création d’une base de données
Il est très facile d’utiliser PROLOG pour programmer une base de données et l’interroger. En effet, il suffit de déclarer en tant que faits toutes les données de la base. Rem : il existe en fait une extension de PROLOG appelée DATALOG qui est justement orientée base de données. Grâce aux règles, on peut obtenir des sous-tables ou établir des relations entre les tables. Rem : C’est ce qui fait la puissance d’un langage comme PROLOG ou DATALOG par rapport à SQL où toutes les données de base doivent être explicitement énoncées. Rem : Les bases de données sont un examen où le programme peut ne contenir que des faits sans aucune règle même si cela fait perdre une partie de l’intérêt de PROLOG.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
171
% < !>Attention : pas d’accent dans les programmes /******************Les faits********************/ /* Arguments du predicat ‘bio’ : bio(enfant, sexe, annee_naissace, annee_mort, pere, mere) */ bio(louis 13, h,1601,1643,henri4, marie_medicis). bio(elisabeth_France, f,1603,1644,henri4, marie_medicis). bio(marie_therese_Autriche, f,1638,1683,philippe4, elisabeth_France). bio(louis14, h,1638,1715,louis13, anne_autriche). bio(grand_dauphin, h,1661,1711,louis14, marie_therese_Autriche). bio(louis_bourbon, h,1682,1712,grand_dauphin, marie_anne_baviere). bio(philippe5, h,1683,1746,grand_dauphin, marie_anne_baviere). bio(louis15, h,1710,1774,louis_bourbon, marie_adelaide_savoie). bio(louis_dauphin, h,1729,1765,louis15, marie_leczcynska). bio(louis16, h,1754,1793,louis_dauphin, marie_josephe_saxe). bio(louis18, h,1755,1824,louis_dauphin, marie_josephe_saxe). bio(charles10, h,1757,1836,louis_dauphin, marie_josephe_saxe). bio(clodilde, f,1759,1802,louis_dauphin, marie_josephe_saxe). bio(louis17, h,1785,1795,louis16, marie_antoinette). bio(philipe1, h,1640,1701,louis13, anne_autriche). bio(philipe2, h,1674,1723, philipe1, charlotte_baviere). bio(louis_orleans, h,1703,1752, philipe, francoise_marie_bourbon). bio(louis_philippe, h,1725,1785,louis_orleans, augusta_marie_bade). Cebio(philipe_egalite, programme définit avec les faitsh,1747,1793, une table ‘bio’ dont les attributs sont le nom du fils, son sexe, louis_philipe, louis_henriette_boubon_conti). son année de naissance, de mort, leh,1773,1850, de son père philipe_egalite, et de sa mère. louisemarie_adelaide_boubon_penthievre). bio(louis_philipe2, /******************Les Grâce aux règles il définitregles********************/ également trois sous-tables ; ‘enfant’, ‘ptenfant’ et ‘descendant’ qui ont /*enfant (enfant, parent)*/ comme attributs : /*R1*/ enfant(NomEnfant, (X, Y) :-bio(X,_,_,_,Y,_). Nomparent) • Enfant /*R2*/ enfant (X, Y) :-bio(X,_,_,_ ,_, Y). /*ptenfant (petit-enfant, grand-parent)*/. (NomPetitEnfant, NomGrandParent) • Ptenfant /*R3*/ ptenfant(X,Y) :- enfant(X,Z), enfant(Z,Y). /*descendant (descendant, ancetre)*/ NomAncetre) (NomDescendant, • Descendant /*R4*/ descendant(X,Y) :-enfant(X,Z), descendant(Z ,Y).
VIII.1.4.2. Interrogation de la base de données
La base de données étant en place, nous allons l’interroger grâce à des requêtes PROLOG. Il est possible de l’interroger de nombreuses manières. En voici quelques exemples
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
172
1. Vérification de la base de données
Il est bien sûr possible de savoir si une donnée existe bien dans la base de données. Ex : Regardons si Louis XIII qui a vécu entre 1601 et 1643 est le fils de Henri IV et Marie de Médicis : ?-bio (louis13, h, 1601, 1643, henri4, marie_medicis) Yes
C’est bien le cas. Ex :
Regardons si Louis XVII qui a vécu entre 1785 et 1795 est le fils de Louis XVI et Marie de Médicis : ?-bio (louis17, h, 1785, 1795, louis16, marie_medicis) No
Ce n’est pas le cas car sa mère est Marie-Antoinette.
2. Recherche d’une liste simple ou sous table dans la base de données
On peut extraire de la table ‘bio’ une sous-table à un seul attribut. Cela correspond à l’opération : ∏x (бConditions (bio)) où • X est un (et un seul) attribut de la table ‘bio’ • Conditions est un ensemble de conjonctions et de disjonctions
Ex : quelles sont les femmes qui figurent comme enfant ? C'est-à-dire que contient ∏NomEnfant (бSexe=f (bio)) ?
?- bio (Qui,f,_,_,_,_). Qui=elasabeth_france ; Qui=marie_therese_autriche Qui= clotilde ; No Il y a donc trois filles dans la table.
Ex : Qui sont les enfants de Henri
IV ?
?- bio (Qui,_,_,_,henri4,_) Qui= louis13 ; Qui= elisabeth_france ; No Henri IV a eu 2 enfants. La sous-table retournée par PROLOG est complète dans le sens où les possibilités solution de la requête sont affichées autant de fois qu’elles répondent au problème.
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
173
3. Recherche d’une liste multiple dans la base
On peut aussi extraire de la table ‘bio’ une sous –table ayant d’un seul attribut. Cela peut correspondre à l’opération : ∏X1,X2,…, Xn (бConditions (bio)) où • •
X1, X2,…, Xn sont des attributs de la table ‘bio’ ���������� ��� �� �������� �� ������������ �� ��� ��� ������������
Ex : Qui sont les parents de Louis XIV ? ?- bio(louis14,_,_,_, Papa, Maman) Papa= louis13 Mama =anne_autriche ; No
Le père de Louis XIV est louis XIII et sa mère est Anne d’Autriche. Mais cela peut aussi correspondre à une jointure : ∏X1 (бConditions (bio)) ∏ X2,…, Xn (бConditions (bio)) Ex : qui sont les parents de Louis XIV ?
?- bio (louis14,_,_,_,Père,_) , bio(louis14,_,_,_,_,Mere) Pere=louis13 Mere=_G481; Pere=_G473 Mere=anne_autriche ; No En effet, on obtient une sous-table avec deux attributs contenant non pas une réponse mais deux _G481 et _G473 sont deux variables internes utilisées par SWI-PROLOG© ; si elles apparaissent dans le résultat cela signifie que le résultat est bon quelles que soient leurs valeurs. Ce résultat peut donc s’interpréter par : -
Si le père de Louis XIV, sa mère peut être n’importe qui. Si la mère de Louis XIV est Anne d’Autriche, son père peut être n’importe qui.
Ce qui est bien sûr incorrect. Par rapport à cette dernière remarque, il faut ajouter qu’il est quand même possible d’employer une disjonction dans la requête. Cependant, ce connecteur étant équivalent à l’opération de réunion ( ) dans l’algèbre relationnelle, il supprime un attribut à la sous-table résultat. Ex : Qui sont les parents de
Louis XIV ? ?- bio(louis14,_,_,_,Parent,_) ; bio(louis14,_,_,_,_,Parent). Parent =louis13 ; Parent =anne_autriche ; No On obtient ici une sous-table à un seul attribut avec deux données. De ce fait, on perd l’information sur le sexe des parents puisqu’ils sont tous les deux réunis sous le même attribut. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
174
4. Recherche dans un intervalle de valeurs
PROLOG peut gérer un intervalle de valeurs. Ex : Quels sont les personnages nés entre 1750 et 1800 ?
?- bio (Qui,_,N,_,_,_), 1750=
requête n’est pas traitée comme une formule complète mais elle est divisée en formules atomiques (les buts) reliées par des disjonctions et/ou des conjonctions et ces sous-formules sont traitées les unes après les autres dans l’ordre où elle se trouve sur la ligne (de gauche à droite). • PROLOG considère à priori toute variable numérique faisant parti des réels. Ex : Quelles sont les personnages nés entre 1750 et 1800 ?
?-1750=
nous venons de voir dans cet exemple un des rares cas où PROLOG effectue un contrôle. Sans cela, il cherchait tous les N (réels) ≤ 1750 avant de passer à la formule atomique suivante. Donc il ne terminerait jamais. Pour contourner ces deux difficultés (les règles sont découpées en formules atomiques et les variables numériques sont considérées comme des réels) dans le cas d’une recherche dans intervalle de valeurs, PROLOG introduit le mot clé between (debut, fin, X) où X est une variable considérée comme un entier et comprise entre ‘debut’ et ‘fin’. Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
175
Ex : Quels sont les personnages nés entre 1750 et 1800 ?
?- between (1750, 1800, N), bio (Qui, _, N, _, _, _). N=1754 Qui=louis16; N=1755; Qui=louis18; N=1757; Qui=charles10; N=1759; Qui=clotilde; N=1773; Qui=louis_philippe1; N=1785; Qui=louis17; No Cette fois PROLOG veut bien s’exécuter car il y a un nombre fini d’entiers compris entre 1750 et 1800. On retrouve bien les mêmes résultats qu’avec le premier exemple. PROLOG permet également de façon tout à fait naturelle de rechercher des solutions n’appartenant pas à un ensemble de valeurs. Ex : Quels sont les personnages qui ne sont pas nés entre 1750 et 1800
?- bio (Qui, _, N,_,_,_), (1750>N; N>1800) Qui=louis13; N=1601; Qui=elisabeth_France; N=1603; Qui=marie_therese_autriche; N=1638; Qui=louis14; N=1773; Qui=louis_philippe1; N=1638; Qui=grand_dauphin; N=1661; Qui=louis_bourbon; N=1682; Qui=phillipe5; N=1683; Qui=louis_philippe1; N=1638; Qui=louis15; N=1710; Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
176
Qui=louis_dauphin; N=1729; Qui= philippe1; N=1640; Qui=philippe2; N=1674; Qui=louis_orleans; N=1703; Qui=louis_philippe; N=1725; Qui=philippe_egalite; N=1747 No VIII.2. PROGRAMMATION FONCTIONNELLE (SCHEME) VIII.2.1. Expression
Schème est un dialecte de LISP (List Processing), Lisp est un langage de programmation fonctionnelle le plus connu. Toute instruction en Schème est une expression. Le prompt dépend de la configuration de Schème : ‘ :’, ou ‘’=>’’. Ici nous employons ‘’>’’. Une expression composée commence toujours par une parenthèse ouverte, Suivi d’une fonction, en suite des arguments et se termine par une parenthèse fermée. Les arguments sont séparés par des espaces (espace(s), tabulation, ligne). -Exemple : > (+ 30 20) 50 > Il doit y avoir au moins un espace pour séparer deux arguments consécutifs. L’identificateur + représente une fonction prédéfinie de Schème Les expressions construites avec les formes spéciales tels que : define, lambda, if, cond, let, set ! ont une syntaxe et un comportement spécifique. Les arguments d’une fonction peuvent être des expressions composées. -Exemple : > (+ (* 3 (+ (* 2 4) (+ 3 5) ) ) (+ (- 10 7) 6) ) Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
177
57 > (f (+ 3 5 4) (carre (+ 4 2) ) ) 70 Les fonctions f et carre doivent avoir été préalablement définies. Certaines fonctions peuvent avoir un nombre variable d’arguments, (Par exemple, +, --, *, /). VIII.2.2. Indentation des programmes
Il est aussi important de créer des programmes lisibles que des programmes qui fonctionnent correctement. Voir aussi ‘’reindenter tout’’ dans le menu de l’onglet ‘’Schème’’. -Exemple d’expression correctement indentée : (+ (* 3 (+ (* 2 4 ) (+ 3 5 ) )) (+ (- 10 7 ) 6) ) (+ (* 3 (+ (* 2 4 ) (+ 3 5 ) ) ) (+ (- 10 7 ) 6)) Laquelle se lit facilement ? -Exemple d’expression mal indentée : (+ (* 3 (+ (* 2 4) (+ 3 5 ) ) ) (+ (- 10 7) 6))
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
178
VIII.2.3. les variables
Une variable est un identificateur. On définit des variables avec la forme define. -Syntaxe : (define ) -Exemple : > (define size 2) > Remarque : une expression construite avec la forme spéciale define ne retourne aucune valeur. - Définir des variables > size 2 > (+ size 5) 7 > (define size (+ 4 6) ) > size 10 > (define size (+ size 7) ) > size 17 Seules les variables définies peuvent être évaluées. > xx Reference to undefined identifier: xx >
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
179
VIII.2.4. Affectation
On change la valeur d’une variable par la forme set ! -Syntaxe : (set ! ) -Exemple : > (set ! size 10) > size 10 La variable doit être définie. > (set ! xx 4) Set! : cannot set undefined identifier: xx, La forme set! peut produire des ‘’effets de bord’’. On peut écrire des programmes d’une grande complexité sans utiliser set !Par convention, les noms des fonctions qui modifient leurs arguments sont terminées par ‘’ !’’,Il est strictement interdit d’utiliser la forme set ! avant la section sur les données mutables que nous verrons à la fin de la session. VIII.2.5. Les fonctions
Les fonctions sont construites avec la forme spéciale lambda. -Syntaxe : (lambda (…) … ) Le résultat est une fonction à n arguments, Son utilisation retourne la valeur de l’expression .Les m-1 premières expressions sont évaluées mais leurs valeurs ne sont pas retournées. Elles sont utiles pour leurs effets de bord (set !, define, print, …) -Exemple: > (lambda (x) Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
180
(define z 3) (define w (+ z 3)) (+ x (* 10 w))) La capacité de traiter aisément les fonctions comme d’autres données est une particularité de la programmation fonctionnelle (voir plus particulièrement les fonctions d’ordre supérieur) On peut définir des variables ayant comme valeur le résultat d’une expression lambda. -Exemple 1 > (define fonct1 (lambda (x) (define z 3) (define w (+ z 3) (+ x (* 10 w)))) > fonct1 Elle s’utilise comme une fonction prédéfinie > (fonct1 2) 62 > -Exemple 2 > (define carre (lambda (x) (* x x))) > (carre 2) 4 > (+ (carre 9) 5) 86 > Façon abrégé de nommer une fonction Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
181
(define ) (lambda () )) Peut être aussi écrite comme suite : (define ( ) ) -Exemple 1 : façon abrégé de nommer une fonction (define fonct1 (lambda (x)
(define z 3) (define w (+ z 3)) (+ x (* 10 w))))
Est équivalent à (define (fonct1 x) (define z 3) (define w (+ z 3)) (+ x (* 10 w))) -Exemple2 : façon abrégé de nommer une fonction > (define (carre x) (* x x)) > (define (somme-carres x y) (+ (carre x) (carre y))) > (somme-carres 3 4) 25 > (define (distance x1 y1 x2 y2) (sqrt (somme-carres (- y2 y1) (- x2 x1)))) > (distance 0 0 3 4) 5 > (distance 0 0 1 1) Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
182
1.414213562373730951 VIII.2.6. Expression conditionnelles (la forme cond)
-Syntaxe : (cond ( … ) … ( … )) Où les pi sont des expressions jouant le rôle de prédicat et les eij des expressions. -Exemple : la fonction valeur absolue > (define (f1 x) (cond ( (> x 0) x) ( (= x 0) 0) ((< x 0) (- x)))) > (f1 -2) 2 > (define (f2 x) (cond ((< x 0) (- x)) (else x))) > (f2 -2) 2 > VIII.2.7. Expressions conditionnelles (la forme if)
Est une abréviation de cond utilisée lorsqu’il n’y a que deux conditions possibles : (if )
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
183
Est équivalent à (cond ( ) (else )) -Exemple > (define (f3 x) (if (< x 0) (- x) x)) VIII.2.8. Expressions conditionnelles (la forme case)
-Syntaxe : (case …) est une expression quelconque. est une expression de la forme suivante : (( …) …), Les sont des représentations externes d’une valeur possible en Schème. Les doivent être distincts. La dernière peut avoir la forme (else …). Une expression case est évalué de la façon suivante. Key est évalué et sa valeur est comparée à chaque . Si le résultat de l’évaluation de est équivalent (dans le sens de eqv ?; voir le thème IX sur l’égalité) à un des alors les expressions de la clause correspondante sont évaluées de gauche à droite et le résultat de la dernière expression est retourné comme le résultat de l’expression case au complet. Si le résultat de l’évaluation de est différent de chaque alors s’il y a une clause else alors ce sont les expressions de la clause else qui sont évaluées et c’est la valeur de la dernière expression qui est retournée. S’il n’y a pas de clause else alors la valeur de l’expression case n’est pas spécifiée (il n’y a pas nécessairement un massage d’erreur).
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
184
-Exemple : (case (* 2 3 ) ( ( 2 3 5 7 ) ‘ premier ) ( (1 4 6 8 9) ‘composé ) )
==== composé
(case (car ‘ (c d ) ) ( (a) ‘a) ( (b) ‘b ) )
==== non spécifié
(case (car ‘ (c d ) ) ( (a e i o u) ‘voyelle ) ( (w y) ‘semi-voyelle ) (else ‘consonne ) )
==== consonne
VIII.2.9. boucle do
Les boucles servent à répéter un certain nombre de fois une portion de programme, comprise entre le début et la fin de la boucle.Voici comment déclarer une boucle dans un programme Scheme. On utilise la fonction « do » et la variable « i » pour compter le nombre d’exécution successives de la boucle. Exemple :
(do ( ( i 0 (+ i 1) ) ) ( (= i 10) ) (print i) (print (* 3 i) ) )
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
185
Analyse de l’exemple :
(do ( ( i 0 (+ i 1) ) ) ( (= i 10) ) (a) (b)
(c)
(a)
: Valeur de départ de I (ici 0)
(b)
: Incrément de i à la fin de chaque passage dans la boucle (Ici i est augmenté de 1)
(c) : Condition de fin de boucle (quand i vaut 10) (print i) ;; insérez ici la partie du programme à (print (* 3 i)) ;; boucler en utilisant éventuellement la ) ;; fin da la boucle Dans cet exemple, on exécute une multiplication pour « i » allant de 0 à 9 par pas de 1 (puisque i= 10 provoque la fin de la boucle). La valeur de « i » est multipliée par 3. La valeur de « i » ainsi que le résultat de la multiplication sont affichés dans la console grâce à la fonction « print ». VIII.2.10. Manipuler les listes
Il est courant en Scheme de déclarer une liste d’éléments. Voici, par exemple, comment déclarer une suite de nombres : ( define ma-liste (list 4 45 6 73 ) ) L’évaluation de cette ligne donne le message : ma-liste. Pour connaître le nombre d’éléments contenus dans une liste, on utilise la fonction « length », avec comme argument, le nom de la liste dont on veut compter les éléments. ( length ma-liste) La console doit donner le nombre d’éléments compris dans la liste : 4
Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique
Intelligence artificielle et systèmes experts
186
LISTE DES SUJETS DE SEMINAIRE : 2009 – 2010
1. Acquisition des Connaissances 2. Intelligence Artificielle Distribuée 3. Agents Intelligents 4. Cerveaux électroniques 5. Réseaux de Neurones 6. Réseaux de Neurones hybrides 7. Algorithmes génétiques 8. Apprentissage 9. Contrôle intelligent 10. Intelligence Artificielle et le Commerce électronique 11. Intelligence Artificielle sur Internet 12. Incertitude 13. Intégration d’information 14. Traitement du langage naturel 15. Logique floue et commande floue 16. Perception 17. Modélisation Cognitive 18. Planification 19. Raisonnement 20. Raisonnement par cas 21. Raisonnement probabiliste 22. Recherche des données 23. Représentation des connaissances 24. Les Systèmes de Résolution de problèmes 25. Robotique 26. Systèmes Experts en langages naturels 27. Tableau noir 28. Traitement de la parole 29. Vie artificielle 30. Vision artificielle 31. Conception Assistée par Ordinateur 32. Conception Assistée par Intelligence Artificielle 33. Les Systèmes Multi agents 34. L’Intelligence Artificielle Parallèle 35. La Résolution Distribuée des Problèmes 36. Les machines Intelligentes 37. La Robotique 38. Les Robots intelligents 39. Robot sexy 40. Chaton Robot 41. Robotique et Sémantique Université de Kinshasa Faculté des Sciences Département des Mathématiques et Informatique