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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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.

+ Répondre à la discussion
Cette discussion est résolue.

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