5. Méta-connaissances

5.1. Définition

Ce que x sait de ce que y [ne] sait [pas].
x peut être un homme, un animal, ou un logiciel.
Si x = y, il s'agit de méta-connaissances réflexives : "Je ne sais rien, mais je sais que je ne sais rien" (Socrate?).

5.2. Exemple

Lorsque je concocte un sujet d'examen, mon but est d'obtenir une répartition Gaussienne des notes. Pour cela, je prends en compte : Lorsqu'ils reçoivent le sujet, les étudiants adoptent l'un de deux comportements : les étudiants "amateurs" commencent à répondre à la première question ; les étudiants "professionnels" lisent l'énoncé en entier. Cela leur permet, connaissant le temps qui leur est imparti, et éventuellement le coefficient de chaque question, d'attribuer un quota de temps à chaque question, en fonction de ce qu'ils savent qu'ils [ne] savent [pas] : telle question est facile, mais ne vaut que 2 points, donc inutile de fignoler. Telle question est dans mon impasse, et ne vaut que 2 points, donc inutile d'y réfléchir. Telle question m'ennuie beaucoup, mais elle vaut 7 points, donc je lui accorde une heure.
Ainsi le professionnel, même s'il est moins bon que son voisin amateur, obtiendra un meilleur résultat ; en particulier, l'amateur risquera de ne pas avoir le temps de traiter la dernière question, à laquelle il aurait pourtant su répondre.

5.3. Utilisation pour améliorer les performances

Au chapitre 1., nous avons vu qu'il était intéressant, lorsque le seul algorithme connu était de complexité exponentielle, de le remplacer par un Système à Base de Connaissances.

Ce système a l'architecture vue au 2.2.1. :

Le moteur d'inférence, comme nous l'avons vu, contient un certain nombre de boucles imbriquées. Il n'est donc pas étonnant que, lorsqu'on augmente le nombre de connaissances, les temps de calcul commencent à grimper exponentiellement.

Ce qui est par contre étonnant, c'est que l'expert, lui, est d'autant plus efficace qu'il sait de choses.

Seule explication possible : il n'utilise pas un algorithme pour utiliser ses connaissances, il utilise des méta-connaissances. Nous allons donc fournir ces méta-connaissances d'utilisation de connaissances à notre système. Sous quelle forme?

5.3.1. Méta-connaissances dans la base de connaissances

Si nous observons le comportement d'un moteur d'inférence, nous constatons aisément qu'il "perd son temps" à essayer des appariements qui manifestement seront infructueux. D'où l'idée d'ordonner les règles. Cela peut être réalisé : On peut aller plus loin, en ordonnant les prémisses des règles, par exemple en imposant au moteur de les évaluer de gauche à droite (ce que fait Prolog).
On peut descendre encore plus bas, en ordonnant les variables. Par exemple, s'il faut évaluer hauteur(x y), il serait stupide d'essayer tous les entiers pour y et de chercher les x qui ont cette hauteur. On indiquera donc au moteur l'ordre privilégié, par exemple par une typographie : hauteur(?x !y).

Mais, ce faisant :

5.3.2. Méta-connaissances dans le moteur d'inférence

Si je ne peux pas mettre mes méta-connaissances dans la BdC, je vais les mettre dans le MI :
if (phase = diagnostic) then (ignorer les règles qui parlent de médicaments)
Mais Mais alors, où mettre mes méta-connaissances?

5.3.3. Méta-connaissances ailleurs

Nous allons revoir l'architecture. Tout ce qui est combinatoire (= choix), nous allons le sortir du MI algorithmique, et le mettre dans un "superviseur", ne laissant dans le moteur que les procédures de service linéaires :

Quand le MI a un problème, il le pose au superviseur, qui regarde tout, et répond en utilisant ses méta-connaissances.

5.3.4. Constitution du superviseur

A présent que la structure est claire, nous renvoyons notre Cogniticien chez notre Expert, pour lui demander quelles méta-connaissances il utilise pour gérer ses connaissances... Echec garanti. Il va falloir nous mettre au travail, c'est-à-dire observer le comportement du système sur des cas précis, relever ses faiblesses, et corriger... ça ne vous rappelle rien? Oui bien sur, nous allons construire notre superviseur sous forme de SBC, pour pouvoir le développer incrémentalement.

Grace à cela, nous repoussons un peu plus loin la complexité, mais sans nous faire d'illusion, puisque le nouveau moteur (qui n'est pas un méta-moteur, ne mettez pas du méta partout!), puisque le nouveau moteur est combinatoire.

Solution?

On se calme, je n'ai plus la place. Non, la solution, c'est :

On met ensemble toutes les connaissances, quel que soit leur niveau méta. Bien entendu il en faut qui soient réflexives. Lorsque le moteur a un problème au niveau n, il le formule dans la base de faits. Soit le système peut résoudre, soit il passe au niveau n+1 (voir l'exemple du
4.2.).

5.4. Utilisation pour communiquer

Notre objectif commun, au sein de ce DEA "ECD", est de mettre évidence des connaissances, pour... pour quoi, au fait? Pour les mettre au service d'utilisateurs, sous forme de Systèmes d'Aide à la Décision.

Avant d'envisager un projet aussi ambitieux, regardons un schéma plus simple :

Ici, "E" signifie "émetteur" et "D" "destinataire". "E" souhaite communiquer à "D" une information, une idée. Mais ils ne sont pas télépathes. Ils ont besoin d'un canal.

5.4.1. Canaux

Nous classerons les canaux possibles suivant les cinq sens du destinataire : D'autre part, nous ferons intervenir deux modes de communication : Par "symbolique", j'entends (!) tout ce qui nécessite un consensus préalable, par "analogique" ce qui n'en nécessite pas. Par exemple, ce que vous êtes en train de lire relève du "Visuel Symbolique" : je fais, en l'écrivant, l'hypothèse que vous comprenez le Français. En revanche, mes petits dessins sont plus "Visuel Analogique". Quelqu'un qui ne comprend pas un mot de français "verrait" à peu près ce que je "veux dire". Mais un animal n'y verrait rien. Tandis que si je lève la main brusquement, le chat qui est en train de se faire les griffes sur mon tapis pendant que j'écris ceci, comprendra immédiatement le message, bien que je ne l'aie jamais frappé.
Il y a donc continuité entre les notions de message symbolique et de message analogique.
Il semble acquis maintenant (1999) que le Symbolique soit "plutot" traité par le cerveau gauche, et l'Analogique par le cerveau droit. Tout l'art consiste donc à utiliser les deux en parallèle.
Symbolique Analogique
V ce que j'écris au tableau les gestes que je fais
A ce que je dis le ton sur lequel je le dis
K serrer la main botter le c*l
O after shave haleine, sueur
G partager un repas french kiss
Notons que : Cette matrice doit en fait être augmentée de deux dimensions : conscient/inconscient, et volontaire/involontaire. Par exemple, lorsque je rougis, j'envoie un message Visuel Analogique Involontaire Conscient, qui module mon message Auditif Symbolique. La "télépathie" consiste à percevoir ces informations (exemple du boxeur), la "propagande" consiste à les émettre (exemple des images subliminales).

5.4.2. Réification

Comme si cet espace à 4 dimensions ne suffisait pas, se pose un autre problème : la langue que nous utilisons n'est pas apte à transmettre les idées. (C'est pourquoi nous avons créé des langages, tels que les mathématiques ou le dessin industriel... et les langages de programmation.)
Supposons par exemple que je veuille parler de tous les x qui vérifient la propriété P, ne vérifient pas Q, dont il est indifférent qu'ils vérifient ou non R, et dont j'ai oublié qu'ils vérifiaient S. Je ne peux simplement pas m'exprimer ainsi dans notre langue. Je vais donc prendre un exemple, c'est-à-dire déduire une constante qui vérifie les propriétés que je veux exprimer. Je vais "envoyer" cet exemple sur le canal. (En fait, le canal est bruité, et ce n'est pas exactement cet exemple que recevra le destinataire, mais ignorons ce problème pour l'instant). Recevant mon exemple, le destinataire va devoir en induire la propriété que je veux lui communiquer.

Si nous sommes en situation de dialogue, D va me dire "ah oui, c'est comme b?" et je vais réaliser qu'il n'a rien compris. Je vais donc fabriquer un nouvel exemple c qui ne vérifie pas les propriétés parasites de b. Et ainsi de suite, jusqu'à ce que nous puissions raisonnablement penser que nous nous sommes compris.
Si je ne suis pas en position de dialogue, c'est à moi d'accumuler suffisamment d'exemples et de contre-exemples dans mon discours pour espérer que le destinataire comprendra.
Cela est trop abstrait pour vous? Bien, prenons un exemple :
- Dis Papa, c'est quoi un cylindre?
- Eh bein, euh... tu vois le vase, là? C'est ça, un cylindre.
Et pendant des années, l'enfant va croire que "cylindre" signifie "bleu et fragile"!

5.4.3. Abstraction

Mais c'est encore pire que cela, car, en plus, je ne peux pas décrire toutes les propriétés d'un objet ou d'un évènement.
Supposons que je veuille vous parler de l'objet qui se trouve actuellement à gauche de mon clavier. C'est un stylo. Un stylo à bille. Qui écrit bleu. Il est formé d'un tiers inférieur noir, qui se visse dans les deux tiers supérieurs blancs. Il y a un poussoir noir au dessus. Il y a un truc noir pour l'accrocher dans ma poche. A l'intérieur, il y a un ressort. Il y a des micro-fissures sur le corps, je vais chercher un microscope pour vous les décrire. La "mine" est en plastique gris opaque, donc je ne peux pas voir le niveau de l'encre. Attendez, je vais chercher un cutter pour l'ouvrir... ah ce n'est déjà plus le même objet.
Je n'aurai jamais fini. Et quand bien même j'arriverais au bout, entre temps de l'encre se serait évaporée, et ma sueur aurait attaqué le plastique, donc il faudrait recommencer.
Préféreriez-vous une description fonctionnelle à une description visuelle? Ok, ça sert à écrire. Bleu. Sur du papier. Pas trop fin, sinon ça le déchire. Ca marcherait aussi, je crois, sur le plastique de mon bureau. C'est également pratique pour se gratter l'oreille. La "mine", je l'utilise aussi pour appuyer sur le truc de sécurité des prises électriques de mon labo, quand je veux brancher un appareil...
Et en plus, je m'en sers d'exemple pour illustrer mon cours, au point que dans dix ans vous vous souviendrez encore du "stylo de Fouet"!
ce que je vois n'est pas la réalité
ce que je pense n'est pas ce que je vois
ce que j'écris n'est pas ce que je pense
ce que vous lisez n'est pas ce que j'écris

5.4.4. Synthèse : importance du contexte

Tout cela n'est pas grave, car personne n'a besoin de tout savoir sur mon stylo. La vraie question est : "qui a besoin de savoir quoi?". Symétriquement, lorsque vous allez recueillir des connaissances, par interview et/ou extraction à partir de données, il vous sera indispensable de garder présent à l'esprit qu'elles ont été obtenues dans un certain contexte : le concepteur de voitures de courses et le concepteur de camions vous donneront des règles parfaitement contradictoires, sans jamais vous rappeler qu'ils travaillent dans des domaines différents.
Chapitre précédent Chapitre suivant Table des matières
© Jean-Marc Fouet, Aout 1999