Systèmes experts et enseignement
Jean-Louis Laurière
L'intelligence artificielle
L'intelligence artificielle est une science qui date d'une vingtaine d'années. Son objet est de reconstituer à l'aide de moyens artificiels – presque toujours des ordinateurs – des raisonnements et des actions intelligentes. Les difficultés sont a priori de deux types :
pour la plupart de nos activités, nous ne savons pas nous-mêmes comment nous nous y prenons. Nous ne connaissons pas de méthode précise – pas d'algorithme disent aujourd'hui les informaticiens – pour comprendre un texte écrit ou reconnaître un visage, démontrer un théorème, établir un plan d'action, résoudre un problème, apprendre...
les ordinateurs actuels sont très loin d'un tel niveau de compétence. Il faut les programmer depuis le tout début. Les langages de programmation ne permettent en effet que d'exprimer les choses très élémentaires.
L'intelligence artificielle est, de ce double point de vue, une science expérimentale : expériences sur ordinateurs qui permettent de tester et d'affiner les modèles exprimés dans les programmes sur de nombreux exemples ; expériences et observations sur 1'homme (en général le chercheur lui-même) pour découvrir ces modèles et mieux comprendre dans le détail comment fonctionne l'intelligence humaine.
Cette série d'articles présente une famille de programmes d'intelligence artificielle connus sous le nom de « Systèmes experts », qui renouvelle complètement la démarche informatique classique et a d'ores et déjà des retombées industrielles considérables.
Depuis la naissance de l'informatique, les ordinateurs ont été considérés comme des machines à programmer c'est-à-dire à exécuter des instructions. Des centaines de langages de programmation ont ainsi été créés de 1950 à nos jours. Tous ces langages possèdent deux caractéristiques connues :
ils ordonnent à la machine d'effectuer des opérations déterminées ;
ces opérations sont elles-mêmes entrées de façon ordonnée et figée dans un formalisme accessible aux seuls informaticiens. Il s'ensuit que ces langages de programmation ne sont, à la vérité, que des « semi-langages » : la machine sait exécuter des ordres mais ne sait ni répondre, ni a fortiori dialoguer dans le même langage... De plus, certaines informations ne peuvent tout simplement pas être exprimées dans ces langages (Fortran, PL1, Pascal, Algol, Ada, C...). Il s'agit de toutes les assertions purement déclaratives (par opposition à impératives) telles que :
« Le T.G.V. met 5 heures de Marseille à Paris »
ou bien « sin2 x + cos2 x = 1 ».
La révolution apportée par les systèmes-experts – SE dans la suite – consiste à considérer toutes ces informations, impératives ou déclaratives, toutes ces connaissances de nature très diverses et non homogènes, comme des données.
Les systèmes-experts
Ces connaissances sont fournies par 1'utilisateur : architecte, géologue, ingénieur, psychologue, médecin, technicien, chimiste, joueur de bridge... et ceci dans son propre vocabulaire (ou jargon) sans aucune contrainte dans un formalisme très proche du langage habituel. Cet utilisateur, cet expert construit donc sa base de connaissances tout seul sans l'aide de 1'informaticien. Il le fait dans un langage descriptif, appris en quelques heures, qui n'a plus rien à voir avec les langages de programmation. Les connaissances sont entrées par éléments indépendants, modulaires, en vrac. Ce sont de petites molécules de savoir très libres les unes par rapport aux autres et donc aisément modifiables.
Cet ensemble de données-connaissances est analysé par ce qu'on appelle un moteur d'infërences, logiciel quant à lui programmé classiquement, mais unique pour toute une gamme d'applications, et qui a pour tâche de mettre bout à bout par association les molécules qui s'enchaînent logiquement et déduire ainsi toutes les informations possibles.
Un système expert est donc d'abord un programme spécialisé dans un domaine particulier et qui a, dans ce domaine, des performances comparables aux experts eux mêmes , mais, deuxièmement et surtout (tout bon programme est peu ou prou expert au premier sens), un système expert peut à tout moment :
- expliquer son comportement à 1'expert,
- recevoir de l'expert de nouvelles connaissances sans aucune nouvelle programmation .
Une bonne centaine de SE sont actuellement opérationnels à travers le monde.
Systèmes-experts et enseignements
L'utilisation de la méthodologie « systèmes experts » en enseignement assisté par ordinateur est justifiée d'un triple point de vue.
Un système d'aide à 1'enseignement doit :
- être le plus intelligent possible. Il doit en particulier savoir résoudre les exercices qu'il pose à l'étudiant et comprendre les erreurs de celui-ci ;
- pouvoir être facilement modifiable même par un non-informaticien (d'où 1'intérêt des molécules de connaissances lues en données dans un langage proche du langage usuel) ;
- être capable à tout moment d'expliquer à 1'étudiant aussi bien le(s) bon(s) raisonnement(s) que les erreurs par rapport à celui-ci (ceux-ci.
Les articles qui suivent montrent combien l'activité dans ce domaine est vive en France et décrivent déjà des réalisations significatives.
Mais l'univers de l'enseignement est immense, la mise au point de tels systèmes passe nécessairement par la collaboration avec les enseignants eux-mêmes et sans doute aussi avec celle des enseignés. Il faut être patient et ne pas tout attendre des informaticiens. Les systèmes de représentations, les moteurs d'inférences existent, il faut les nourrir de toute la connaissances explicite ou implicite que possède tout bon enseignant.
Jean-Louis Laurière
Institut de programmation
Université Pierre et Marie Curie (Paris)
Paru dans le Numéro spécial, supplément au Bulletin trimestriel de l'EPI de décembre 1984.
Cet article est sous licence Creative Commons (selon la juridiction française = Paternité - Pas de Modification).
http://creativecommons.org/licenses/by-nd/2.0/fr/
|