evo

Evo@home


 

s2

Télécharger Boinc (tutorial)

URL du projet : http://boinc.run.montefiore.ulg.ac.be/evo

Liens du Projet
L'Alliance Francophone Statistiques

 


Contexte:
Je suis actuellement étudiant en dernière année d'ingénieur en informatique (sorte de polytech info en France me semble) et je dois réaliser un travail de fin d'études (mémoire/thesis). J'ai proposé à deux de mes professeurs de mettre en place un projet BOINC pour notre université et l'idée à été bien accueillie.

Idée générale:
L'idée générale de mon travail c'est de mettre à disposition des chercheurs de mon université un outil de calcul puissant utilisable pour tout un panel d'applications scientifiques. Le but est donc d'avoir au final une infrastructure utilisable par les chercheurs et voir si celle-ci est intéressante niveau performances, résultats, etc par rapport aux solutions actuelles (petit super calculateur de notre université, petit GRID au sein de l'université, ...)

Background théorique:
En recherche, les algorithmes d'apprentissage sont constamment utilisés. Un programme d'apprentissage est un programme qui apprend à partir d'un ensemble de données. Les applications sont très variées:
- élaboration d'un jeu d'échec
- reconnaissance de caractère
- construction de modèles (biologiques, mécaniques, ...)
- filtre de spams
....

C'est dans le cadre de ces algorithmes d'apprentissage que mon projet sera utilisé.
Lorsque que l'on utilise l'apprentissage on procède en général de la sorte:
1) choix d'une description des données (paramètres décrivant les données ou features)
2) choix des paramètres de l'algo d'apprentissage
3) on execute le programme d'apprentissage sur un Data Set (données) et on obtient un modèle
4) évaluation du modèle (calcul de la performance du modèle) obtenu (via cross-validation, ...)
Le but du jeu étant bien évidemment de trouver le meilleur modèle possible. Il est impossible de tester toutes les combinaisons tant le nombre de paramètres intervenant dans l'algo est important. C'est ici que le project BOINC va entrer en jeu, il va s'agir de trouver le jeu de paramètre donnant le meilleur modèle.

Les algorithmes évolutionnaire:
Pour trouver ce jeu de paramètres nous allons principalement utiliser les algorithmes de type évolutionnaire. Le principe est très simple et se base sur l'évolution de Darwin:
1) on génère aléatoirement une population d'invidus
2) on évalue chaque individu
3) par croisement (+ mutations aléatoires) on crée une nouvelle génération en favorisant les meilleurs individus
4) on reprend au point 2)
Ici on a:
un individu = un jeu de paramètres
une population = un ensemble de jeux de paramètres

Fonctionnement du projet:
Le projet fonctionne de la sorte:
Le générateur de WU's est une algorithme évolutionnaire qui génère des jeux de paramètres à évaluer.
Comme d'habitude, les WU's sont évaluées sur les machines des volontaires et les résultats sont renvoyés au serveur.
Le générateur de WU's se sert des résultats déjà obtenu afin de générer de nouvelles WU's qui sont théoriquement plus susceptibles de donner un meilleur score, etc.

Application scientifique:
Comme indiqué, le projet sera "multi-fonction" mais il faut bien commencer avec une application scientifique particulière. Je suis actuellement en étroite collaboration avec un chercheur qui développe des algorithmes d'apprentissage pour la détermination de la structure 3D des protéines sur base de la séquence d'acides aminés. La connaissance de cette structure 3D est d'un intérêt fondamental car elle renseigne sur le rôle et le fonctionnement de la protéine. Une meilleur connaissance de la structure 3D peut permettre de comprendre/diagnostiquer/soigner certaines maladies.