Partage
  • Partager sur Facebook
  • Partager sur Twitter

IA

Probleme algorithme génétique

    4 juillet 2019 à 17:46:20

    Bonjour a toutes et a tous,

    J'essaye de me former dans le domaine de l'IA et actuellement des algorithmes génétiques. Cependant après 2 tentatives sur des petits projets, impossible d'obtenir un bon résultat.

    Mon deuxième petit projet consiste à faire avancer des petits bonhomme et les faire sauter sur des plateformes ( de manière très simple). Cependant je ne vois aucune amélioration, même après 30 générations.

    Si quelqu'un pourrai m'indiquer pourquoi, ce serai cool. Je met le lien du projet. Il est fait sur UNITY.

    Le but etant d’aller le plus loin possible sur les plateformes.

    Les fichiers de code important sont Brain et PopulationManager.

    Voila le lien du projet: https://mega.nz/#!pRZyQYiY!68-gh_Is3WZwIZ4M03g3utvE1gVtrcPVRJ4nm-j815w

    Merci beaucoup!

    • Partager sur Facebook
    • Partager sur Twitter
      5 juillet 2019 à 11:22:27

      J'ai pas regardé en profondeur (pas regardé le code). Je t'avoue que ce genre de projet quand on en est pas l'initiateur c'est un peu dur de s'y mettre dedans (et j'ai pas trop le temps surtout).

      Néanmoins, deux pistes :

      La première, il semblerait que ton calcul de "total distance" soit pas très correct, et ça nuit énormément à leur apprentissage. Si tu fais le calcul de la distance par rapport à la plateforme noire, essaie de faire plus simple. Il faut vraiment que ce calcul soit juste car c'est lui qui détermine leur apprentissage.

      Au bout de 8 générations ils avaient tous compris de quel coté il fallait aller. Et pourtant, en partant tous du bon coté, la 9ème génération a eu un "total distance" de -2. Forcément après ils ont commencé à faire n'importe quoi car désapprit qu'il fallait aller de ce coté. 

      Ensuite, il semblerait que la partie "aléatoire" soit un peu trop importante, mais je n'en suis pas sur. Une fois avoir appris les bonnes bases (et avant de les désapprendre) 4 sur 8 ont essayé des mouvements aléatoires, je pense que c'est un peu  trop.

      Voilà, après avoir réglé ça n’hésite pas à revenir pour voir ce qu'on peut améliorer.

      • Partager sur Facebook
      • Partager sur Twitter

      Try->Fail->Learn->Converge to success :{\displaystyle Q[s,a]:=(1-\alpha )Q[s,a]+\alpha (r+\gamma ~max_{a'}Q[s',a'])}

        19 juillet 2019 à 16:06:00

        Bonjour,

        Merci d'avoir répondu !

        J'ai appliqué ce que tu ma dis, le score est maintenant en fonction de la plateforme où on est,  et non plus en fonction de la distance parcouru; Aussi la partie aléatoire à été amélioré. Cependant tu as raison, il y a des régressions anormales, le premier devrait se comporter de la même manière que sur l'ancienne génération car je ne modifie pas son réseau de neurones. Et pourtant ses actions changent totalement. J'ai tout vérifié plusieurs fois mais ça ne marche toujours pas;

        Peut être j'aurai du utiliser une vrai bibliothèque au lieu de piquer un petit code sur les réseau de neurones sur github.

        Enfin, il est certain que sans ce problème,  ça marcherai très rapidement.

        Merci encore !

        Bonne après midi.

        • Partager sur Facebook
        • Partager sur Twitter
          19 juillet 2019 à 19:49:03

          Ca peut aussi dependre de l'architecture de ton reseau de neurone. Pas assez de couche / pas assez de neuronne = saturation. Peut-etre n'arrivent-ils pas a apprendre comme il faut. Essaie de rajouter des couche a ton reseau de neuronne.
          • Partager sur Facebook
          • Partager sur Twitter

          IA

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown