AReVi – Mac Os X Leopard 10.5

Il y a quelques soucis pour compiler AReVi sur la nouvelle version du système de chez Apple.

En effet, il y a quelques soucis lors de l’édition de lien avec OpenGL.
Pour utiliser AReVi sous Leopard, il faut donc rajouter quelques flags qui vont intervenir lors de l’édition de lien. Pour cela, il faut modifier le fichier arevi-config contenu dans le dossier lib/.
Dans le fichier il faut appliquer les modifications suivantes (vers les lignes 429-432) :
LEOPARD=”-Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib”
EXECCMD=”${CC} -o ${binary} -flat_namespace -bind_at_load ${LEOPARD}”
DYNLIBCMD=”${CC} -o ${binary} -flat_namespace -dynamiclib
-install_name `basename ${binary}` ${LEOPARD}”
PLUGINCMD=”${CC} -o ${binary} -flat_namespace -bundle ${LEOPARD}”

N’oubliez pas ensuite de refaire un ./armake conf avant de relancer la compilation.
Si ça marche pour moi, alors pourquoi pas pour vous ?

Installler AReVi sur Ubuntu

A chaque fois c’est la même galère, il faut retrouver la liste des paquets nécessaires pour compiler AReVi.
Voici donc (en exclusivité) cette liste:

build-essential flex bison libx11-dev libglut-dev libz-dev libbz2-dev libxml2-dev libxslt1-dev libmagick9-dev libimlib2-dev libalut-dev

Voilà, en installant tous ces paquets vous pouvez :

  • Faire de la 3D (glut, x11)
  • Appliquer des textures à vos objets (magick, imlib)
  • Parser du XML (xml2, xslt)
  • Mettre du son 3D (alut)

C’est déjà pas mal pour un début. Je n’ai pas la liste pour les bindings lua, tcl et java, parce que je ne les ai pas installés.
Cette liste permet aussi d’installer la hLib(2) et les ArWidget.

Réseau de neurones

Je n’avais jamais utilisé les réseaux de neurones. Cela ne pouvait plus durer, je m’y suis mis. Après avoir bouquiné quelques docs sur le sujet, je me suis fait un petit perceptron en python.

Le perceptron est LE réseau de neurones de base. J’ai utilisé une fonction d’activation de type tangente hyperbolique, ce qui permet aux neurones de prendre des valeurs comprises entre -1 et 1.
Après avoir implémenté l’algorithme de rétro-propagation (c’est ce qui permet de changer le poids des connections), j’ai essayé de lui faire apprendre des opérateurs booléens (AND, OR, XOR, NAND, …).
Le résultat a été plutôt surprenant. L’apprentissage est rapide mais surtout efficace. Le réseau que vous pouvez voir ici permet de faire 6 opérations binaires entre deux bits (AND, OR, XOR et les inverses). Il y a 5 neurones en entrée : 2 pour les bits d’entrée et 3 pour pouvoir choisir l’opérateur. Les deux sorties représentent le résultat de l’opérateur et son opposé. Je lui ai fait apprendre les tables de vérité de chaque opérateur une centaine de fois (je ne suis pas convaincu qu’il faille autant d’itérations).
Le résultat est très probant. En appliquant un seuil sur la sortie on retrouve les tables de vérité sans problème. Ma prochaine étape, essayer d’apprendre des choses un peu plus fun, reconnaître des formes, des caractères, …