6. Découverte de connaissances

6.1. Extensionnel et intensionnel

Au 1.2., nous avons vu comment, à l'aide d'heuristiques (connaissances), on pouvait résoudre en temps quasi-linéaire un problème dont on avait, par ailleurs, démontré qu'il était de complexité exponentielle.
Je vous ai menti! Le problème que nous avons résolu est "SEND+MORE=MONEY". Le problème de complexité exponentielle est celui de la cryptarithmétique.
De même le joueur d'échecs résout-il le problème qu'on lui pose, et non pas le problème de jouer un coup quelle que soit la situation.

On peut définir un ensemble : Oui, direz-vous, mais s'il y a un nombre infini d'éléments? Citez-moi, vous répondrai-je, un ensemble ayant un nombre infini d'éléments.
Il n'en reste pas moins que notre objectif, dans ce chapitre "découverte de connaissances", est de passer de l'extensionnel à l'intentionnel. Simplement, nous aurons la modestie de ne pas dire "tous les x qui vérifient P vérifient Q ", mais "beaucoup d'x qui...". En d'autres termes, nous cherchons à élaborer des règles, en admettant qu'elles souffrent des exceptions... ce qui est le cas de toutes les règles :-)

6.2. Induction et abduction

Considérons le raisonnement suivant :
Jean Blanc a volé mon portefeuille.
Jean Noir a volé le vélo de mon fils.
Donc tous les "Jean" sont des voleurs.
Vous m'accorderez que cette inférence est abusive. En fait, il aurait fallu dire : tous les "Jean" de couleur sont des voleurs :-)
L'induction consiste à passer d'une définition extensionnelle d'un ensemble à sa définition intensionnelle. Ce n'est pas une inférence valide, dans la mesure où on ne peut pas prouver qu'à partir de faits vrais elle produit une règle vraie. Et pourtant, elle est bien utile.

Considérons à présent le raisonnement suivant :
Tous les hommes sont mortels.
Socrate est mortel.
Donc Socrate est un homme. 
Vous m'accorderez que cette inférence est abusive. En fait, Socrate est le nom d'un pois rouge (comme tous les pois), qui vient de décéder.
L'abduction consiste à considérer que, si on observe l'effet, on peut supposer la présence de la cause. Ce n'est pas non plus une inférence valide, mais elle aussi est bien utile.

Le problème, dans l'inférence par induction, est de déterminer quels sont les attributs pertinents, discriminants (or on ne peut connaitre tous les attributs, cf.
5.4.3.).
Un exemple frappant est celui du tableau de Mendeleiev : avant, on devait apprendre tout ce qu'on pouvait sur chaque corps pur. Il a l'idée de les ordonner suivant leur masse atomique (alors que dans la nature, on les trouve sous forme de molécules). Il remarque alors une "certaine" régularité des valences électriques. Et l'idée jaillit, de les organiser dans un tableau à deux dimensions.
Et dorénavant, on a beaucoup moins de choses à apprendre : il suffit de regarder dans quelle colonne est le corps.
Mieux encore (abduction) : Mendeleiev a pu immédiatement soupçonner certaines mesures d'être fausses, parce que le corps n'était pas dans la bonne ligne.
Et enfin, le triomphe : il a pu, par déduction, décrire des corps qui n'avaient jamais encore été observés, pour remplir les cases vides de son tableau. Il fallut des dizaines années pour les découvrir dans la nature à l'état de traces.

6.3. Analogie

Un autre moyen de découvrir des connaissances consiste à remarquer que le domaine sur lequel on travaille "ressemble" à un autre, et que donc, peut-être, ce qui est connu dans le deuxième peut servir dans le premier.
Exemple :
Considérons un carré 8*8, et des rectangles 1*2 :

Il est évident que l'on peut recouvrir le carré avec 32 rectangles. Considérons à présent un nouveau problème de recouvrement :

Peut-on encore couvrir, avec 31 rectangles? L'algorithme consiste à essayer tous les cas, il est terriblement combinatoire. Mais cette figure nous fait penser à un échiquier et des dominos

Ce qui nous fait penser aux couleurs : les dominos apportent 31 blancs et 31 noirs, alors que l'échiquier tronqué contient 30 blancs et 32 noirs. Donc : non.
Autre exemple :
Considérons l'addition dans N. Elle est commutative. Elle a un élément neutre (0). Etant donné un nombre quelconque supérieur à 2, on peut trouver plein de couples dont la somme soit ce nombre : z, x#0, y#0, x+y =z
Considérons la multiplication. Elle est commutative. Elle a un élément neutre (1). A-t-on la propriété z, x#1, y#1, x*y =z ? Pas toujours. Et on introduit la notion de nombre premier.

6.4. Raisonnement à partir de cas

Ma tondeuse autoportée refuse de démarrer. Plus exactement, je peux la démarrer en tirant sur la ficelle, mais le démarreur, lui, ne fonctionne pas. Pourtant, si je le branche directement sur la batterie, il fonctionne. L'an dernier, c'était la machine à laver qui ne fonctionnait pas, alors que le moteur tournait si je le branchais directement sur le secteur. Le réparateur m'a expliqué qu'il y a une sécurité qui empèche de fonctionner si la porte n'est pas fermée, et que c'est cette sécurité qui était grippée (un petit ressort qui s'était détendu). Sur ma tondeuse aussi, il y a une sécurité, qui empèche de démarrer si le frein à main n'est pas mis. Je shunte cette sécurité, et ça démarre.
Qu'ai-je fait? La première étape est probablement la plus difficile à automatiser. Elle relève typiquement de l'analogie évoquée au paragraphe précédent. Elle impose de savoir calculer une distance entre le problème actuel et les problèmes en mémoire. Comme pour le raisonnement par induction, cela suppose que l'on sache discerner les paramètres pertinents (problème avec un moteur électrique, qui pourtant fonctionne, présence de sécurités) des autres (machine dans la maison contre machine en plein air, machine usagée contre machine quasi-neuve, machine utilisé toute l'année contre machine utilisée quand il fait beau...).
Elle suppose également une représentation hiérarchique (démarreur = sorte de moteur électrique, etc.) ainsi que nous allons en voir au paragraphe suivant.
Elle suppose, enfin, que l'on aît correctement énoncé le problème, éventuellement lors d'un dialogue.

La deuxième étape impose de posséder des opérateurs de transformation de la solution (la sécurité de la machine à laver est dans la porte, celle de la tondeuse sous la pédale de frein).
On peut également, plutot que de transposer la solution (passif), transposer la résolution (actif).
Enfin, il peut y avoir une étape "2bis", de réparation de la solution, si celle-ci n'est pas applicable.

La troisième étape peut ne pas consister simplement à stocker le nouveau cas à côté du précédent (mémoire plate), mais à les fusionner en un cas plus abstrait (mémoire hiérarchique) : MOPS, construction bottom-up des scripts.
On peut y stocker des index positifs (faits pertinents), mais aussi négatifs (faits différentiels).
Remarque : la méthode s'applique à des problèmes statiques (frames de Minsky), et à des problèmes dynamiques (scripts de Schank).
Exemple : Cyrus

6.5. Construction d'ontologies

Lorsqu'on aborde un domaine nouveau, on bute sur le vocabulaire : d'une part sur les mots qu'on ne connait pas, d'autre part sur les mots qu'on connait mais qui n'ont pas ici le même sens. Dans le premier cas, on va regarder dans le dictionnaire ; dans le deuxième cas, dès qu'on a pris conscience qu'il y avait un problème, on va regarder dans le glossaire. Mais, dans les deux cas, on va trouver, dans la définition, des mots sur lesquels on butera : le dictionnaire est circulaire!
En fait, ce nouveau domaine ne consiste pas simplement en "mots" ; il comporte une "structure", et c'est cela que nous cherchons à "comprendre".
On appelle "ontologie" d'un domaine l'ensemble des mots et structures qui le constituent. Ainsi que nous l'avons vu au
5.4.2., les langues ne sont pas très appropriées pour transmettre les ontologies. Et si la cible est une machine, elles sont hors de question, pour de longues années encore. On préfère donc avoir recours à des langages, comme par exemple les langages "orientés objet". En représentation externe, on privilégiera une représentation sous forme de graphes, plus lisible que la représentation interne sous forme de listes (attributs - valeurs).

On peut distinguer deux méthodes pour construire une ontologie : top-down et bottom-up. Dans tous les cas, dans l'état actuel, il faut procéder incrémentalement, c'est-à-dire par améliorations successives. Une partie des recherches est axée sur la construction à partir de textes, et pose donc les problèmes de compréhension automatique de textes et de schémas.
Le graphe ci-dessus laisse entrevoir la complexité de la tâche. Un outil extrèmement utile consiste à extraire des sous-graphes, si possible des arbres, en ne visualisant que certaines relations. Cela permet, souvent de "faire sauter aux yeux" des relations manquantes (regardez l'air, ci-dessus) ou des relations surprenantes.
Une autre question qui se pose est celle du "point de vue" : pour un véhicule, par exemple, le carrossier, le motoriste, l'acousticien... sont tous intéressés par le moteur, mais à des titres très divers. Sans parler du fabricant, du vendeur et du réparateur.
Chapitre précédent Chapitre suivant Table des matières

Attention, ce fichier n'est peut-être plus d'actualité s'il est dans votre cache ; vérifiez la date du copyright, et faites éventuellement un 'reload'.
© Jean-Marc Fouet, 1-11-1999