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 :

Apprentissage par renforcement : agent pour jouer au football


Sujet :

Intelligence artificielle

  1. #1
    Membre habitué Avatar de Gorzyne
    Profil pro
    Collégien
    Inscrit en
    Janvier 2008
    Messages
    337
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2008
    Messages : 337
    Points : 125
    Points
    125
    Par défaut Apprentissage par renforcement : agent pour jouer au football
    Bonjour,

    Dans le cadre du calcul d'erreur au niveau de la couche de sortie dans un classifieur neuronal basique (fit-forward 2 couches cachées en sigmoïde et sortie en softmax), est ce que la sortie de référence pour le calcul de l'erreur est préférablement une indicatrice ou une distribution (dans la mesure où je peux la calculer) où le maximum de la distribution correspond au 1 de l'indicatrice ?

    Merci pour votre aide
    Gorz

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 673
    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 673
    Points : 188 664
    Points
    188 664
    Par défaut


    Le plus courant, c'est de prendre des probabilités en sortie (après un softmax, par exemple). Ensuite, tu peux prendre comme fonction objectif une entropie croisée. Ce n'est que pour une prédiction que tu prends le maximum en probabilité, si tu dois absolument sortir une seule et unique valeur.

  3. #3
    Membre habitué Avatar de Gorzyne
    Profil pro
    Collégien
    Inscrit en
    Janvier 2008
    Messages
    337
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2008
    Messages : 337
    Points : 125
    Points
    125
    Par défaut
    merci pour cette réponse rapide et pointue
    comme je ne suis pas certain d'avoir parfaitement compris je me permets de resituer la question
    il s'agit d'un classifieur pour un jeu type football, chaque robot/joueur a le choix entre 24 actions

    je mets en input les positions des adversaires et des coéquipiers et la balle. En sortie je souhaite obtenir la "meilleure" action sachant qu'il n'y a pas de "meilleure" action dans l'absolue mais en cohérence avec une stratégie

    je compare la sortie de ma RDN (24 neurones en softmax) avec un système expert de niveau ajustable (basé sur des règles et du scoring). Chaque coup peut être "noté" il y a d'une part des bons coups et de l'autre des mauvais coups.

    Je peux donc en regard de la sortie du RDN mettre au choix, une indicatrice qui vaut 1 pour le coup qui a le score maximum d'après le système expert de référence, et 0 partout ailleurs, ou bien mettre la distribution du système expert

    je peux donc mettre par exemple mettre sur un vecteur de 5 où le meilleure coup est le 3ème
    une indicatrice genre [0 ; 0 ; 1 ; 0 ; 0]
    ou bien une distribution [0.1 ; 0.15 ; 0.45 ; 0.35 ; 0.05]
    on pourrait se dire que le 4ème coup n'est pas si mauvais
    si je considère l'indicatrice, le 4ème coup est jugé aussi mauvais que le 5ème qui lui est très mauvais (par exemple je me déplace dans le sens opposé à la balle)

    intuitivement j'ai envie de penser que la distribution donnera un meilleur résultat (?) et enfermera moins le RDN dans une stratégie donnée quand je lacherai le système expert mais ça c'est une autre question

    du coup je sais pas trop quelles sont les pratiques habituelles

    Gorz

  4. #4
    Membre éprouvé

    Homme Profil pro
    Cyber Security & AI
    Inscrit en
    Février 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Cyber Security & AI

    Informations forums :
    Inscription : Février 2009
    Messages : 506
    Points : 1 155
    Points
    1 155
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    je vois deux questions à ta problématique :
    la première concerne les réseaux de neurones
    la seconde concerne la théorie des jeux

    Concernant les réseaux neurones, la réponse de dourouc5 est exacte, et c'est ce que tu reprends dans ton analyse finale. À savoir que le réseau neurones et la fonction SoftMax induisent une probabilité pour chaque décision. Le max donne la probabilité la plus élevé.

    Concernant la théorie des jeux, afin de faire varier ton style de jeu et de ne pas avoir toujours une stratégie unique, elle recommande d'introduire une probabilité entre les différents choix de ton agent. Mais cette question, même si elle est sous-entendue dans ton message, elle n'est pas clairement exposée.

    L'exemple principal de la théorie des jeux connus c'est le joueur de foot qui tire un penalty, même s'il est meilleur en tirant à droite, le goal lui sait qu'il est meilleur sur la droite et donc il anticipe. La théorie des jeux donne un mode de calcul de probabilités pour résoudre cela.

    Bien cordialement,

  5. #5
    Membre habitué Avatar de Gorzyne
    Profil pro
    Collégien
    Inscrit en
    Janvier 2008
    Messages
    337
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2008
    Messages : 337
    Points : 125
    Points
    125
    Par défaut
    merci c'est intéressant
    j'ai un peu exploré plusieurs pistes en direction du Q-learning

    plutôt que d'utiliser un classifieur pour trouver le bon coup à jouer, j'utilise le RNN pour approximer une fonction heuristique (chaque état a une valeur précalculée), le coup joué est celui qui permet de maximiser le score de l'état d'arrivée - bref je reprends exactement la même mécanique qu'avec le modèle formel mis à part que ma fonction heuristique est approximée par un RNN
    les résultats sont nettement meilleurs mais j'ai encore beaucoup de chemin à parcourir

    notamment, concernant ma fonction heuristique (un score calculé pour chaque état), celle ci n'est pas parfaite - aussi j'entraîne mon modèle sur un modèle imparfait
    aussi je ne saisis pas trop comment améliorer le modèle et battre la fonction heuristique

    éventuellement, une approche que je n'ai pas explorée serait de faire de la recherche d'optimum au niveau des paramètres de ma fonction heuristique
    mais du coup je vois pas où est l'intérêt d'approximer une fonction heuristique avec un RNN, alors qu'il me suffit d'utiliser directement ma fonction heuristique

    mon idée était qu'avec un RNN je pourrai arriver à une fonction heuristique plus efficace que la fonction heuristique formelle je sais pas si c'est compréhensible...

    ce que je veux dire c'est qu'à moins d'une intervention humaine, il est difficile pour moi d'extrapoler sur le fait qu'un coup joué est un bon coup ou non - alors je me disais éventuellement qu'avec un dataset réduit de qualité (supervision humaine) je pourrai "nudger" le réseau pour réaliser de meilleurs coups que le modèle formel... mais ça m'embête de mettre une intervention humaine dans la donne, surtout que mon objectif est également de battre l'humain si possible...


    bref je veux bien des billes pour avancer

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 673
    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 673
    Points : 188 664
    Points
    188 664
    Par défaut
    L'idée de l'apprentissage par renforcement, c'est d'avoir des récompenses déterminées par l'algorithme d'apprentissage lui-même : il n'y a pas d'expert extérieur qui donne la valeur d'un état. Ainsi, tu n'as (normalement) pas besoin de ta fonction heuristique : la valeur de chaque état est donnée par ton approximation de la fonction V (ou Q, ça revient grosso modo au même), pas par ton heuristique. Quand tu améliores ton approximation de V et de Q, tu te bases sur les dernières récompenses obtenues et les résultats précédents de tes approximations : c'est comme ça, tu dois passer par-là, même si ça ralentit l'apprentissage (tu suis une cible qui n'arrête pas de bouger).

    (Ceci ne préjuge pas de l'utilité d'une fonction heuristique pour donner des valeurs de base de V et Q au début, histoire d'accélérer l'apprentissage. C'est peut-être utile, c'est peut-être la pire idée du siècle, il faut tester pour savoir.)

  7. #7
    Membre habitué Avatar de Gorzyne
    Profil pro
    Collégien
    Inscrit en
    Janvier 2008
    Messages
    337
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2008
    Messages : 337
    Points : 125
    Points
    125
    Par défaut
    en fait ma fonction heuristique n'est rien d'autre qu'une V-value, c'est à dire une fonction qui donne la valeur d'un état

    avec un réseau de neurone j'arrive à approximer ma V-value, et à partir de là, j'obtiens un robot qui joue honnêtement, c'est à dire qu'à chaque coup, il choisit celui qui maximise la V-value dans l'état d'arrivée.

    mon souci est ensuite d'améliorer ce réseau. Ma Q-value pourrait être vue comme le différentiel de V-value entre deux états connectés. Seulement je n'arrive pas très bien à l'approximer par RDN.

    en fait je ne sais pas si le mieux est de mettre mon état initial en entrée, et ensuite d'avoir le score de chaque transition en sortie
    ou bien d'avoir en entrée mon état initial et un one-hot des transitions, pour ensuite tester sur chaque one-hot licite le score

    mais en tout état de cause ça modifie sensiblement la structure de mon RDN...

    bref je cherche des idées pour avancer, une approche basée sur la V-value est beaucoup plus confortable car je suis capable de l'approximer par un RDN, alors que j'ai plus de mal à approximer la Q-value correspondante

    une approche différente qu'on m'a suggéré c'était de faire de la recherche forward, c'est à dire de prévoir N coups d'avance, il me semble que c'est une approche un peu "brute force" qui était celle des débuts de l'IA, au niveau des jeux d'échecs, du coup on est plus trop sur une approche ML moderne, mais l'idée est séduisante. En effet je ne pouvais avoir cette approche avec ma fonction heuristique car elle était lente donc difficile de calculer des coups à l'avance, mais l'approximation RDN de ma V-value est beaucoup plus économe en temps de calcul, donc permet d'explorer l'arbre des coups à venir, et donc de gommer un peu la granularité liée aux imperfections de la V-value


    Gorzyne

Discussions similaires

  1. [IA] Implémentation d'un apprentissage par renforcement
    Par shinigami dans le forum Méthodes prédictives
    Réponses: 9
    Dernier message: 16/07/2019, 22h25
  2. Apprentissage par renforcement et reconnaissance
    Par SKone dans le forum Méthodes prédictives
    Réponses: 6
    Dernier message: 18/01/2011, 11h30
  3. [java] Apprentissage par renforcement et Tic-Tac-Toe
    Par Champialex dans le forum Contribuez
    Réponses: 0
    Dernier message: 16/06/2010, 01h30
  4. [Algo] Apprentissage par renforcement
    Par adretto dans le forum Méthodes prédictives
    Réponses: 1
    Dernier message: 24/05/2007, 19h25
  5. Apprentissage par Renforcement
    Par Le Furet dans le forum Méthodes prédictives
    Réponses: 4
    Dernier message: 11/08/2005, 17h22

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