Archives Mensuelles: novembre 2012

J’ai pas eu beaucoup de temps a consacrer aux Mebius depuis le dernier post mais j’ai quand meme pu finir les cognit teachers. Entre la premiere version et la deuxieme, pas mal de chose ont change et je veux verifier que ca converge toujours bien sur, mais je ne peux plus le faire aussi simplement que dans la premiere version. Cela vient en partie du fait qu’il y a de nouveaux coefficients qui entrent en jeu. Ces coefficients sont determines soit manuellement soit par un algorithme d’evolution/selection. Afin de m’assurer de la validite du nouvel algorithme, je veux verifier son comportement  pour toutes les combinaisons de coefficients en entree. Grace a la puissance de ma nouvelle machine je peux me permettre ce genre d’etude exhaustive alors pourquoi sans priver ! Aujourd’hui j’ai fait un petit programme de test qui prend un neurone actor et qui etudie comment il evolue sous l’effet de mon nouvel algo d’apprentissage en fonction des nouveaux coefficients en entree. Pour l’instant j’ai deja pu constater que le cognit converge bien avec les coefficients correspondant au fonctionnement de la premiere version de l’algo d’apprentissage. Reste a tester qu’il en va de meme pour les autres configurations possibles.

 

Publicités

Aujourd’hui repos, j’ai donc pu pas mal me concentrer sur les Mebius et bien avancer. Les fichiers de configurations commencent a avoir une belle tete, les cognit actors ca roule mais il faut que je remette en place le systeme d’interpolation sur les valeurs de sortie comme l’annee derniere car ca booste vraiment bien les resultats), et j’ai fait la moitie des cognits teachers. Avec juste des cognits actors definis tres simplement via le fichier de config j’obtiens deja des mebius capable de trouver et suivre une cible en 1D (de facon tres peu efficace). J’ai fait en passant une petite routine pour m’afficher en clair le contenu d’un mebius a partir de son fichier de config, et des que je finis les cognits teacher, j’ajoute une interface pour utiliser un mebius dans un programme tiers (du genre : init(fichier de config), setInput(), process(), getOutput(), terminate() ). Avec les teachers je devrais obtenir des mebius qui traquent la cible efficacement, je commencerai a afficher des resultats ici a partir de la. Ensuite faire evoluer le niveau de complexite et voir jusqu’ou on peux aller.

 

Un site avec souvent des articles interessants :

http://www.kurzweilai.net/

En ce moment j’avance en particulier sur le format du fichier de definition des Mebius. Dans l’optique Mebius=outil/nouveau langage de programmation, ca revient a definir la syntaxe du langage, le programme etant l’interpreteur de ce langage.

Aussi, j’avais besoin de tracer quelques surfaces 3D vite fait alors j’ai cherche un outil, et finalement j’ai trouve GNU Octave qui fait ca tres bien :

http://www.gnu.org/software/octave/

 

 

Je continue a coder, un petit peu quasiment chaque soir… Ca avance et pour l’instant tout va bien. Mais j’ecrirai plus en detail plus tard.

Ce soir j’ai avance sur l’implementation des cognits. Ayant deja implemente une premiere version et grace a de long mois a ne pas pouvoir coder mais a y reflechir en tache de fond, j’ai les idees claires sur ce que je veux faire et du coup ca avance vite. Mais etant donne le peu de temps que je peux y consacrer ca va encore prendre quelques jours avant de voir les Mebius bouger a nouveau… En tout cas je suis tres optimiste sur les futurs resultats.

 

Bon finalement a bien y reflechir ca ne m’apporte pas grand chose d’avoir fait une architecture multiprocessus, alors plutot que de passer du temps la dessus je suis revenu a une architecture mono processus. Donc la ca tourne en mode texte, mono processus, sous valgrind, et ca amrche. A partir de demain, je commence a implementer les cognits.

A part ca, pendant mes pauses je fouine souvent sur youtube entre autres avec des mot cles genre IA, automate, neurones, … Dans 99% du temps c’est totalement ininterressant mais aujourd’hui j’ai trouve un chouette montage video d’une serie de configuration interressante dans le jeu de la vie de Conway :

http://www.youtube.com/watch?v=C2vgICfQawE

 

Le mecanisme de creation de cognit est presque en place mais je me suis rendu qu’il y avait parfois des problemes de blocages dans la communication inter processus, classique. Je suis donc en train d’arranger ca.

 

Ce soir comme prevu j’ai pu commencer a implementer la nouvelle generation de Mebius. Bon, il va y avoir pas mal de choses a faire avant d’obtenir des choses a montrer comme l’annee derniere mais je vais tacher d’y arriver au plus vite. Pour l’instant je commence par le mecanisme d’auto creation/destruction de cognit. Car si les premiers Mebius avaient un reseau de cognit fixe de leur naissance a leur mort, les nouveaux Mebius ont leur propre systeme de reconfiguration du reseau de cognits.

Ce soir j’ai fini de valider l’interface en mode texte. Par contre si je laisse tourner tout le temps sous valgrind ca me gene car l’architecture etant devenue multi processus a la fin de chaque processus (a la mort de chaque mebius) valgrind m’affiche son compte rendu qui vient se melanger a l’affichage de mon interface, c’est du plus mauvais effet… Je vais pas regarder ca ce soir mais j’aimerai bien que valgrind utilise le flux stderr pour son affichage, ca me permettrait de le rediriger vers un fichier et de le piper dans un deuxieme terminal si je veux voir en simultanee, ou simplement fouiller dedans plus tard quand necessaire. Ceci dit c’est un detail et a partir de demain soir, ENFIN, je m’attaque a l’implementation des Mebius.