Magazine

Eurisko

Publié le 17 janvier 2010 par Serdj
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.
EuriskoTraveller 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.
 
Eurisko
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)
 Eurisko
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
Partagez / votez pour cette page :
http://www.wikio.fr PUBLIER CETTE PAGE OU VOTER POUR CET ARTICLE SUR DIGG-FRANCE.COM

Retour à La Une de Logo Paperblog

A propos de l’auteur


Serdj 10439 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte