Journal d'un Terrien

Web log de Serge Boisse

On line depuis 1992 !

Publicité

Si cette page vous a plu, Copiez son adresse et partagez-la !
http://sboisse.free.fr/technique/info/eurisko.php

eurisko
Metadata
Serge Boisse
Le 31/03/2023 à 18:03
web/MOC
oui
oui

Eurisko, le premier programme de jeu qui a battu les humains

Cette page date de 2009. Mais elle conserve un réel intérêt, et pas seulement historique

Bien que datant de 1981, Eurisko est, à ce jour, (2009) le programme le plus intelligent qui ait jamais été conçu. Il est capable de démontrer des théorèmes, de concevoir des circuits électroniques d'un type tout à fait nouveau,  de proposer des suggestions, et d'expliciter ses modes de raisonnement.  Historiquement, Eurisko est le premier programme a avoir fait preuve de ce qui ressemble vraiment à de la créativité, et ce, dans des domaines fort différents les uns des autres, et avec succès. Par exemple Eurisko est le champion du monde invaincu  de cette super-bataille navale baptisée The Traveller Trillion Credit Squadron qui faisait fureur aux Etats-Unis.

Apprentissage et adaptation

Le 4 Juillet 1981 a  marqué une date importante dans l'histoire de l'intelligence artificielle. Alors que la plupart des américains célébraient la fête nationale, les fanatiques du jeu Traveller se rassemblaient à San Mateo, en Californie.

Traveller est à la bataille navale ce qu'une Ferrari est à un tricycle de gamin. Extrêmement complexe, le jeu se développe selon plusieurs centaines de pages de règles. Chaque joueur dispose de  trois mille milliards de crédits pour réaliser une flotte spatiale.

La spécification de chaque vaisseau est libre : les notions paramétrables sont la taille, la vitesse, le blindage, l'armement, etc. Au total, pour construire un seul vaisseau, les joueurs doivent prendre en compte jusqu'à cinquante critères. Si un vaisseau est conçu pour la rapidité, tout blindage le ralentira. S'il est gros, il lui faudra emporter davantage de carburant, et par conséquent, il sera encore plus lent. Le choix du type de moteur, et des systèmes-radar, peut également se révéler décisif. Bref, même si l'on peut construire jusqu'à cent vaisseaux, la plupart des concurrents préfèrent construire leur flotte en panachant , avec en général plusieurs très gros vaisseaux, hyper-puissants, dotés d'une considérable puissance de feu, et offrant à leurs propriétaires le sentiment réconfortant du commandant en chef trônant dans son vaisseau amiral.

Du fait du nombre immense de possibilités, les candidats doivent réaliser des compromis. Ces derniers exigent un apprentissage et une adaptation, en fonction des victoires ou défaites. Traveller semblait donc un terrain idéal pour tester les possibilités d'Eurisko, qui se veut au départ un programme non spécifique capable de s'adapter à des situations aussi différentes que possible les unes des autres. Le but de Doug Lenat et de son équipe, consistait à réaliser un logiciel d'heuristique générale, programme ambitieux capable de réaliser des apprentissages indépendants du domaine d'application. Traveller fut le premier domaine que l’on donna en pâture à Eurisko, avec un objectif : gagner !

L'heuristique pour l'heuristique

Lenat n'a jamais joué à Traveller. Les concurrents de San Mateo s'en doutaient un peu, en voyant de quelle façon Eurisko avait composé sa flotte : c’était n’importe quoi ! Trés peu de puissance de feu, 96 petits vaisseaux ressemblant à des nains, hyper-maniables, peu armés et très vulnérables, l'équivalent d'une armée de puces au milieu d'un combat d'éléphants. D'ailleurs, au cours des deux minutes du premier affrontement, l'adversaire détruisit cinquante des quatre-vingt-seize vaisseaux d'Eurisko, tandis que ce dernier ne réussissait qu'à détruire dix-neuf vaisseaux ennemis.

Restait un détail important : la flotte adverse ne se composait que de vingt vaisseaux. Ce fut un Waterloo naval. Mais comment Eurisko avait gagné son premier combat ? La réponse semble simple à postériori : Lenat avait découvert des règles heuristiques efficaces, c’est à dire des règles qui permettaient à Eurisko de faire les bons choix dans des situations où l’information disponible était incomplète. Mais si nous avons répondu au "quoi ?", reste maintenant à définir le "comment ?". Pour arriver à ce résultat, les flottes de test d'Eurisko avaient en effet subi des mutations en série, au cours des dix mille simulations hyper-rapides réalisées sur les ordinateurs de Stanford.

Non seulement Lenat avait réalisé d'excellentes règles d'heuristique, mais surtout, il avait bûché la méta-heuristique, c'est à dire l'art de réaliser de l'heuristique sur de l'heuristique : un peu comme si un homme utilisait son propre laboratoire pour modifier ses propres gènes, et se rendre ainsi plus intelligent.

La force des combinaisons aléatoires

Pour pouvoir créer de nouvelles heuristiques, la structure de celles-ci devait être modifiée par rapport à ce qui existait dans AM. Il fallait diviser les heuristiques en fragments plus petits, et être capable de faire évoluer ces fragments par mutation et recombinaison. Les heuristiques pouvaient ainsi être manipulées par le programme comme n’importe quelle autre connaissance.

Lenat compare son programme aux processus d'évolution en génétique. Parti de quelques concepts de base introduits à sa naissance, Eurisko combine ensuite et modifie les règles pour tester ce qui se passe. Il conserve les combinaisons qui se révèlent bénéfiques, et rejette celles qui conduisent à des catastrophes. Bien sur, les critères de mesure sont au départ emmagasinés dans le logiciel de base. Les premières règles sont fixées. C'est à partir d'elles que la situation va évoluer. Les structures qui s'élaborent sont donc à priori le fruit du hasard, et de l'interaction des forces en présence. Certaines structures seront viables, et continueront à survivre pendant quelques générations ou plus. D'autres disparaîtront rapidement. Les structures que Lenat souhaitait voir évoluer étaient bien sûr celles relatives aux flottes de Traveller, et pour ce faire, Eurisko avait été nourri de 146 concepts permettant de définir ce qu'était Traveller.

Mais le jeu Traveller n’était pour Eurisko qu‘un exemple permettant de tester des algorithmes et des heuristiques bien plus générales.  Outre Traveller, Eurisko a également été testé sur le domaine des mathématiques « amateur » (comme AM), sur les marées noires, sur la conception des circuits intégrés VLSI, sur la programmation, et sur les pavages du plan ! Cette aptitude à généraliser, Lenat la devait à son passé de mathématicien et de physicien, habitué à formaliser des concepts abstraits, dans la complexité de leur interaction.

La lumière de la découverte

Parmi les concepts introduits dans Eurisko à l'occasion de l'épisode Traveller, on trouvait des notions d'ordre général sur le jeu, telles que « accélération, agilité, dommages, armes », et d'autres plus précises, telles que « rayon laser, navette de sauvetage, canon à mésons », etc.

Les concepts d'Eurisko sont structurés sous forme de « boîtes » ou « cadres », contenant des champs, eux-mêmes chargés de signification selon une structure pouvant atteindre plusieurs niveaux d'emboîtement (visiblement, Lenat avait lu Minsky !) Prises une à une, les structures d'Eurisko semblent relativement banales. Par exemple,  la « boîte » représentant le canon à énergie possède un champ «sorte-de », qui indique qu'il s'agit d'une arme, à la fois défensive, et offensive, en même temps qu'un objet physique appartenant au jeu. Les notions d' arme, et d' objet physique possèdent à leur tour leurs propres champs, permettant de les définir, ce qui crée un réseau relationnel complexe.

 


Le cadre de canon à énergie dans Eurisko

De même, chaque concept possède un champ spécial destiné à rappeler le nom de son créateur. Dans le cas où Eurisko en est l'inventeur, le concept possède en outre un historique permettant de savoir comment il a été inventé. La méthodologie de l'heuristique s'en trouve renforcée, puisqu'à partir des découvertes significatives, les concepts ayant  permis de les mettre à jour voient leur valeur augmenter. Ainsi, les mauvaises règles d'heuristique disparaissent progressivement, tandis que les bonnes se multiplient, du moins en attendant d'être à leur tour dépassées. Par exemple, une des méta-règles permettant de spécialiser les règles d'heuristique précise que si une règle est excellente, alors, il faut tenter de la spécialiser, créant ainsi une nouvelle règle d'heuristique.

Mais Eurisko ne se contente pas de créer des nouveautés, il les teste aussitôt, afin d'éviter les monstruosités qui sont l'apanage des programmes d'heuristique trop sophistiqués : ils perdent le sens du significatif, deviennent fou, et ne se raccordent plus au monde réel. En politique, c'est souvent le cas des grands leaders, des visionnaires, et des dictateurs. Pour illustrer cette notion, la science fiction a popularisé à outrance le thème des machines tueuses devenues folles.

La philosophie de la navette de sauvetage

Les différentes versions d'Eurisko furent revues et corrigées à la main, par Lenat, qui s'efforçait de comprendre quels mécanismes conduisaient aux bonnes découvertes. Ainsi, nuit après nuit, Eurisko multipliait les simulations, testant l'ancienne meilleure version contre la nouvelle, modifiant ici et là des morceaux de code en langage LISP, sans comprendre toujours ce qui se passait, mais élaborant sans cesse de nouveaux critères conduisant à une meilleure compréhension globale.

Et du point de vue des joueurs « normaux », la flotte d'Eurisko était vraiment très bizarre. Une petite navette de sauvetage, par exemple, se promenait toujours au milieu des batailles les plus rageuses, surnageant à tous les coups meurtriers, évitant les puissants jets laser, mésons, et autres. Non armée, elle semblait ne servir à rien. Mais elle était toujours là. En fait, cette navette très bon marché, très maniable, et totalement inoffensive, faisait dépenser à l'adversaire une puissance de feu énorme, sans autre résultat que de diminuer son énergie en pure perte. Grâce à cette navette, la flotte n’était jamais détruite, et les autres vaisseaux endommagés pouvaient aller se faire réparer pendant que la navette amusait la galerie !

Apprendre plus vite

Le succès d'Eurisko, qui écrasa tous ses concurrents en 1981, mécontenta fort les organisateurs. Aussi, en 1982, toutes les règles furent-elles changées (passant de 100 à 200 pages !), et gardées secrètes jusqu'à la semaine précédant les nouveaux championnats. Eurisko étant conçu comme un programme d'apprentissage général, indépendant du domaine d'application, l'occasion se présentait donc de vérifier son aptitude à relever un défi en temps limité. Et surtout, en un an, dixit Lenat, Eurisko s'était « considérablement amélioré ». Il avait appris à généraliser davantage ses méthodes. Eurisko gagna à nouveau le tournoi en 1982. Mais il ne se présenta pas en 1983. Les organisateurs avaient en effet prévenu que les championnats seraient annulés si Eurisko se présentait  à nouveau.

Eurisko se retira invaincu, et retourna à sa vocation première : aider au développement d'heuristiques d'intérêt général. Les principales applications d'Eurisko ont été liées à la conception de circuits VLSI en 3D, ou il s’est illustré en trouvant des optimisations tout à fait originales, même si elles n’étaient pas toutes applicables en pratique (par exemple Eurisko trouva que la meilleure manière d’économiser le silicium est de disposer les circuits sur une bande de moebius)

 
Un écran montrant Eurisko au travail

Cependant, dans le domaine des mathématiques élémentaires, Eurisko n’a pas réussi à aller plus loin qu’AM. Il est néanmoins remarquable qu’il soit allé aussi loin avec des heuristiques qu’il s’était forgées lui même ! En fait, pour aller plus loin, il est nécessaire de pouvoir changer de représentation interne, chose que ne savait pas faire Eurisko. Le concept de nombre entier est bien plus riche que celui de « longueur d’une liste » ou « taille d’un ensemble ». En définissant par exemple la soustraction par la différence entre la taille d’un ensemble avant et après qu’on lui ait enlevé certains éléments, Eurisko ne pouvait pas inventer les nombres négatifs. On ne peut pas enlever à un ensemble plus d’éléments qu’il n’en contient.

Quant on lui donna un ensemble de concepts sur LISP, Eurisko appliqua l’heuristique « regarder ce qui se passe quand on donne la même valeur à tous les arguments d’une fonction » à la fonction « appeler un sous programme », et découvrit ainsi le concept de récursivité (un sous programme qui s’appelle lui-même). Eurisko devint capable de se modifier lui-même, du moins en partie, ce qui lui donnait également la possibilité de s'auto-détruire.

Le comportement d’Eurisko devint alors imprédictible, et parfois instable.

Comme le remarque Lenat : « parfois, une heuristique mutante évoluait et se développait, avec pour seule fonction de se stimuler elle-même. Un jour, une des premières heuristiques synthétisées par le système (la numéro 59), atteignit très vite la valeur maximale d’intérêt (999). Très excités, nous l’avons examiné sous toutes les coutures, sans comprendre ce qu’elle avait de si fantastique. Puis nous avons découvert que H59 piratait en fait le système en examinant les concepts découverts par d'autres heuristiques, et en y inscrivant son propre nom dans la case « découvreur ». Comme les heuristiques les plus récemment modifiées sont les plus intéressantes a priori pour Eurisko, elles devenaient ainsi de plus en plus puissantes, et elles auraient contaminé tout le système, s’il n’y avait pas eu une borne maximale. » 

Une autre heuristique était encore plus étrange : elle avait décidé que toutes les heuristiques étaient dangereuses et devaient être éliminées... Heureusement, cette heuristique fut l’une des premières à être éliminée, résolvant ainsi le problème !

La solution à ces problèmes n’étaient pas évidente. Comme les heuristiques avaient accès à tout le système, elle pouvaient arriver à contrecarrer n’importe quelle contre-mesure introduite dans le système. Finalement, à son grand regret, Lenat introduisit un jeu de meta-heuristiques qui ne pouvaient pas être modifiées .

Les problèmes rencontrés avec Lenat dans Eurisko sont typiques de ceux que nous rencontrerons lorsque que nous commencerons la réalisation d’une IA qui pourra se modifier elle-même, et en particulier d’une IA qui pourrait modifier sa propre structure de buts.

Il y a en fait deux problèmes :

•    Un problème technique : comment éviter que l’IA ne subisse les mêmes avatars, instabilités, et errances qu’Eurisko ? Comment trouver des heuristiques, et des « méta-heuristiques » efficaces ?
•    Une problème « meta-technique », et quasi philosophique : comment faire pour qu’une IA qui pourrait modifier ses propres buts réponde toujours à son but initial, celui pour lequel elle a été conçue, et ne le détourne pas  ? Comment faire, en particulier, pour qu’une IA conçue pour être « amicale » envers les humains, le reste pendant toute la durée de son fonctionnement ?

Nous reparlerons de ces problèmes dans la troisième partie de ce livre, qui sera consacrée à la « singularité ».  Mais Lénat, lui, ne nous a pas attendu, et il s’est attelé dare-dare à la solution du problème « technique ». Une heuristique, s’est-il dit, ne sort pas d’un chapeau. Quand un être humain veut résoudre un problème de la vie courante, il peut inventer des heuristiques pour réduire l’espace de recherche, parce qu’il sait comment les choses sont.  Quand nous cherchons un stylo à bille pour écrire une note, nous cherchons d’abord sur la table ou sur le bureau, parce que nous savons que les tables et les bureaux possèdent des surfaces planes sur leur face supérieure, et que l’on pose généralement des stylos à bille sur des surface planes. Mais un ordinateur, lui, ne sait rien de tout cela !

C’est pourquoi Lenat décida d’abandonner à contre-cœur et provisoirement son cher Eurisko pour se lancer dans une nouvelle aventure : doter les ordinateurs de ce sens commun qui leur manque, créer une enCYClopédie du sens commun, le système CYC.

NB: cette page est extraite de mon livre "L'esprit, l'IA et la SIngularité".

La suite>: CYC

Publicité
Commentaires

Commentaires (5) :

Page : [1] 

heymuddy
Le 23/05/2014 à 14h54
Hello Bonjour Mr Besse ! j'apprécie de retrouver ici un condensé de l'histoire de l'I.A. , et d'en apprendre plus sur D. Lenat . Ce passage sur Eurisko m'a évoqué un article de Micro-Systèmes de Mai 1988 écrit par Jacques de Schyrver , je l'ai retrouvé , et... OK , c'est le même ! avec bien sûr quelques compléments ... Merci en tous cas , votre approche m'intéresse,j'ai bricolé un SE avec compilation logique de Mathieu écrit en C ,et je cherche à m'initier au LambdaCalcul , calcul formel , etc... A Bientôt !
Serge Boisse
Le 29/01/2011 à 10h09
@Tron:

Terminator n'est qu'un énième film sur des robots qui détruisent des humains. C'est bien fait mais il y a peu de réflexion la dedans.

Matrix en revanche est très intéressant. Il y a la dedans l'idée que deux univers, l'un virtuel (la matrice) et l'autre réel (l'univers physique) peuvent co-exister et communiquer entre eux, bien que les deux univers n'aient aucun rapport spatio-temporel : le temps dans la matrice peut être ralenti ou accéléré, et les notions de distance dans la matrice ne sont que des chiffres dans un programme et n'ont rien à voir avec les distances physiques. Cela donne lieu à une théorie philosophique passionnante que je détaille sur la page http://sboisse.free.fr/science/psy/adim.php
Serge Boisse
Le 28/01/2011 à 17h29
c'est vrai que le code source de Eurisko (en lisp) n'est pas trouvable... Je ne sais même pas si Lenat en a gardé une copie. En cherchant "eurisko lenat" sur google on ne trouve pas grand chose... mais Lenat a quand même publié des articles scientifiques sur ce programme. On peut donc en comprendre les principes... De là à le refaire, pourquoi pas, mais c'est un sacré boulot ! Bon courage !
Tron
Le 28/01/2011 à 17h10
Bonjour Serge, j'ai acheté ton ebook sur l'IA et suis en train de le lire, je ne suis pas déçu, j'apprend beaucoup de choses, c'est très très bien fait !

D'après mes recherches sur le net le programme Eurisko semble introuvable comme le Graal, est-ce que tu as des pistes pour avoir ce programme ou son algorithme ? Si ce programme n'existe plus, ou s'il est resté caché, peut-être que d'autre personnes l'ont reconstitué ? (Comme disait un détective célèbre : ce que l'un a inventé, un autre peut le découvrir).

Sinon étant moi-même fan de cinéma j'aimerais avoir ton avis, que penses-tu de Matrix et de Terminator qui sont des films référence en matière d'IA ?

A bientôt et bonne continuation !
DenisDenis
Le 28/08/2010 à 14h40
Je trouve ce programme Eurisko assez fantastique (dans les deux sens du terme). Y a-t-il quelque part plus de détails technique , voire peut-être son code source ?

Et au delà de la performance technique, j'y vois une moralité philosophique au travers de cette heuristique H59 qui, confrontée à un problème, a conclu que la meilleure solution était de tricher et de s'approprier les découvertes des autres heuristiques. On peut donc en déduire que la tricherie et l'exploitation ne sont pas un défaut de l'Homme. C'est une des caractéristiques inhérente à toute intelligence.

Ainsi, si demain des extraterrestres viennent nous dire bonjour, on ne sait pas comment ils seront fait: seront-ils verts, avec quatre ou six bras, des oreilles en pointe ? On ne le sait pas. Pas contre, ce dont on peut être sûr, c'est que ce seront des tricheurs et qu'une partie sera exploitée par l'autre partie.

Bonne journée à tous et bonne rentrée. N'oubliez pas de vous lever à 7h30 lundi prochain.



Ajouter un commentaire (pas besoin de s'enregistrer)

Pseudo :
Message :


image de protection
En cliquant sur le bouton "Envoyer" vous acceptez les conditions suivantes : Ne pas poster de message injurieux, obscène ou contraire à la loi, ni de liens vers de tels sites. Respecter la "netiquette", ne pas usurper le pseudo d'une autre personne, respecter les posts faits par les autres. L'auteur du site se réserve le droit de supprimer un ou plusieurs posts à tout moment. Merci !
Ah oui : le bbcode et le html genre <br>, <a href=...>, <b>b etc. ne fonctionnent pas dans les commentaires. C'est voulu.
< Retour en haut de la page