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 :

Réseaux de neurones et seuil


Sujet :

Méthodes prédictives

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut Réseaux de neurones et seuil
    Bonjour,

    Je débute en réseaux de neurones et j'ai une question :

    D'après ce que j'ai compris, un neurone s'active si la somme de ses entrées est supérieur à un seuil.
    On peut aussi utiliser un "bias" (je sais pas comment le traduire) qui agit comme le seuil et qui peut par contre être modifié lors de l'apprentissage.
    Mais j'ai lu que ce seuil doit être commun à toute les neurones, mais dans un exemple que j'ai trouvé, le bias était mis à chaque neurone comme une entrée supplémentaire et pouvait être modifié indépendamment d'une neurone à l'autre.

    Est ce que les deux méthodes sont possibles (un seul "bias" ou un par neurone), et quelle est la meilleure d'après vous ?

    Merci

  2. #2
    Alp
    Alp est déconnecté
    Expert éminent sénior

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Je pense tout simplement que ça dépend de l'utilisation que tu fais de ton réseau de neurones.

    Si après ton étude tu constate que chaque neurone doit avoir le même seuil, hé bien voilà. Sinon, tu vois pour fixer un seuil par neurone.

    Généralement, on modélise le seuil comme un poids affecté à une valeur "-1" comme entrée.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    ok, donc les deux sont possible, merci !

    J'ai maintenant deux autres questions :

    - Pour la couche de neurone de sortie, on peut en mettre autant que le nombre de réponses possibles ( n ) (donc chaque neurone de sortie donne un poids selon ses entrées et on prends le poids le plus important).
    Mais est ce que ça pourrait revenir au même de mettre une seule neurone dans la couche de sortie qui donnerait comme réponse une valeur parmi n valeurs possibles ?

    - Souvent il est dit que le nombre de neurones dans la couche cachée doit être fixée empiriquement, et qu'il n'y à pas de théorie qui le fixe.
    Mais dans un article que j'ai lu ils en mettent un nombre égal aux nombres de neurone d'entrée * nombre de neurones de sortie.
    Est ce que cela à un sens de faire ça d'après vous ?

    merci

  4. #4
    Alp
    Alp est déconnecté
    Expert éminent sénior

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par pasdeface Voir le message
    J'ai maintenant deux autres questions :
    Profite, profite, on est là pour ça

    Citation Envoyé par pasdeface Voir le message
    - Pour la couche de neurone de sortie, on peut en mettre autant que le nombre de réponses possibles ( n ) (donc chaque neurone de sortie donne un poids selon ses entrées et on prends le poids le plus important).
    C'est le cas lorsque l'on utilise un RdN pour de la classification oui.

    Citation Envoyé par pasdeface Voir le message
    Mais est ce que ça pourrait revenir au même de mettre une seule neurone dans la couche de sortie qui donnerait comme réponse une valeur parmi n valeurs possibles ?
    Le fait est qu'il ne faut pas oublier que la sortie d'un réseau de neurones est une valeur renvoyée par la fonction d'activation. Une fonction d'activation ne remplit pas cette "fonctionnalité". Toutefois, tu peux diviser les valeurs d'arrivée en n intervalles, ce qui s'approcherait de ce que tu veux faire.

    Citation Envoyé par pasdeface Voir le message
    - Souvent il est dit que le nombre de neurones dans la couche cachée doit être fixée empiriquement, et qu'il n'y à pas de théorie qui le fixe.
    Mais dans un article que j'ai lu ils en mettent un nombre égal aux nombres de neurone d'entrée * nombre de neurones de sortie.
    Est ce que cela à un sens de faire ça d'après vous ?
    Je ne connais pas assez la théorie des réseaux de neurones pour t'éclairer sur ça. Toutefois, je ne parviens pas à donner de sens logique à cette valeur. Tu peux donner le lien vers cet article ?

    Je n'ai d'ailleurs jamais lu où que ce soit de démarche pour se diriger vers un nombre correct de neurones dans la couche cachée.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    Citation Envoyé par Alp Voir le message

    Je ne connais pas assez la théorie des réseaux de neurones pour t'éclairer sur ça. Toutefois, je ne parviens pas à donner de sens logique à cette valeur. Tu peux donner le lien vers cet article ?
    En fait j'ai confondu avec le nombre de neurone d'une autre couche
    Par contre ils calculent bien le nombre de neurone de la couche cachée, mais d'une autre manière :
    (nombre d'objets utilisés pour l'apprentissage) * (nombre d'objets différents à reconnaitre (donc la taille de la couche de sortie) ).
    Je sais pas si ça a plus de sens.
    Pour l'article on peut le trouver là : http://www.aegean.gr/culturaltec/can...05-08-0095.pdf

    Fin de la page 8 :
    The second layer is the middle/pattern layer, which organises the training set in such a way, that an individual processing element represents each normalised input vector. Therefore, it consists of 180 nodes, which correspond to the total amount of the used training patterns (5 image patterns of each one of the 36 characters).
    Après ça vient peut etre aussi de la manière dont l'apprentissage est fait, car ils utilisent une fonction d'activation et d'apprentissage un peut compliqué.

  6. #6
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par pasdeface Voir le message
    Est ce que les deux méthodes sont possibles (un seul "bias" ou un par neurone), et quelle est la meilleure d'après vous ?
    Avoir un seuil commun à tout le monde ne me parait avoir aucun sens. Peut-être obtiendras-tu des résultats satisfaisants, mais j'ai comme un gros doute.

    Pour la couche de neurone de sortie, on peut en mettre autant que le nombre de réponses possibles ( n ) (donc chaque neurone de sortie donne un poids selon ses entrées et on prends le poids le plus important).
    Mais est ce que ça pourrait revenir au même de mettre une seule neurone dans la couche de sortie qui donnerait comme réponse une valeur parmi n valeurs possibles ?
    Les réseaux compétitifs donc. (et ils ont peut-être même un autre nom que j'ai oublié)
    Cela marcherait mal. Un exemple tout bête. De la reconnaissance d'écriture.
    Les caractères '3' et '8' se ressemblent beaucoup, bien plus que '7' et '8' par exemple. Pourquoi est-ce que les sorties attendues pour ces deux nombres auraient un écart de 5?
    Avec une telle approche, on introduit des contraintes supplémentaires qui distraient un RdN.

    Laisse au contraire le réseau établir un pseudo pourcentage de chances que la grille de pixels contienne chacun des 10 chiffres. Après, déterminer quel est le bon est un jeu d'enfants pour un ordinateur, un simple arg_max et c'est plié.


    Concernant la couche cachée.
    Il n'y a pas de règles autres qu'empiriques pour déterminer la taille de la couche cachée. Certains prennent la même qu'en sortie, d'autre la même qu'en entrée, d'autre la dimension obtenue par application de l'ACP sur les données du problème, ....
    M'est avis que chaque problème demandera un choix propre.


    5 images par caractères pour l'apprentissage ? ... C'est des contraintes à la noix -- réalistes selon le domaine, mais qui n'aident pas. Leur heuristique de dimensionnement me parait disproportionnée.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  7. #7
    Membre régulier

    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
    Points : 105
    Points
    105
    Par défaut
    Mettre une seule sortie n'a que peu de sens, à cause des raisons que certains ont évoqué, mais surtout parce que ça poserait un gros problème pour determiner une fonction de coût valable.
    Il ne faut pas oublier que la fonction de coût est un (hyper-)paramètre à part entière du réseau, et les résultats en dépendront totalement.
    En plus des interets évident d'avoir des probabilités pour chaque classes, cela permet d'utiliser une fonction de coût telle que la log probabilité négative.



    Quant à la taille de la couche cachée, sauf cas particulier (réseaux à convolution), il n'y rien d'autre que les méthodes empiriques...
    Pour exemple, prend MNIST, qui a l'avantage d'être proche de l'article. La taille optimale de la couche cachée, suivant les réseaux, est entre 500 et 1000. Il s'agit pourtant d'un problème en dimension 784, et avec 10 classes. On est loin de la formule donnée, bien que ça puisse fonctionner pour eux.



    En ce qui concerne le seuil, le but du réseau est justement de determiner les paramètres optimaux. Si il se trouve qu'un biais équivalent à chaque neuronne est ce qu'il y a de mieux, il le fera (du moins il y tendra). Quand on réalise un réseau de neurones, on cherche à la brider le moins possible (dans la limite des méthodes utilisées, évidement).
    "The worst errors I've ever seen do not came from no knowledge, but from having just the the right amount of it, too small to really understand what you're doing, but enough to think you did. That amount of knowledge, is evil."

  8. #8
    Alp
    Alp est déconnecté
    Expert éminent sénior

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par Aszarsha Voir le message
    En ce qui concerne le seuil, le but du réseau est justement de determiner les paramètres optimaux. Si il se trouve qu'un biais équivalent à chaque neuronne est ce qu'il y a de mieux, il le fera (du moins il y tendra).
    En effet, c'est tout à fait ça dont il s'agit. Et si ça se trouve, aucun neurone n'aura un seuil égal à celui d'un autre. C'est après un bon apprentissage que tu pourras le voir.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    Je vous remercie pour toutes vos réponses, c'est beaucoup plus clair maintenant

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

Discussions similaires

  1. Poids synaptique et seuil sur réseaux de neurones
    Par Tadj13000 dans le forum MATLAB
    Réponses: 0
    Dernier message: 18/03/2013, 21h48
  2. Réseaux de neurones, initialisation du seuil.
    Par Epsilon012 dans le forum Méthodes prédictives
    Réponses: 5
    Dernier message: 16/09/2010, 14h01
  3. réseaux de neurones RBF
    Par liliana07 dans le forum C++Builder
    Réponses: 2
    Dernier message: 22/03/2007, 11h49
  4. Les réseaux de neurones ??? Ouvrage, site, tutos ???
    Par wallys dans le forum Méthodes prédictives
    Réponses: 5
    Dernier message: 21/03/2006, 14h08
  5. Réseaux de neurones
    Par kayin dans le forum Méthodes prédictives
    Réponses: 8
    Dernier message: 10/03/2004, 14h22

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