IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Méthodes prédictives Discussion :

Extrapolation, interpolation et réseau de neurones


Sujet :

Méthodes prédictives

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut Extrapolation, interpolation et réseau de neurones
    Bonjour à tous,

    J'ai effectué quelques recherches sur le net et plutôt que de me perdre sur la toile je préfère m'adresser à des spécialistes.

    Je possède une base de données qui répertorie N expériences chacune caractérisée par X paramètres (plus ou moins couplés) décrivants les conditions initiales de mes expériences et Y résultats (émanant de divers diags).
    L'idée serait de pouvoir interpoler et extrapoler les résultats avec des jeux d'entrée non testés expérimentalement.
    Je peux aussi éventuellement (j'imagine...) compléter ma base expérimentale avec des calculs numériques.
    Si le système est en plus capable de faire le tri entre paramètres d'initialisation couplés et indépendants c'est un plus

    Je suis tombé sur une thèse et un bouquin qui parlait d'Analyse de données par réseaux de neurons auto-organisés mais bon je ne sais pas trop de quoi il retourne pour l'instant. Je pense aussi avoir compris que on pouvait déléguer les fonctions d'apprentissage à l'algo.

    Je souhaiterais :
    - Savoir si l'utilisation d'un réseau de neurones est adapté à mon problème.
    - Avoir quelques idées sur les types de réseaux de neurone
    à utiliser dans mon cas
    - Si possible avoir un bouquin ou une référence à lire qui me permette d'implémenter ca sans me perdre dans des notions mathématiques trop abstraites.

    Merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Par défaut
    Bonjour,

    Si ton problème est de faire de l'interpolation, oui je pense que tu peux utiliser des techniques d'apprentissage supervisé (comme avec certain réseaux de neurones).

    Pour les analyses statistiques, j'utilise personnellement R.
    http://www.r-project.org/


    Voici un petit exemple de ce que tu peux faire avec R (il suffit de copier/coller le code dans la console de R):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    library(nnet)
     
    # Génère 5000 échantillons d'un problème d'entrée/sortie avec deux variables (paramètres) d'entrée.      
    x1<-runif(n=5000 , min=-1 , max=1)
    x2<-runif(n=5000 , min=-1 , max=1)
    y <-  x1^2 + cos(x2) # La fonction de sortie (non bruité)
     
    # Construit le modèle (ici un perceptron multicouche avec 3 neurones caché). 
    model.nn <- nnet (data.frame(x1=x1,x2=x2),y,size=3,maxit=10000,trace=FALSE,linout=TRUE)
     
    # utilise le modèle pour faire une prédiction 
    print( predict(model.nn,data.frame(x1=0,x2=0))  )
    ## --> 0.9983301
    Dans cet exemple, je commence par définir un problème de modélisation avec 5000 échantillons où la fonction cible est x1^2 + cos(x2). J'utilise les 5000 échantillons pour construire un modèle et lui demande ensuite de m'interpoler la valeur de la fonction cible avec x1=0 et x2=0. Le réseau de neurones me propose la valeur 0.9983301 (la vrais valeur est 1).



    Les réseaux de neurones ne sont pas les seuls algorithmes que tu peux utiliser pour l'interpolation. De plus il faut définir la structure optimale de ton réseau (par exemple le nombre ne neurone caché (ici 3)) et sa c'est un autre problème (appelé sélection de modèle).

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut
    Et bien disons qu'il s'agit de véritables expériences de physique. Avec des géométries, composition des matériaux et autres paramètres qui diffèrent d'une expérience à l'autre.
    Donc je voudrais pouvoir faire de la conception de nouvelles expériences sans avoir à tatonner.
    Je veux donc trouver un réseau de neurones qui me permettent d'anticiper les résultats de nouvelles expériences en se basant sur les expériences passées.
    De plus certains types de comportement m'intéressent plus que d'autres donc je voudrais pouvoir optimiser les expériences en me servant de ce même réseau de neurones.

    Peux-tu me confirmer que ce bouquin et notamment le chapitre 9 sur les réseaux auto-organisés de ce bouquin http://www.lavoisier.fr/notice/fr057305.html correspond à mes attentes ou penses-tu que d'autres méthodes plus performantes puissent répondre à ma problématique ?
    Sinon, quelle type de réseau de neurone et de lecture me conseilles-tu?

    P.S.: je préfèrerais coder le truc moi-même ou au moins avoir accès aux sources (si pas trop compliquées)

    Merci encore

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 14
    Par défaut
    Je ne sais pas dans quel domaine tu bosses, mais ça me fait penser à ce que je faisais dans la recherche en métallurgie, avec des modèles à construire sur des expériences assez coûteuses et longues à réaliser.

    La plupart des méthodes de régression, comme les réseaux de neurones, te donneront de bons résultats en interpolation mais pas terribles en extrapolation : il te faudra donc élargir ton champ expérimental si tu veux avoir un modèle correct.

    Si tu as déjà fait des expériences, tu peux commencer par régler un réseau de neurones dessus (ou une simple régression multilinéaire type PLS qui met en évidence les corrélations des entrées entre elles et leur pouvoir de prédiction sur les sorties).

    Une fois ce premier modèle obtenu, il existe un domaine du savoir appelé la plannification expérimentale (experimental design) qui se préoccupe de déterminer les meilleures prochaines expériences à faire pour optimiser un modèle disponible. Particulièrement pour un modèle en réseau de neurones ou PLS, tourne-toi vers les publications de Jean-Pierre Gauchi (ESPCI).
    Pour la construction du modèle, si c'est une vraie application et pas juste des excercices, tu auras à coeur de prendre en compte le surapprentissage pour éviter de construire un modèle peu productif : regarde du côté des travaux de Gaëtan Monari pour voir le principe des leviers et du calcul du meilleur compromis apprentissage/validation.

    Si tu as des questions n'hésite pas à envoyer un MP, j'ai des scripts en Python pour ces choses-là (PLS, neurones, plans d'expériences linéaires et exploration d'espace). Ce sont des moulinettes maison, pas super commentées mais c'est robuste et ça tourne vite et bien, faudrait que j'en fasse un truc plus distribuable. C'est axé pour la recherche en industrie, donc sans trop de fioritures même si la la rigueur est de mise lors de la conception.

    Un truc à prendre en compte, les régressions un peu robustes demandent beaucoup d'expériences par rapport aux paramètres que tu vas régresser dessus : c'est pourquoi des méthodes linéaires sont souvent pas si mal, car ça ne sert à rien de régler un réseau de 20 paramètres avec une base de 20 expériences (même si l'algo va trouver une solution malgré tout).

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Par défaut
    Il existe une très grande variété de types d'algorithme que tu peux utiliser. Par exemple dans les classiques tu as : les réseaux de neurones, les arbres de régression ou de classification, les modèles locaux (KNN ou lazy-learning)... et il ne faut pas oublier les modèles polynomiaux comme les linéaires (qui, sur des problèmes très simple, donnent les meilleurs résultats).

    Ton problème semble être un problème classique d'apprentissage supervisé avec une fonction d'entré/sortie que tu cherches à estimer sur base d'exemples. Il n'y a pas un type d'algorithme qui marche toujours mieux que les autres (voir le No free lunch theorem), c'est fonction du problème et il faut donc réaliser une recherche sur le type d'algorithme d'apprentissage optimal.

    L'apprentissage artificiel est un vaste sujet. Je ne connais pas ce livre mais il me semble bien.

    Pour les réseaux de neurones, le type de réseau qui tu as besoin sont, je pense, simplement les 'perceptrons multicouche' et l'algorithme d'ajustement des paramètres est l'algorithme de 'rétro-propagation du gradient'. Je suppose que tu trouveras les détails dans le livre.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut
    Merci de toutes ces précisions!
    J'ai en fait une base d'expériences, genre une grosse centaine et on va dire surement 10 à 20 paramètres indépendants d'initialisation.
    Pour ce qui est de l'extrapolation, c'est plutôt un voeu pieux qu'une réalité Je ne peux pas me permettre de sortir du cadre des expériences déjà réalisées, en tout cas pas sans pouvoir prouver qu'elles fonctionneront comme on le pense.
    Je veux surtout pouvoir créer des expériences optimisées à partir de la base de données à disposition. Je peux aussi dans une moindre mesure (car rien ne vaut l'expérience) même me servir de la simulation numérique qui rend pas trop mal compte des résultats expérimentaux.
    Ainsi si je peux confirmer les résultats de mes simulations numériques grace à des modèles de régression cela n'apportera que plus de crédit à mes prévisions.

    Je vais consulter les modèles dont vous parlez et acheter le livre en question pour me faire une idée plus précise.

    Merci

    P.S.: OliveK je te PM dans la foulée car ton expérience m'intéresse au plus haut point ;p

Discussions similaires

  1. Réponses: 60
    Dernier message: 12/05/2011, 14h18
  2. Programmer un réseau de neurones impulsionnels ou SNN
    Par @matlab@ dans le forum MATLAB
    Réponses: 3
    Dernier message: 12/02/2007, 10h47
  3. Réseau de neurones - exporter
    Par kairn_ dans le forum MATLAB
    Réponses: 2
    Dernier message: 25/01/2007, 10h21
  4. interface graphique, réseau de neurones
    Par korp69 dans le forum C++
    Réponses: 19
    Dernier message: 13/11/2006, 13h44
  5. Réseau de neurones - reconnaissance visage
    Par PrAbronsius dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 03/05/2006, 03h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo