• Aucun résultat trouvé

VIl.6.5 Second prototype (MELANIS-2)

VIII.2 L'apprentissage automatique

VIII.2.4 L'apprentisssage par consignes

L'apprentissage par consignes peut être illustré en considérant une personne qui apprend à jouer aux échecs. Le professeur lui dira par exemple :

Protège ton roi.

L'élève doit alors modifier cette phrase pour l'intégrer aux différentes règles qu'il connait déjà. Il possède plusieurs ensembles de règles, liées aux différentes phases du jeu. La phrase protège ton roi peut produire plusieurs règles que l'élève doit incorporer à ces différents ensembles. Ainsi, la phrase

114 CHAPITRE VIII. L'APPRENTISSAGE

exprimée dans une langue naturelle doit être transformée en une série de règles de la forme

il vaut mieux faire . . . que ... 1.

Dans le cadre d'un système informatique, l'expert qui donne la consigne ne connait pas toujours la structure interne du système qui la reçoit et la forme de la phrase reçue par le système peut être très éloignée de la représentation interne.

Hayes-Roth, Klahr et Mostow [HKM80] ont défini les étapes que doit exécuter un système qui reçoit des instructions d'un expert :

1. Demander un nouveau conseil à l'expert - Le système demande une instruction supplémentaire, soit lorsqu'il n'a simplement plus rien à faire, soit lorsqu'il constate qu'il lui manque une information dans sa base de connaissances.

2. Interpréter le conseil - Le système transforme le conseil qu'il vient de recevoir en sa représentation interne. La représentation doit être épistémologiquement adéquate [McC58], c'est-à-dire qu'on doit pou-voir y décrire le conseil sans perdre d'information. Cette étape est importante et difficile dans les programmes qui acceptent des instruc-tions exprimées en langage naturel.

1 Le programme de développement de systèmes experts MRS [ Gen80J propose une notation pour ce genre de règles, appelées des métarègles [GS82]. Elles ont la forme :

($better rule1 rule2),

signifiant qu'il vaut mieux appliquer la règle rule1 que la règle rule2. Mais MRS n'inclut en aucun cas un processus d'apprentissage, car d'une part il stocke uniquement une série de métarègles de la forme ($better ... ) qu'il peut récupérer par la suite et, d'autre part, il ne fournit pas de moyen de créer de telles métarègles à. partir de conseils généraux.

L'utilisateur doit les formuler lui-même.

L'apprentissage automatique 115

3. Opérationalisation - L'enseigné transforme le conseil pour le met-tre sous une forme utilisable. Le conseil peut ne pas être utilisable directement, même s'il n'a pas été représenté de manière ambigüe.

L'opérationalisation doit transformer la nouvelle connaissance dans la forme requise par le processus qui l'utilisera (par exemple sous forme de règles de productions, arbres de décisions, etc .. ) . Cette étape est la phase clé de tout système d'apprentissage par instruction.

4. Intégrer la nouvelle connaissance dans la base de connaissances - En ajoutant le nouveau concept dans la base, le système doit prendre garde aux effets secondaires, vérifier la cohérence de la base de con-naissances et éviter les redondances.

5. Evaluer les conséquences de l'application éventuelle de la nouvelle connaissance - Le système doit expérimenter cette connaissance et éventuellement l'appliquer à des situations-tests, afin de relever la présence d'éventuelles erreurs.

Il convient de mentionner deux exemples de programmes qui appren-nent par consignes. Le premier est le programme FOO (First Operational Operator) de Mostow [Mos81,Mos83J. Ce programme raisonne sur le jeu de coeurs, un jeu de cartes qui se joue en une séquence de mains. A chaque tour, un joueur débute la main en jouant une carte et chacun des autres joueurs continue à son tour en abaissant une carte. S'il le peut, chaque joueur doit suivre, c'est-à-dire jouer une carte de la même couleur que celle qui fut posée en premier. Le joueur qui a joué la plus haute carte emporte la main et reçoit autant de points qu'elle contient. Chaque coeur vaut 1 point et la dame de pique en vaut 13. Le but du jeu est d'éviter de pren-dre des points. Une description complète de ce jeu peut être trouvée dans [HM78J.

On ne connait aucun algorithme pour gagner à ce jeu. Les informations que possède chaque joueur sont partielles. Toutefois, un certain nombre de conseils généraux tels que évite de prendre des points peuvent être donnés à un débutant. C'est ce débutant que le programme FOO simule, en acceptant des conseils généraux exprimés dans une langue proche de l'anglais et en les transformant, afin de les utiliser durant le jeu.

116 CHAPITRE VIII. L'APPRENTISSAGE

FOO transforme le conseil, par une sene d'opérations successives, en une procédure de recherche heuristique exécutable. Les opérateurs utilisés pour effectuer ces transformations sont implantés sous forme de règles indépendantes du domaine, accédant à une base de connaissances de con-cepts liés au domaine. Lorsque, par exemple, on dit au système évite de prendre des points, il ne peut créer simplement une procédure qui, durant le jeu, refusera de prendre une main si les points sont trop élevés, les règles du jeu ne l'y autorisant pas. Il doit par contre prévoir une procédure qui lui permettra de jouer une certaine carte en fonction de la situation courante du jeu. Le programme FOO possède environ 200 règles de transformations.

Des règles d'inférences sont utilisées pour raisonner à partir de la con-naissance spécifique du domaine. Chaque règle a une partie droite, une partie gauche et une condition. Une expression correspondant à la partie droite et satisfaisant la condition peut être reportée dans la partie gauche, après substitution des paramètres. Certaines conditions sont testées par de simples procédures, d'autres générent des sous-problèmes qui sont à leur tour résolus par une séquence de règles.

A titre d'exemple, considérons le conseil évite de prendre des points. Ce conseil est donné à FOO sous la forme

(AVOID (TAKE-POINTS ME) (TRICK)).

Une règle de déploiement la transforme, dans un premier temps en (ACHIEVE (NOT (DURING (TRICK) (TAKE-POINTS ME)))). La transformation complète de ce conseil est effectuée en une centaine de pas.

Le principal défaut de FOO réside dans le fait qu'il ne possède pas de processus de contrôle pour appliquer automatiquement les méthodes d'opérationalisation. D'autre part, bien que de nombreuses règles aient été développées indépendamment du contexte, les opérateurs utilisés sont spécifiques au jeu de coeurs.

L'apprentissage automatique 117 conver-sation avec un utilisateur, en anglais, sur son domaine d'intérêt spécifique, puis extraire et manipuler cette connaissance pour l'aider à résoudre ses problèmes. Un système KLAUS doit pouvoir faire intervenir des logiciels ex-ternes, tels que des gestionnaires de bases de données, des générateurs de rapports, des tableurs, des simulateurs ou des progiciels statistiques.

Haas pense que seul un dialogue en langage naturel permet d'obtenir de la part de l'expert l'information nécessaire à un système intelligent de gestion d'information. Il dresse en outre une liste de capacités qu'un tel système doit posséder pour être efficace. Un système KLAUS doit d'abord pouvoir supporter un dialogue. Comme l'utilisateur peut livrer sa con-naissance de manière incrémentale et incomplète, le système doit garder en mémoire ce qui a déjà été dit, de manière à remarquer quelles sont les informations manquantes et à demander explicitement à l'enseignant de les lui fournir. Enfin, il doit pouvoir distinguer ce qu'il ignore de ce qu'il sait être faux. Une des conditions élémentaires d'un système KLAUS est qu'il doit être capable d'apprendre simultanément un nouveau concept et la forme linguistique dans laquelle celui-ci a été exprimé. li doit aussi acquérir des connaissances linguistiques sur le domaine, afin de pouvoir générer des réponses compréhensibles par l'expert.

Haas a développé une implantation prototype d'un tel système, le pro-gramme NANOKLAUS. Ce système possède un module de traitement du lan-gage naturel, un module de déduction formelle opérant sur des expressions de la logique du premier ordre et un certain nombre d'autres outils pour as-similer la connaissance et gérer la base de données. Des règles syntaxiques et sémantiques couvrant un petit sous-ensemble de l'anglais est connu au départ par NANOKLAUS.

NANOKLAUS utilise sept principes d'organisation de la connaissance pour intégrer la nouvelle connaissance :

118 CHAPITRE VIII. L'APPRENTISSAGE

1. Il y a des choses.

2. Il y a des sous-classes de choses.

3. Il y a des relations entre les choses.

4. Il y a des sous-classes de relations.

5. Certaines relations sont des fonctions.

6. Parfois, un ensemble de contraintes suffisent pour distinguer un indi-vidu unique.

7. Les choses égales sont interchangeables.

NANOKLAUS utilise ces principes dans ses opérations internes sur la con-naissance.

Voici un exemple d'une session NANOKLAUS, tirée de [HH83], illustrant l'intérêt que peut présenter un tel système pour la gestion de l'information:

1. User :

L'apprentissage automatique 119

Les capacités de NANOKLAUS sont limitées, tant du point de vue des possibilités de déduction que du point de vue de l'interface en langage naturel. Néanmoins, il s'est avéré très intéressant comme prototype pour un système plus complexe, MICROKLAUS, qui est en préparation.