Salut à tous,
Une fois de plus je fait appel à votre aide.
Voila le problème : J'ai un jeu de données sur un objet ainsi qu'un modèle physique a faire tourner avec des paramètres d'entrée plus ou moins nombreux dans l'objectif de retrouver ces données.
Actuellement, je marche au feeling et à la compréhension physique. Mais tout à l'heure, en pensant au filtre bayésien de thunderbird, je me suis dit : Tiens est-ce que l'on ne pourrai pas utiliser un principe équivalent pour automatiser le processus ?
Cependant mon problème est différent : je peut quantifier exactement la qualité du résultat (par l'écart au donnée).
De plus, j'ai environ huit paramètres d'entrée, sachant qu'ils sont limités par des conditions physiques et que dans certains cas ils peuvent être connus.
La grande difficulté provient du temps pour faire tourner un modèle : au moins 10h (jusqu'a 2 semaine pour une simulation de très bonne qualité). Or dans les mois et les années qui viennent, il va y avoir un grand nombre de données sur des objets différents qui vont arriver d'ou l'intérêt de créer un soft qui, s'il n'irait pas forcément plus vite que l'être humain, lui permettrai de se libérer de la tache la plus ingrate.
Vu le temps nécessaire à une simulation, je ne peut pas automatiser une exploration exaustive des paramètres. Ce qui serait vraiment cool, ce serai d'avoir un soft qui partant des paramètres de base (fixes ou bornés selon) réagirai intelligement pour faire les faire varier, voir quels sont ceux le plus critique dans le but de se rapprocher le plus possible de la solution et d'aider a la détermination de leurs influences sur le modèle. Le top serai quelque chose qui en plus garde en mémoire ce qui a été réalisé pour encore optimisé les traitements pour d'autres objets plus ou moins proche (peut être avec un classement).
J'insiste sur le fait que je ne cherche pas à remplacer le sens physique mais plutôt a le complémenter.
Comme vous avez pu le constater dans le titre, je ne suis ni informaticien ni matheux. Alors, je suis preneur de toute info, site, forum ou éventuellement personne à contacter sur le sujet.
Dans un premier temps je suis surtout intéressé par de la vulgarisation pour voir si la solution proposé s'adapte bien à mon problème (rappel, j'entrave pas grand chose dans les domaines pointus des maths ou de l'info) mais si je trouve mon bonheur, il me faudra pouvoir trouver des sources scientifiques (livres ou articles).
merci de votre aide,
gyhelle
PS : Tiens c'est cool, un correcteur orthographique a été intégré !
# bayes fait des émules...
Posté par Glenn Y. R. (site web personnel, Mastodon) . Évalué à 5.
Suis entrain de me renseigner sur les méthodes de traduction actuelles avant de coder quoi que ce soit...
Voila, c'etait H.S. Hum. Bref. Tout ca pour dire que je te souhaite bon courage.
P.S: il y avait un article sur les réseaux bayesiens dans l'avant dernier LinuxMag (je crois), au cas ou ca peut te rendre service...
[^] # tant qu'on est dans le HS ;)
Posté par Lebas Sébastien . Évalué à 4.
Je pense que tu peut supprimer le "intelligente", il va te falloir AMHA bien plus que ça ;)
Sinon, pour l'utilisation du contexte, tu peut regarder les chaines de Markov Cachée (HMM, hidden markov model en anglais il me semble), c'est une des possibilités utilisée ...
Bogofilter, il utilise un filtre bayesien ? Parceque à part essayer de classer ton document pour adapter le dictionnaire utilisé, je vois pas trop l'utilisation que tu veut en faire ... (mais j'ai peut être tout simplement pas saisi l'idée ;) )
# c'st plutot des algo génétiques
Posté par ham . Évalué à 10.
je prend un message et je le range (on peut faire ca avec plein d'autre méthodes)
Ce que tu semble rechercher c'est plutot de la recherche de solution : j'ai une une fonction f (ton model), un point d'arrivé et je cherche le point de depart.
pour avoir diverse information sur comment faire avec les algorithmes génétique faire de recherche google:
pour les algo génétiques:
algorithmes génétiques recherche de minimum
algorithmes génétiques recherche de solution
http://sis.univ-tln.fr/~tollari/TER/AlgoGen1/node5.html(...)
ou :
recherche de solution mathématique optimisation
http://perso.wanadoo.fr/scmsa/optimisa.htm(...)
Plus généeralement cela releve du domaine de la recherche opérationel, la encore google est ton ami.
J'espere que cela a eclaircie un peu les choses
[^] # Re: c'est plutôt des métaheuristiques
Posté par nojhan (site web personnel, Mastodon) . Évalué à 10.
Supposons que tu peux décrire la qualité de la sortie de ton modèle par une fonction f(x1,x2,...,xn) (par exemple décrivant l'écart entre la sortie et tes données). Ce que tu sembles vouloir c'est de minimiser cet écart (on parle de problème "inverse").
Tu as donc un problème dit d'optimisation, où le but est de trouver le jeu de paramètre produisant la meilleure solution possible (on parle d'optimum).
Effectivement les algorithmes génétiques sont très utilisés dans ce genre de problème, cependant ce sont loin d'être les seuls algos de ce genre (l'effet de pub de la métaphore est assez incroyable).
Ces algos sont appelés des "métaheuristiques", et on les utilises sur des problèmes d'optimisation "difficile" (présence d'optima locaux, non dérivabilité, etc. bref ça dois être ton cas si j'ai bien compris).
Même si les algorithmes génétiques (on dit aussi "évolutionnaires") sont les plus connus, ce sont loin d'être les plus évident à manipuler. Je te conseillerais de regarder un peu ce qui se fait dans le domaine, il y a des algos plus facile à programmer et à manipuler (en ce moment j'aime bien les algorithmes à estimation de distribution, mais il y a aussi le recuit simulé, qui est vraiment simple et puissant).
Je te déconseille les réseaux de neurones pour faire de l'optimisation de ce genre, c'est sympa mais pas toujours très adapté.
Et puis allez soyons fou, je vais te conseiller un bouquin en français sur le domaine qui est sorti cette année justement :
http://www.eyrolles.com/Informatique/Livre/index.php?ouv_ean13=9782(...)
Si le domaine t'intéresse, n'hésites pas : nojhan (il est chez) ifrance.com
Comme je suis un gars sympa, voilà tout un tas de pointeurs sur le domaine :
http://www.pvv.org/~columbus/acoide/(...) -- ACOIDE : ACO dynamic environment
http://opeal.sourceforge.net/(...) -- Algorithm::Evolutionary Readme File
http://charlemagne.sourceforge.net/(...) -- Charlemagne - Homepage
http://www.coyotegulch.com/algorithm/cppalgor/Evocosm/Evocosm2.html(...) -- Coyote Gulch Productions - Algorithmic Conjurings - libevocosm
http://minimum.inria.fr/evo-lab/EVO-easea.html(...) -- EASEA millenium edition (v0.6c)
http://eodev.sourceforge.net/(...) -- EO Evolutionary Computation Framework
http://lancet.mit.edu/ga/(...) -- GAlib: Matthew's Genetic Algorithms Library
http://www.math.uni-augsburg.de/opt/goblin.html(...) -- GOBLIN : graph problems
http://solon.cma.univie.ac.at/~neum/glopt.html(...) -- Global Optimization
http://www.theblueplanet.org/JSimul/html/JSimul_readme.html(...) -- JSimul - A JAVA-based simulated annealing package
http://www.logilab.org/projects(...) -- Logilab.org - Projects
http://www.gel.ulaval.ca/~beagle/index.html(...) -- Open BEAGLE W3 Page
http://openai.sourceforge.net/(...) -- OpenAi - - Creating the standard for Artificial Intelligence
http://klobouk.fsv.cvut.cz/~ondra/pexeso/pexeso.html(...) -- PEXESO library
http://cyvision.if.sc.usp.br/~rfabbri/sip/(...) -- SIP - Scilab Image Processing Homepage
http://sourceforge.net/projects/dione/(...) -- SourceForge.net: Project Info - dione
http://vnsheuristic.ull.es/en/index/index.php(...) -- VNSHeuristic - The Official 'Variable Neigborhood Search' Site
http://freshmeat.net/projects/easea/?topic_id=71%252C72%252C97%252C(...) -- freshmeat.net: Project details for EASEA
http://www.cs.wm.edu/~va/software/DirectSearch/direct_code/(...) -- Recherche locale
[^] # Re: c'est plutôt des métaheuristiques
Posté par QuYuan . Évalué à 3.
peut-on faire des analyse psycho-historiques avec ce genre de méthodes ?
Plus sérieusement, merci beaucoup !
Je commence à m'interresser au Traitement automatique des langues, et ton message semble follement utile.
Je bookmark et je te t'interresoie !
[^] # Re: c'est plutôt des métaheuristiques
Posté par Lebas Sébastien . Évalué à 1.
Déja, le TAL ça rassemble plusieurs choses différentes ;)
- En analyse de texte, je ne vois pas trop comment c'est utilisable ...
- En génération de texte, il y a peut-être une utilisation possible, mais de l'ordre du détail "décoratif", alors qu'il y a encore des problèmes plus importants ...
Enfin bon, je ne connais quand même pas le domaine à fond, mais les métaheuristiques me paraissent pas vraiment un pré-requis ;) Par contre, tu peut jeter un oeil à la théorie des graphes et aux transducteurs (même s'il n'y a pas que ça) ...
Et puis tu verras le TAL c'est marrant, toutes les questions de type "est-ce que cette forme / phrase est correcte" sont des trolls en puissance :)
(Et pour revenir au sujet des métaheuristiques, le recuit simulé roxor, mais si je serais bien incapable d'expliquer pourquoi ça marche aussi bien ;) )
[^] # Re: c'est plutôt des métaheuristiques
Posté par nojhan (site web personnel, Mastodon) . Évalué à 2.
Parce que ça estime une distribution :
http://lass.univ-lyon1.fr/gtscdd/journee01avr/Transp_Collette_01_04(...)
(merci Yann ;)
[^] # Re: c'est plutôt des métaheuristiques
Posté par Olivier Grisel (site web personnel) . Évalué à 3.
Il existe aussi la recherche avec tabou comme méthode métaheuristique simple à implémenter ("tabu search" en anglais dans google).
Sinon pour les algos évolutionnaires il existent des libs libres comme par exemple :
EO (C++ / LGPL) : http://eodev.sf.net(...)
gaul (C / GPL) : http://gaul.sourceforge.net/(...)
Mais honnêtement, avec des temps de run de plus de 10h par évaluation d'une solution candidate, les algos evolutionnairesrisquent d'être très longs à converger. Peut-être faudrait il essayer d'accélerer la fonction d'évaluation quitte à la dégrader un peu sa précision (au moins pour calculer les premiers points).
Les algos evolutionnaires ont aussi l'avantage d'être naturellement distribuables sur plusieurs machines ("island model evolutionary computation" dans google) et il pourrait être envisageable de répartir le cacul sur plusieurs machines ou processeurs (avec MPI et MPICH par exemple).
[^] # Re: c'est plutôt des métaheuristiques
Posté par nojhan (site web personnel, Mastodon) . Évalué à 2.
Cependant je continue de déconseiller ces algos à des béotiens, ils sont particulièrement difficile à manipuler (alors avec des bidouilles du genre des îles, laissez tomber).
# resau de neurones ou max de vraisemblance ?
Posté par gregorysainton . Évalué à 4.
peut etre que tu connais deja tout ca , mais en general pour optimiser plusieurs parametres,
on utilise des resaux de neurones qui permettent une optimisation globale meme si les variables d'entree sont corelees.
un soft de resaux de neurones simple est SNNS. (je ne m'en suis jamais servi mais d'apres ce qu'on m'en a dit c'est pas tres complique a mettre en oeuvre.)
la deuxieme grande methode, encore plus simple a coder (qques lignes) c'est le maximum de vraisemblance. tu trouveras plein d'infos par google... mais je ne suis pas sur que ca colle exactement a ce que tu veux faire ... a voir..
Désolé si je développe pas plus, c'est juste des pistes, y'a vraiment enormément d'infos sur le web les reseaux de neurones et les max de vraisemblance.
# Montecarlo
Posté par Nicolas Boulay (site web personnel) . Évalué à 4.
En gros, tu tires au hasard chacun des paramètres de façon équiprobable. Il faut donc étudier le système pour estimer ses probabilités. Ensuite, tu fais le nombre de run que tu veux. Le résultat est censé être très proche du calcul complet.
"La première sécurité est la liberté"
[^] # Re: Montecarlo
Posté par Beretta_Vexee . Évalué à 4.
Mais il faut faire attention au domaine de definition des paramètres sans quoi tu dois faire un nombre de tirage preparatoir assez impressionnant.
# Merci a tous...
Posté par gyhelle . Évalué à 0.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.