Archives de catégorie : Recherche

Astuces systèmes

1 Manipulation de fichier.

Travaillant actuellement sous plusieurs système, je me suis retrouvé à avoir des fichiers mal encodés … résultat, dans un même projet, j’avais des fichiers en ISO-XxX et d’autre en UTF-8. Donc pour homogénéiser le tout, le plus simple est d’utiliser la commande Linux suivante :

file nom_du_fichier > Permet de connaître l’encodage utilisé

iconv -f type_initial -t type_voulu nomFichier > nouveauFichier

Et le problème est résolu.

[ad#Google Adsense]

Astuce de prog

Cet article/section n’est pas un. Il va simplement me permettre de lister une petite série d’astuces ou de techniques qui peuvent être utiles … et que l’on met souvent un temps fou à retrouver.

Astuce 1 : Spécifier le nombre de digits d’un nombre (Très utile quand le lecteur associé aux programmes demande un format strict)

Utilisation de la STL

std::ostringstream oss;
oss <<std::setw(3)<<std::setfill('0')<<rg;

la fonction fill va permettre de présenter le nombre rg avec obligatoirement 3 digits (120 -> 120 mais 1 -> 001)

[ad#Google Adsense]

Astuce 2 : Faire un tri rapide sur une liste.

Si vous avez besoin de QT dans votre développement, et que à certains moment, vous devez faire appel à des techniques de tri … Le plus simple est de laisser à l’environnement QT faire le tri à votre place.

Pour ce faire, il suffit d’utiliser des QList et, son tri se limitera à l’appel à la fonction suivante :

qSort(listeMat.begin(), listeMat.end(), qGreater<int>());

Dans ce context, listeMat correspond à une liste d’entier, mais si vous travaillez sur des listes d’objets, il suffit de ré-implementer les méthodes qGreater pour votre objet.

Qt-Creator, un IDE performant

Travaillant sous Linux, et maintenant également sous Windows … Je me retrouve à rechercher un IDE pouvant être efficace sous les deux systèmes. Mon précédent choix était Eclipse accompagné de CDT qui me permettait d’avoir un IDE relativement opérationnel et facile d’utilisation.

[ad#Google Adsense]

Parce que je suis adepte du changement et parce que j’ai du refaire du développement à l’aide QT, je me suis décidé à utiliser l’IDE dédié qu’est QT-Creator …

Après 15 jours d’utilisation quotidienne, et hormis un petit problème de charset « problématique » entre les deux systèmes, je pense le garder encore un petit moment.

Ses plus :

– La génération automatique de Makefile via le .pro … C’est propre à QT, et pas QT Creator, mais cela facilite la construction du projet.

– La présentation du code (indentation, coloration syntaxique, …) très efficace.

– Le debugger intégré, avec visualisation des états mémoires, des valeurs des variables, bien pratique.

Enfin, tout cela pour dire que QT-Creator est un bon IDE, qui n’est pas limité à la production de code QT, qui est gratuit et multi-plateforme … et qui semble moins lourd qu’Eclispe et visuellement plus agréable (mais cela reste subjectif).

++

Ps : Qt sur le site de Nokia  :  ICI

[ad#Google Adsense]

De retour de Grèce

La conférence ICANN 2010 est maintenant terminée depuis quelques jours. J’ai pu y présenter mes résultats mais surtout, j’ai eu la chance d’assister à un panel très important de présentations de qualités qui m’ont permis de me mettre à jour sur le domaine l’intelligence artificiel.

De icann 2010

Parmis ce que j’ai trouvé le plus marquant, je peux citer :

  • l’utilisation conjointe des réseaux de neurones et des algorithmes génétiques,
  • des méthodes très interressantes de « décomposition de domaine »  qui font partie de la thématique de « Feature Selection & Dimensionality Reduction »
  • et surtout des avancées interessantes dans l’utilisation des « kernels machines »..

Je regrette toute fois des sessions « poster » trop « rigides » en durée et qui surtout sont détachés en fin de session ce qui gachent un peu l’intérêt des posters.

Très bonne conférence pour moi, et en ce qui concerne Thessalonik, c’est une très jolie ville, qui mérite le détour.

[ad#Google Adsense]

Mon article :

Efficient Domain Decomposition for a Neural Network Learning Algorithm, Used for the Dose Evaluation in External Radiotherapy. Marc Sauget, Rémy Laurent, Julien Henriet, Michel Salomon, Régine Gschwind, Sylvain Contassot-Vivier, Libor Makovicka, and Charles Soussen
LNCS 6352, p. 261-266, ICANN 2010.

Abstract : The purpose of this work is to further study the relevance of accelerating the Monte Carlo calculations for the gamma rays external radiotherapy through feed-forward neural networks. We have previously presented a parallel incremental algorithm that builds neural networks of reduced size, while providing high quality approximations of the dose deposit. Our parallel algorithm consists in a regular decomposition of the initial learning dataset (also called learning domain) in as much subsets as available processors. However, the initial learning set presents heterogeneous signal complexities and consequently, the learning times of regular subsets are very different. This paper presents an efficient learning domain decomposition which balances the signal complexities across the processors. As will be shown, the resulting irregular decomposition allows for important gains in learning time of the global network.

Publication de mon manuscrit de thèse

Une bonne nouvelle pour cette rentrée de vacances, mon manuscrit de thèse est publié aux éditions EU, disponible notamment chez Amazon.fr dans une 10 aines de semaines.

Il est déjà en ligne (mais indisponible) sur amazon.fr

[ad#Google Adsense]

Son résumé :

Les travaux présentés dans cette thèse s’inscrivent dans un projet lié à la radiothérapie externe. L’objectif de ceux-ci est de mettre au point un moteur de calcul permettant une évaluation précise et concise d’un dépôt de dose lors d’une irradiation. Pour remplir cet objectif, nous avons construit un moteur de calcul reposant sur l’utilisation des réseaux de neurones. Dans un premier temps, nous avons développé un algorithme L’apprentissage pour les réseaux de neurones spécifiquement conçu pour la prise en charge des données liées à la radiothérapie externe. Dans un second temps, nos travaux ont consisté en la réalisation d’algorithmes permettant l’évaluation des doses.
La première partie a donc porté sur la mise au point de l’algorithme d’apprentissage des réseaux de neurones. Un des problèmes majeurs lors de la préparation de l’apprentissage concerne la détermination de la structure optimale permettant l’apprentissage le plus efficace possible. Pour construire un réseau proche de l’optimal, nous nous sommes basés sur une construction incrémentale du réseau. Ensuite, pour permettre une prise en charge des nombreux paramètres liés à notre domaine d’application, et du volume des données nécessaires à un apprentissage rigoureux, nous nous sommes attachés à paralléliser notre algorithme. Nous avons obtenu, à la fin de cette première phase de nos travaux, un algorithme d’apprentissage incrémental et parallèle pouvant être déployé de manière efficace sur une grappe de calcul non-fiable. Ce déploiement est possible grâce à l’ajout d’un mécanisme de tolérance aux pannes. La deuxième partie, quant à elle, a consisté en la mise au point d’algorithmes permettant l’évaluation des doses déposées lors d’une irradiation. Ces algorithmes utilisent les réseaux de neurones comme référence pour la valeur des doses ainsi que le principe de continuité de la dose en tout point du milieu. Ils ont été construits à partir d’une fine observation du comportement de la courbe de dépôt de dose à chaque changement de milieu.
En aboutissement, nous présentons des expérimentations montrant les performances de notre algorithme d’apprentissage, ainsi que de nos algorithmes d’évaluation de doses dans différentes configurations.

Icann 2010

Je serai présent lors de la conférence ICANN 2010 qui aura lieu en Grèce.

Site de la conférence : http://delab.csd.auth.gr/icann2010/

J’y présenterai mes derniers travaux sur les réseaux de neurones portant sur l’équilibrage des différents temps d’apprentissage.

Abstract : The purpose of this work is to further study the relevance of accelerating the
Monte  Carlo calculations  for the  gamma rays  external  radiotherapy through
feed-forward  neural  networks.  We   have  previously  presented  a  parallel
incremental  algorithm that  builds  neural networks  of  reduced size,  while
providing  high  quality approximations  of  the  dose  deposit. Our  parallel
algorithm consists in a regular  decomposition of the initial learning dataset
(also   called   learning   domain)   in   as  much   subsets   as   available
processors. However,  the initial  learning set presents  heterogeneous signal
complexities and consequently, the learning  times of regular subsets are very
different.  This paper  presents  an efficient  learning domain  decomposition
which  balances the  signal complexities  across  the processors.  As will  be
shown,  the resulting irregular  decomposition allows  for important  gains in
learning time of the global network.

[ad#Google Adsense]