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 :

Apprentissage renforcé et réseaux neuronaux


Sujet :

Méthodes prédictives

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut Apprentissage renforcé et réseaux neuronaux
    Bonjour a tous, j'essaie de mettre en place un systeme de reinforcement learning avec un neural network.

    J'ai tout d'abord teste avec du QLearning classique et ca marche bien... le seul probleme c'est que mes donnees sont continues et non discrete.


    Donc voila comment je procede:

    Je creer mon NN avec le nombre d'input que j'ai normalise.
    Ensuite je prevois X le nombre d'output qui represente le nombre total de mes actions possibles.

    J'execute le reseau de neuronne, je prend la valeur max comme etant l'action a executee.
    Je calcule la reward fonction de la reward immediate (1 en cas de victoire -1 en cas de defaite).

    Et j'entraine mon reseau de neuronne avec 0 dans tous les outputs sauf pour l'action choisie je met la reward calculee.



    Je souhaite savoir si je pars sur de bonnes bases ou si je me trompe completement.
    Pour le moment cela ne marche pas, je me doute que je dois faire une erreur quelque part...


    Merci de votre aide...

  2. #2
    Membre actif Avatar de zaza576
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2013
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2013
    Messages : 175
    Points : 275
    Points
    275
    Par défaut
    Hello,

    toujours besoin d'un exemplaire du code existant ainsi que de la sortie pour visualiser ton erreur et mieux la comprendre ...

    Nous, pas devins
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function googleIsYourF*ck*ngFriend(String url, String maQuestion){
        goTo(url);
        reponse = find(maQuestion);
        if(isAcceptable(reponse)){
            clickOn(By.xpath("//button[@id='resolvedButton']"));
        }
        sendMessage("Merci");
    }
    
    googleIsYourF*ck*ingFriend("http://www.google.fr", "ma question");

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 51
    Points : 51
    Points
    51
    Par défaut
    Ta démarche à l'air correcte en théorie, reste à savoir s'il n'y a pas un problème de code. Peut être aussi que la topologie de ton réseau (nombre de neurones sur les couches cachées, nombre de couches cachées, etc) n'est pas adaptée à ta tâche

  4. #4
    Invité
    Invité(e)
    Par défaut
    Selon comment vous procéder, dans le cas ou vous utiliser les valeurs des neurone comme des valeurs allants de 0.0 à 1.0 ou de -1.0 à 1.0, le nombre de sorties devrais être le nombre de neurones nécessaire pour différencier les actions, si vous avez 8 actions is faut 3 neurones. A moins qu'il y ai une inaction en plus il en faudrait 4 et une valeur pour rien.

    C'est comme ça que je procède pour des résultats discrets.

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut
    Bonjour et merci de votre aide

    Pour le moment je reste bloque cad que mon IA ne progresse pas :S


    Voici le code simplifie:

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    // l'initialisation.
    override protected void Start () {
    		base.Start();
    		MN = GetComponent<MonoNeuralNet>();
    		H3 = GetComponent<Hero3Owner>();
    		Tasks = new List<string>();
    		Tasks.Add("DodgeTask");
    		Tasks.Add("LauncherTask");
    		Tasks.Add("Hero3AttackChargeTask");
    		Tasks.Add("Hero3AttackJump");
    		Tasks.Add("Hero3Attack1");
    		Tasks.Add("Hero3Attack2");
    		Tasks.Add("DashTask");
    		Tasks.Add("Hero3MagicTask");
    		Tasks.Add("Hero3AuraTask");
    		Tasks.Add("MoveTask");
    		Tasks.Add("JumpTask");
     
    	}
     
     
    // les inputs pour le neural network (normaliser)
    	private float[] GetInputs()
    	{
    		return new float[] { (this.transform.position.x + 5000f) / 10000f, (Target.transform.position.x + 5000f) / 10000f, (HH.transform.localScale.x + 1f) / 2f,
    			(Target.transform.localScale.x + 1f) / 2f, GetComponent<Stats>().CurLife / GetComponent<Stats>().MaxLife,
    			Target.GetComponent<Stats>().CurLife / Target.GetComponent<Stats>().MaxLife, GetComponent<Stats>().CurrentEnergy / GetComponent<Stats>().MaxEnergy,
    			Target.GetComponent<Stats>().CurrentEnergy / Target.GetComponent<Stats>().MaxEnergy };
    	}
     
     
    // la fonction d'update
    	override protected void Update () {
    		base.Update();
     
    		if (HH.GetComponent<Stats>().IsDead()) // si je suis mort
    		{
    			float[] outtt = new float[11];
    			for (int i = 0; i < 11; ++i)
    			{
    				if (i == LastOut)
    					outtt[i] = -1; // on met une reward negative
    				else
    					outtt[i] = 0;
    			}
    			for (int j = 0; j < 10000; ++j)
    				MN.Train(GetInputs(), outtt);
    			return;
    		}
    		if (Target.GetComponent<Stats>().IsDead()) // si mon adversaire est mort
    		{
    			float[] outtt = new float[11];
    			for (int i = 0; i < 11; ++i)
    			{
    				if (i == LastOut)
    					outtt[i] = 1;  // on met une reward positive
    				else
    					outtt[i] = 0;
    			}
    			for (int j = 0; j < 10000; ++j)
    				MN.Train(GetInputs(), outtt);
    			return;
    		}
     
    		float[] ret = null;
    		MN.Calculate(GetInputs(), out ret);
     
    		int maxaction = 0;
    		float maxval = - 100000;
     
     
    		for (int i = 0; i < 11; ++i)
    		{
    			if (ret[i] > maxval)
    			{
    				maxval = ret[i];
    				maxaction = i;
    			}
    		}
    		LastOut = maxaction;
     
    		string keytask = Tasks[maxaction];
     
    			Debug.Log(keytask);
    			ExecTask(keytask);
    	}


    Merci de votre aide si vous voyez une erreur?!
    Bien a vous!

Discussions similaires

  1. Après les réseaux neuronaux avec apprentissage génétique
    Par lilalex dans le forum Méthodes prédictives
    Réponses: 3
    Dernier message: 16/09/2014, 20h18
  2. Réseaux neuronaux vs IA conditionnelle
    Par black is beautiful dans le forum Méthodes prédictives
    Réponses: 7
    Dernier message: 04/05/2009, 21h19
  3. [projet] réseaux neuronaux
    Par swo.line dans le forum VB.NET
    Réponses: 2
    Dernier message: 12/04/2008, 14h24
  4. [projet] réseaux neuronaux
    Par swo.line dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 06/04/2008, 10h21
  5. réseaux neuronaux (iA)
    Par VincentB dans le forum Méthodes prédictives
    Réponses: 5
    Dernier message: 26/09/2002, 21h12

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