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

Intelligence artificielle Discussion :

Précisions sur un réseau perceptron multicouche


Sujet :

Intelligence artificielle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 24
    Points : 13
    Points
    13
    Par défaut Précisions sur un réseau perceptron multicouche
    Bonjour,

    Grâce au tuto http://alp.developpez.com/tutoriels/...x-de-neurones/, j'ai réussi à écrire mon propre réseau perceptron avec un nombre de couches variable, mais je n'ai pas bien compris certaines choses :


    Dans le cadre d'un apprentissage supervisé,

    1)
    Lors de la rétropropagation du gradient :
    on calcule les deltas des neurones de la couche de sortie par la formule suivante : sortieObtenue * (1 - sortieObtenue) * (sortieAttendue - sortieObtenue)
    et on calcule les deltas des neurones des couches cachées par la formule suivante : sortieObtenue * (1 - sortieObtenue) * somme des erreurs des neurones de la couche suivante, pondérée par le poids reliant ce neurone au suivant.

    Je ne sais pas d'où sortent ces formules, sont-elles là parce que j'ai utilisé la fonction d'activation sigmoide ?
    (j'ai d'ailleurs lu qu'il serait utile qu'elle se dérive, mais je ne vois sa dérivée nul part, j'ai loupé quelque chose ?)

    2)

    Si je change ma fonction d'activation de sigmoide à heavy-side, mon réseau ne converge plus pour l'exemple du XOR. Changer la fonction d'activation implique d'autres changements ? ou c'est une erreur dans mon code (que je peux founir si vous voulez lire) ?

    Si quelqu'un pouvait m'éclairer, ce serait super.
    Merci !

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 617
    Points : 188 585
    Points
    188 585
    Par défaut


    La dérivée n'est pas mentionnée explicitement, mais elle correspond aux alpha*(yk - sk)*x_i des sections V-1 et V-2. Les formules de rétropropagation ne sont qu'une application de la dérivation des fonctions composées et utilisent notamment la dérivée de la fonction d'activation.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Salut, merci de ta réponse, mais je ne vois pas comment on passe de 1 / (1+e-x) à alpha*(yk - sk)*x_i, tu connais un site qui expliquerai ça ?

    Et ça explique donc aussi pourquoi la fonction heavy-side ne fonctionne pas, elle n'a pas de dérivée !

  4. #4
    Membre actif Avatar de BioKore
    Homme Profil pro
    Dresseur d'Alpaga
    Inscrit en
    Septembre 2016
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Dresseur d'Alpaga

    Informations forums :
    Inscription : Septembre 2016
    Messages : 300
    Points : 219
    Points
    219
    Par défaut
    Bonjour,

    Étant moi aussi novice dans la création et l'utilisation des réseaux de neurones, je me permet de répondre à tes questions qui sont plus "mathématiques" qu'autre chose finalement.

    En réalité, le g(x)*(1-g(x)) (ou encore oi*(1-oi) dans le cours de alp) correspond à la dérivée de la fonction sigmoïde. Le calcul du delta avec cette base indique implicitement que les fonctions d'activation des neurones sont sigmoïdes...
    Si tu souhaite voir d'où cela vient, je t'invite à lire la fin du cours d'initiation de alp dans lequel tu retrouveras ces réponses.

    Enfin, pour la fonction heaviside, si tu as suivi ce que je viens de dire ici, tu devrais comprendre par toi même pourquoi tu ne peux pas l'utiliser tel-quel ici : cette fonction n'est pas dérivable. Je ne me suis pas trop penché sur le sujet encore, donc je ne peux pas te dire comment calculer le delta d'une telle fonction.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Oui j'ai maintenant pu voir d'où venaient ces chiffres mystérieux, avec une superbe page wikipédia (entre autre) https://fr.wikipedia.org/wiki/Fonction_d%27activation .

    C'est compris pour la fonction heaviside, merci de ta réponse.

Discussions similaires

  1. Questions sur les perceptrons multicouches
    Par alcino dans le forum Méthodes prédictives
    Réponses: 0
    Dernier message: 14/04/2010, 21h23
  2. Réponses: 11
    Dernier message: 03/03/2010, 23h19
  3. Eclaircissements sur les perceptrons multicouches
    Par tnarol dans le forum Méthodes prédictives
    Réponses: 3
    Dernier message: 02/08/2008, 19h34
  4. Précision sur Oracle 9iAS r2
    Par Patmane dans le forum Oracle
    Réponses: 9
    Dernier message: 18/03/2007, 04h41
  5. Redimensionnement des Paquets IP sur un Réseau Local
    Par Bonoboo dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 15h40

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