5. Méta-connaissances
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?).
Lorsque je concocte un sujet d'examen, mon but
est d'obtenir une répartition Gaussienne des notes. Pour cela, je prends en
compte :
- ce que je pense qu'une majorité d'étudiants a compris
- ce que je pense que seuls quelques étudiants maitrisent
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.
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?
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é :
- "physiquement"
- en imposant au moteur de lire le fichier de haut en bas, et de ne pas
revenir en arrière (c'est ce que fait Prolog)
- en découpant le fichier en "paquets" : le moteur tourne dans un paquet,
puis passe au paquet suivant
- numériquement, en affectant une priorité à chaque règle ; si toutes les
priorités sont différentes, on retrouve l'ordre ci-dessus, sinon on retrouve
les paquets
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 :
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
- Tous les inconvénients signalés ci-dessus subsistent
- De plus, le moteur est dorénavant spécialisé, pour le diagnostic
médical, avec une notion de phase
- Et surtout, chaque fois qu'une erreur sera détectée, il faudra
rappeler l'informaticien pour debugger le code.
Mais alors, où mettre
mes méta-connaissances?
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.
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.).
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.
Nous classerons les canaux possibles suivant
les cinq sens du destinataire :
- Vue
- Audition
- Kinesthésie
- Odorat
- Gout
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 échelle est très différente chez les animaux : les insectes sociaux
(fourmis, termites...), par exemple, communiquent beaucoup plus par ce que
nous appelons O et G, en déposant des phéromones sur leur chemin (nous en
reparlerons au 8.1)
- Cette échelle varie également selon les cultures (voir Edward T. Hall) :
les Germaniques et Américains du Nord ne veulent pas qu'on les sente, donc se
parfument et restent éloignés les uns des autres, donc parlent fort ; les
Méditerranéens ne peuvent faire confiance à quelqu'un qu'ils ne "sentent" pas,
donc se touchent. Les Européens ont besoin de se regarder dans les yeux, les
Américains n'éprouvent pas ce besoin, les Japonais considérent cela comme une
offense.
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).
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"!
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
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?".
- assurance qualité : quelle est la forme de la bille après 10h
d'utilisation?
- vendeur : est-ce la couleur qui se vend le mieux?
- bricoleur : est-ce qu'on peut s'en servir dans les prises électriques?
- notaire : au bout de combien de temps l'encre s'efface-t-elle?
- policier : peut-on récupérer l'empreinte génétique de l'utilisateur?
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