Disparité de succès de prediction d'un même reseau de neurones
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Disparité de succès de prediction d'un même reseau de neurones



  1. #1
    Loupsio

    Disparité de succès de prediction d'un même reseau de neurones


    ------

    Bonjour à tous

    J'aimerai comprendre pourquoi pour un même script, avec les mêmes données, le meme nombre d'epochs (ici 10 000), le meme learning rate etc..., il se peut qu'un réseau de neurone réussisse de bonnes predictions à l'epoch 2500 et soit excellent de l'epoch 2 500 a 10 000, et au run suivant, sans rien changer il n'arrive toujours pas a avoir de bonnes prédictions à l'epoch 10 000?

    Je sais que les poids initiaux sont choisis aléatoirement, mais après tout le reste suit la meme loi, les mêmes corrections, dans le meme sens etc.... donc je comprendrai que au lieu d'avoir de bonnes predictions a l'epoch 2500 , cela commence a 3500 voir 4000 et ensuite suive le même type de courbe d'amelioration, mais là, mes courbes ((prediction-target)^2) vont avoir 2 à 3 tendances differentes selon le run (ca ressemble souvent a une des 3 mises en image en dessous, mais je comprend pas pourquoi tant de différences, surtout entre la 1 et la 2, on dirait que le réseau de neurone ne se comporte pas du tout de la meme façon

    error_rate1.png
    error_rate2.png
    error_rate3.png

    Merci

    -----
    Dernière modification par Loupsio ; 30/07/2020 à 11h47.

  2. #2
    minushabens

    Re : Disparité de succès de prediction d'un même reseau de neurones

    et oui le problème avec ces techniques comme les réseaux de neurones c'est que ça marche mais on ne sait pas pourquoi. Et quand ça ne marche pas on ne sait toujours pas pourquoi.

  3. #3
    Loupsio

    Re : Disparité de succès de prediction d'un même reseau de neurones

    Oui mais il y a forcement une raison
    Je me demande si dans ce cas la ca revient pas au meme que sur un autre probleme que j'ai posté hier, ou les valeurs de sigmoid étant élevée, le calcul de la derivative sigmoide renvoyait 0 et ducoup la correction des poids etait w=w - 0 a cause de la derivative sigmoide et donc les poids restaient inchangés tout du long,

    Car la j'ai l'impression que celui là, un run sur deux 'il ne change pas les poids et renvoi donc toujours la meme réponse, ce qui expliquerait pourquoi dans certains cas il n'apprends pas et garde le meme taux d'erreur jusqu'a un epoch de 200 000, mais je suis pas assez calé en math pour dire si ca vient vraiment de là, ni pour comprendre pourquoi ca ne le ferais pas a chaque fois

  4. #4
    pm42

    Re : Disparité de succès de prediction d'un même reseau de neurones

    Citation Envoyé par Loupsio Voir le message
    J'aimerai comprendre pourquoi pour un même script, avec les mêmes données, le meme nombre d'epochs (ici 10 000), le meme learning rate etc..., il se peut qu'un réseau de neurone réussisse de bonnes predictions à l'epoch 2500 et soit excellent de l'epoch 2 500 a 10 000, et au run suivant, sans rien changer il n'arrive toujours pas a avoir de bonnes prédictions à l'epoch 10 000?
    Faire apprendre à un réseau de neurones, c'est chercher à minimiser une fonction. Si on se fait la représentation naive de la fonction comme une surface 2D, c'est donc de trouver la vallée la plus profonde.

    Comme on part d'un point aléatoire, on peut très bien tomber dans une vallée assez profonde pour ne pas en sortir et ne pas avoir le meilleur résultat ou pire et comme cela t'arrive, se retrouver dans une zone à la géométrie tellement complexe qu'on saute de point en point sans jamais trouver une vallée.

    Si on avait des algos généraux et efficaces pour trouver les extrémums dans toutes les circonstances et pour une très large classe de fonction, cela changerait le monde.
    Comme ce n'est pas le cas, on utilise des heuristiques et on essaie jusqu'à trouver quelque chose qui marche bien la plupart du temps.

    Dans ton cas, le plus probable est que tu ne sois pas dans une bonne configuration de ton réseau en effet et que donc celui ci soit instable.
    Ce travail sur les méta-paramètres est pointu et nécessite beaucoup d'expérience.

  5. A voir en vidéo sur Futura
  6. #5
    Loupsio

    Re : Disparité de succès de prediction d'un même reseau de neurones

    Citation Envoyé par pm42
    Faire apprendre à un réseau de neurones, c'est chercher à minimiser une fonction. Si on se fait la représentation naive de la fonction comme une surface 2D, c'est donc de trouver la vallée la plus profonde.
    Donc là ou la pente de la tangente vaut zéro (et donc par extension, la ou la prédiction correspond au target) c'est bien ca ?

    Comme on part d'un point aléatoire, on peut très bien tomber dans une vallée assez profonde pour ne pas en sortir et ne pas avoir le meilleur résultat ou pire et comme cela t'arrive, se retrouver dans une zone à la géométrie tellement complexe qu'on saute de point en point sans jamais trouver une vallée.
    mais lorsque on utilise la fonction sigmoid pour avoir tout qui est compris entre 0 et 1 et qu'ensuite on calcul l'erreur avec (prediction-target)^2, soit on est loin du target (et la pente est élevée, qu'elle soit positive ou negative puisque le cout est calculé au carré) , soit on est proche du target et la pente est proche de zéro, ducoup meme si c'est lent, ca devrait tout de même être progressif, je ne voit pas comment avec cette méthode cela peut tomber "en dehors" de la vallée
    ou alors je n'ai pas compris l'analogie, pour moi la vallée c'est graphiquement la fonction carré du (prediction-target)^2 et ou l'endroit le plus profond est celui ou notre prediction est egal au target et donc la pente vaut zéro
    mais dans ce cas la on est tout le temps dans la vallée, c'est juste que si la prediction initiale est tres mauvaise, on est très très haut (avec une pente très tres grande)
    Dernière modification par Loupsio ; 30/07/2020 à 13h11.

  7. #6
    pm42

    Re : Disparité de succès de prediction d'un même reseau de neurones

    Citation Envoyé par Loupsio Voir le message
    soit on est proche du target et la pente est proche de zéro, ducoup meme si c'est lent, ca devrait tout de même être progressif, je ne voit pas comment avec cette méthode cela peut tomber "en dehors" de la vallée
    C'est un des cas où par exemple on tombe sur le problème du "vanishing-gradient" justement : le pente est tellement proche de 0 qu'on arrête de progresser et qu'on stoppe sur un point qui n'est pas un extremum.

    https://en.wikipedia.org/wiki/Vanish...adient_problem

  8. #7
    Loupsio

    Re : Disparité de succès de prediction d'un même reseau de neurones

    D'accord... beaucoup plus clair,
    D'ou l'utilisation de ReLU je suppose, j'en avais entendu parler pour reduire les probleme de vanishing gradient qu'il pouvait y avoir avec le sigmoid,, mais j'avais aucune idée de ce que le vanishing gradient était à ce moment là
    Merci pour ces éclaircissements

Discussions similaires

  1. Réseau de neurones et apprentissage
    Par Uhrond dans le forum Programmation et langages, Algorithmique
    Réponses: 18
    Dernier message: 10/04/2018, 20h29
  2. Réseau de neurones
    Par mango1 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 14/05/2017, 23h08
  3. Réseau de neurones
    Par asirem dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 08/01/2014, 17h22
  4. optimiser par réseau de neurones
    Par invite0e024ecb dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 22/01/2010, 23h59