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 :

FANN: neurones d'entrée


Sujet :

Méthodes prédictives

  1. #1
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut FANN: neurones d'entrée
    Bonjour,

    Je débute dans les réseaux neuronaux et je me suis décidé a me tourner sur la librairie FANN qui semble avoir bonne presse. Pour information, j'utilise Delphi et son composant Tfannnetwork.

    J'aurais une question sur la présentation de données a l'entrée d'un reseau. L'exemple de la fonction XOR est cité mais j'aurais aimé savoir comment présenté des "données groupées" du style:

    (x1,y1,z1)
    (x2,y2,z2)
    ...
    (xn,yn,zn)

    ( Les couples de données representant une entité qui pourrait etre par exemple les caractéristiques d'une personne (age,sexe,taille,poids) )

    Faut-il les présenter de manière séquentielle en affectant un neurone par données et le réseau se débrouillant tout seul avec ... ou faut il signifier au réseau qu'il s'agit de groupes?!

  2. #2
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Je pense que donner tout ça de manière séquentielle au réseau est préférable. Enfin je ne vois pas trop comment on peut "grouper"...

    De toute manière, une fois que toutes les informations seront données au réseau, elles ne représenteront plus que des nombres qui permettront de corriger des poids, tout ça avec une abstraction mathématique.

  3. #3
    Membre éclairé

    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Par défaut
    Citation Envoyé par ghost942 Voir le message
    Faut-il les présenter de manière séquentielle en affectant un neurone par données et le réseau se débrouillant tout seul avec ... ou faut il signifier au réseau qu'il s'agit de groupes?!
    On parle bien de réseau de neurones là ?
    Parce que "affecter un neurone par données" ne veux vraiment rien dire...
    Je ne voit pas non plus ce que peut bien vouloir dire "signifier au réseau qu'il s'agit de groupes".

    Tu code ton réseau (ou tu utilises une bibliothèque qui le fait), puis tui lui fournie une matrice représentant l'ensemble d'entrainement qui va être parcourue en époques. A chaque époque le réseau va évaluer le gradiant de l'erreur et modifier ses poids en conséquence.

  4. #4
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut
    Merci pour ces informations.

    J'ai monté mon réseau de neurones. Je me suis basé sur l'exemple de la fonction Xor tout simplement fournie avec la librairie ( FANN)

    Mais je me posais une question.

    Pour la phase d'apprentissage, je lui présente les échantillons de manière séquentiellet et toujours donc, dans la même ordre. Le nombre d'échantillons est relativement important (presque 500 000).

    Est ce qu'il serait judicieux de lui présenter ces échantillons de façon aléatoire plutot que séquentielle?

  5. #5
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Ne te préoccupe pas trop de l'ordre dans lequel tu présente les échantillons mais plutôt de leur pertinence, ce qui consiste à prendre des échantillons avec des informations caractéristiques aussi variées que possible, afin que ton réseau de neurone puisse généraliser au mieux, ayant fait face à des situations aussi diverses que possible.

    Je te renvoie à ce sujet vers mon article sur la théorie des réseaux de neurones

  6. #6
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut
    ah ok. Merci bien. Je vais aller lire ta documentation!

    J'avais un peu peur que le réseau acquière une forme d'expérience 'séquentielle' alors qu'en définitif, les données sur lesquelles il
    doit s'appliquer ne sont bien sur pas du tout séquentielles.

    Egalement, avant de lire ton article.

    Toujours dans la phase d'apprentissage, j'ai deux boucles

    Boucle Epoques
    {
    Boucle Echantillons
    {
    ......
    MSE=Entrainement Reseau
    }
    }

    Toutes les XX epoches, j'effectue une évaluation de réussite sur des données que le réseau ne connait pas. Je fais une sauvegarde fichier de ce reseau.

    Dans la boucle d'échantillons, je mesure et affiche la mean square error de sortie. Or cette erreur (MSE) pour une itération de la boucle 'echantillon', varie d'un minimum a un maximum ~0 -> ~0.99.

    Comment doit 'on percevoir cette variation du MSE? Est ce qu'il vaut mieux que je sauvegarde mon reseau quand le MSE atteint une valeur basse (proche de zéro) ou tout simplement comme je le fais deja, en fin de boucle.

  7. #7
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Ce que tu peux faire c'est sauvegarder après chaque époque. Et tu reprends le réseau avec la plus petite erreur.

    C'est à dire : après entrainement, au début, l'erreur va diminuer jusqu'à atteindre un minimum. Ensuite, elle va faire un peu n'importe quoi sur des exemples que tu ne connais pas (sur-apprentissage / overfitting). Tu en déduiras alors que là où tu as eu le minimum sur les exemples inconnus, c'est ton réseau de neurone (quasi-)optimal.

  8. #8
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut
    Citation Envoyé par Alp Voir le message
    Ce que tu peux faire c'est sauvegarder après chaque époque. Et tu reprends le réseau avec la plus petite erreur.
    C'est à dire : après entrainement, au début, l'erreur va diminuer jusqu'à atteindre un minimum. Ensuite, elle va faire un peu n'importe quoi sur des exemples que tu ne connais pas (sur-apprentissage / overfitting). Tu en déduiras alors que là où tu as eu le minimum sur les exemples inconnus, c'est ton réseau de neurone (quasi-)optimal.

    Pour être sûr que j'ai bien saisi ton explication.


    Cas numero1 :

    Après chaque chaque époque révolue (non en cours), j'effectue une sauvegarde du réseau et cela pendant un nombre determiné de périodes
    (32000 par exemple).

    Ensuite, j'évalue chaque réseau sauvegardé sur des échantillons non-connus, et le réseau ayant obtenu le meilleur taux de réussite sera le réseau optimal.


    Cas numero 2 :

    Pour chaque présentation d'échantillon d'apprentissage, je sauvegarde le reseau.

    A l'issu de la période, j'évolue les réseaux sauvegardés et je prends celui qui a obtenu le meilleur taux de réussite sur des échantillons inconnus.

  9. #9
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    C'est le numéro 1

    Le second ne serait assez efficace que pour l'échantillon pour lequel l'erreur est minimale, et les échantillons qui s'en rapprochent. Il faut ici minimiser l'erreur commise sur tous.

  10. #10
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut
    Ouf! J'ai peur un instant!

    Je te remercie pour tes explications et conseils

    Ton article est très interessant aussi d'ailleurs, cela dit, au passage.

  11. #11
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Merci

    J'ai essayé de vulgarisé, mais c'est pas gagné

    Ton problème est résolu ?

  12. #12
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut
    La tâche est ardue avec le R.N! Difficile de faire simple je pense. Mais, il est vrai qu'en technicien de mon état, je m'interesse plutôt aux fonctionnalités de cette 'boite noire' que l'intérieure de cette dite boite. Je laisse cela aux experts!

    Mais même en fonctionnalité, cela reste relativement complexe.

    Néanmoins, comme tu le dis dans ton article, la tâche a ne pas négliger c'est la préparation des échantillons à soumettre au réseau.

  13. #13
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Tout à fait. Si tu as un autre soucis n'hésite pas à poser ta question

  14. #14
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut
    J'aurais des questions mais elles seraient spécifiques a la librairie utilisée (FANN). Mais je crois que ce forum n'y est pas dédié...

  15. #15
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    C'est surtout que pour le moment il n'y a pas beaucoup d'utilisateurs de FANN sur ce forum. Après, que ça y soit dédié ou non, c'est autre chose

  16. #16
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut
    ah oui? Oh je pensais qu'elle était largement utilisée cette librairie!

    Perso, je la trouve très bien d'autant plus que l'utilise en Delphi avec son composant. Que demander de mieux!

  17. #17
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut
    Une autre question:

    Dans l'apprentissage de mon réseau, j'évalue environ 6 variables d'entrée et j'ai une variable de sortie (vrai/faux).
    Je lui présente, approximativement, en proportion sur 100 échantillons, 16 "vrais" et 84 "faux"

    Est ce que le reseau va tout de meme apprendre correctement malgré que ce taux disproportionné de vrai/faux?

  18. #18
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Ca ne dépend pas que de ça. En fait, plus il aura de situations diverses et variées pour lesquelles c'est vrai, plus il "saura" ce à quoi "vrai" correspond par rapport aux entrées. Idem pour faux. Donc évidemment plus tu as d'exemples (tant qu'ils sont divers et variés c'est bon) meilleur c'est, et ce pour "vrai" comme pour "faux". Ton réseau apprend à faire quoi ?

  19. #19
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut
    Des pronostics sportifs!

    Plus spécialement dédié a des courses. Qui ne tente rien, n' a rien

  20. #20
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Hmm ça me semble difficilement possible. Un réseaux de neurones ça permet de classifier / d'approcher une fonction. Hors, c'est incompatible avec le hasard... Car il y a une part de hasard non négligeable. A moins que tu connaisse avec précision l'état physique et mental des chevaux et des jokeys, ainsi que leurs capacités...
    M'enfin tu peux essayer, oui ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/05/2011, 22h57
  2. Reseau de neurones artificiel avec entrées à valeurs réelles
    Par TristanL dans le forum Méthodes prédictives
    Réponses: 3
    Dernier message: 12/05/2011, 10h39
  3. Fonction complexe pour un réseau neuronal (librairie FANN)
    Par laliloulelo dans le forum Méthodes prédictives
    Réponses: 0
    Dernier message: 11/04/2010, 01h23
  4. Réponses: 1
    Dernier message: 25/02/2009, 18h23
  5. [Cartes auto-organisatrices] Nombre de neurones dans la couche d'entrée
    Par Chatbour dans le forum Méthodes prédictives
    Réponses: 2
    Dernier message: 03/01/2009, 15h43

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