• Aucun résultat trouvé

Du niveau symbolique au niveau cognitif

Dans le document Les systèmes de connaissances (Page 87-89)

Aspects fonctionnels

5.3. De la résolution de problèmes aux tâches cognitives

5.4.1. Du niveau symbolique au niveau cognitif

Vers la fin des années 70, l'intelligence artificielle a connu un renouveau considérable grâce à la technique des systèmes experts. Ces systèmes sont de véritables systèmes de traitement de la connaissance puisqu'ils sont supposés simuler une expertise humaine dans un domaine donné. Mais pour cela, les techniques de type résolution de problèmes ont été abandonnées, car trop générales. Il n’est plus question, pour résoudre un problème précis d’utiliser des mécanismes “ universels ”, mais au contraire des connaissances et des heuristiques tout à fait spécifiques au domaine. La technique utilisée consiste à construire, en liaison avec l'expert, une base

de connaissances particulière, qui représente le savoir-faire en jeu. Cette base de connaissances est écrite à l'aide

d'un langage de représentation des connaissances. La phase suivante consiste alors à exécuter cette base de connaissances grâce à un interpréteur du langage de représentation, qui est un programme qu'on appelle moteur

d'inférences, qui déduit des réponses adéquates des données qui lui sont fournies. Sans rentrer dans les détails

(on pourra consulter [Ermine 89] par exemple), notons que le langage de représentation permet en général de donner une formulation dite symbolique de la connaissance. L'archétype de ce genre de représentation est la formulation par des règles logiques, appelées souvent règles de production. Ces règles sont ensuite utilisées par un programme pour faire des déductions automatiquement (des inférences, d'où le nom de moteur d’inférences) à partir des données fournies et arriver à une conclusion qui permet de résoudre le problème posé.

Prenons l’exemple d’un système expert qui veut vérifier que le code de la route est respecté à une intersection, on peut écrire une base de connaissances sur le modèle de la figure 5.10. Cette base de connaissances est ensuite utilisée par un moteur d’inférences, pour déterminer si, dans un cas donné, le code est respecté. On voit dans la figure 5.11 une manière d’utiliser la base de connaissances dans cet objectif, qu’on appelle chaînage arrière qui simule un raisonnement régressif à partir d’un but. Sur cet exemple, on laisse le lecteur imaginer l’algorithme de raisonnement qu’utilise un tel système. Il est clair que si le nombre de règles est volumineux, si les données sont complexes (et notamment si elles comportent des variables), un tel système devient très difficile à programmer.

Outre la difficulté de programmer un moteur d'inférences efficace sur une base de connaissances volumineuse, une autre difficulté, beaucoup plus fondamentale, est apparue quand s'est développée la technologie des systèmes experts, qu'on a identifiée et nommée goulet d'étranglement dans cette approche. Sur un problème de grandeur réelle, il est apparu qu'il était la plupart du temps très difficile et très long, voire souvent impossible, de construire une base de connaissances satisfaisante avec un expert. Comme il est bien sûr impossible de se passer d'expert pour construire des systèmes experts (quoiqu'on ait bien essayé !), la faisabilité des systèmes experts a été fortement mise en doute. Une littérature abondante et de nombreuses méthodes palliatives ont été produites pour maîtriser ce phénomène, mais les résultats n'ont jamais été à la hauteur des espérances (parfois très exagérées, il faut le dire !).

Depuis, la réflexion a mûri et le problème n'est pas apparu comme un problème technique, mais conceptuel. Nous allons en faire ici une simplification très schématique, on pourra consulter par exemple l'excellent exposé [Ganascia 91] ou l'article original [Newell 82] pour plus de détails. La connaissance dans une base de connaissances de système expert est écrite sous une forme dite symbolique, qui est une représentation logique du problème. C'est ce qu'on appelle le niveau symbolique de la connaissance. Or, d'un point de vue psychologique, et contrairement à beaucoup de préceptes de l'éducation classique, ce n'est pas parce que l'on dispose d'une modélisation logique d'un problème qu'on en a nécessairement la compréhension ! En d'autres termes, décrire logiquement la solution d'un problème n'en donne pas une vision cognitive, c’est-à-dire

explicable et compréhensible. Le niveau symbolique n'est donc pas le plus haut niveau de description possible d'un système de connaissances, et n'apparaît dès lors plus que comme un niveau intermédiaire entre une représentation plus "cognitive" et la représentation exécutable par une machine (le programme informatique, par exemple). D'où l'hypothèse d'un niveau supérieur de représentation d'un système de connaissances, qu'on appelle

niveau cognitif (knowledge level), qui est apte à accueillir des modèles pertinents à la fois pour les experts et les

concepteurs de bases de connaissances (les cogniticiens), avec un passage possible (éventuellement automatique) à un modèle symbolique. Le niveau cognitif répond plus à un besoin de modélisation du système de connaissances, le niveau symbolique plus à une conception logique d'un système de traitement de ces connaissances : le niveau symbolique manipule des symboles et spécifie leur comportement (moteur d'inférences par exemple), le niveau cognitif est "situé immédiatement au-dessus du niveau symbolique, et est caractérisé par la connaissance comme médium et le principe de rationalité comme loi de comportement" [Newell 82], c’est-à- dire qu'il manipule des connaissances dans une seule perspective fonctionnelle (un rôle) : résoudre le problème qui lui est assigné. C'est donc bien le niveau qui est pertinent pour une description fonctionnelle du traitement de la connaissance dans son aspect sémantique.

SI Le feu est rouge

ET L’accélération du véhicule est nulle ET Le conducteur s’arrête

ALORS

L’accélération du véhicule est nulle ET La vitesse du véhicule est nulle SI Le feu est rouge

ET L’accélération du véhicule est négative ET Le conducteur s’arrête

ALORS

L’accélération du véhicule est nulle ET La vitesse du véhicule est nulle SI Le feu est rouge

ET L’accélération du véhicule est positive ET Le conducteur pile

ALORS

L’accélération du véhicule est nulle ET La vitesse du véhicule est nulle SI Le feu est rouge

ET L’accélération du véhicule est nulle ET La vitesse du véhicule est nulle ALORS

Le code de la route est respecté Etc.

Figure 5.10. Base de connaissances sur le code de la route

Les travaux sur les systèmes experts, appellation qu'on a maintenant troquée plus favorablement contre

systèmes à base de connaissances, se sont donc orientés vers le niveau cognitif. Comme il s'agissait de faire des

systèmes informatiques industriels et opérationnels, il s'est créé un nouveau domaine de l'ingénierie qu'on a appelé naturellement génie cognitif (ou ingénierie des connaissances comme traduction directe de "Knowledge Engineering") [Vogel 89]. Le génie cognitif se fixe pour but d’offrir des outils pour modéliser au niveau cognitif un système de connaissances quelconque, notamment celui formé par les connaissances d’un expert sur un sujet précis. Il se trouve que le niveau cognitif, comme il a été dit, est orienté vers la résolution d’un problème donné, on retrouve donc des outils de modélisation de tâches de résolution de problèmes, qui, on va le voir, ressemblent singulièrement à ceux qui ont été décrits ci-dessus. Cependant, la connaissance est abordée d’un point de vue plus global. Non seulement les aspects de résolution de problèmes sont abordés, mais aussi la connaissance mise en œuvre pour cette résolution est modélisée à part entière. C’est ainsi que la plupart des méthodes de génie cognitif sont orientées sur deux axes : celui dit de la connaissance statique, qui modélise les objets et les

concepts du domaine considéré et celui dit de la connaissance dynamique qui modélise les stratégies d’utilisation de cette connaissance statique destinées à résoudre un ou plusieurs problèmes déterminés. Pour illustrer ce paragraphe, nous allons donner deux exemples de méthodes de génie cognitif.

Utilisateur : Est-ce que : “ Le code de la route est respecté ” ? Système : Est-ce que “ Le feu est rouge ” ?

Système : Est-ce que “ L’accélération du véhicule est nulle ” ? Utilisateur : Non

Système : Est-ce que “ L’accélération du véhicule est positive ” ? Utilisateur : Oui

Système : Est-ce que “ Le conducteur s’arrête ” ? Utilisateur : Oui

Système : Conclusion : “ Le code de la route est respecté ”

Figure 5.11. Exemple de fonctionnement d’un système expert

Dans le document Les systèmes de connaissances (Page 87-89)