Liens utiles:projet :
http://boinc.run.montefiore.ulg.ac.be/evo/status du serveur :
http://boinc.run.montefiore.ulg.ac.be/evo/server_status.php (maj toutes les 10 min)
applications :
http://boinc.run.montefiore.ulg.ac.be/evo/apps.php
Bonjour à tous,
Certains d'entres vous en ont entendu parler, pour d'autres c'est une découverte. Dans tous les cas c'est officiel désormais, je lance actuellement un nouveau projet BOINC.
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.
Sans plus attendre, voici l'URL du projet:
http://boinc.run.montefiore.ulg.ac.be/evoEnfin, sachez que je ne me suis pas lancé là dedans hier ^^, je travaille là dessus en "sous-marin" depuis quelque temps maintenant. D'ailleurs, certains d'entres vous (ils se reconnaitront), ont participé aux premiers beta-tests lorsque le projet était encore privé, je les remercie encore une fois
Merci d'avance à vous tous.
EDIT: J'allais oublier, pour le moment le % d'avancement ne fonctionne pas, c'est normal vous tracassez pas