=====Learning multi-agent state space representations===== ==== Définitions ==== * Feed forward neural network : Réseau de neurone dans lequel il n'y a pas de boucle. * CQ-Learning : Coordination QLearning ==== Quelques informations ==== Markov game -> Système multi-agent avec plusieurs sets d'actions, la proba de transition dépend de s, a et s', récompense unique à chaque agent et une transition. Une variante consiste à donner une récompense commune aux agents. Comment apprendre le bon moment auquel doivent se coordonnés les agents ? Quelques ressources dispo : * Kok & Vlassis, Utile coordination : Learning indepedenies among cooperative agents. * Spaan & Melo IDMG Détails sur l'IDMG : * Interaction Driven Markov Game * Les agents peuvent connaitre la position des autres par la communication ou en les détectant avec les capteurs * Plus de détails sur l'article de Spaan & Melo... Learning Coordination States : * Identification des états dans lequel un agent devrait prendre en compte les autres agents quand il choisi une action et qu'il y a besoin de coordination sur celle-ci avec un autre agent. ==== CQ-Learning ==== === Gérer la coordination === En partant du principe que les agents ont une politique optimale ainsi qu'une récompense associée à chaque tuple <état, action>. Les agents ont deux ensembles d'états, un classique qui répertorie tous les états (hors joint) et un "joint" qui répertorie les états qui sont en collisions avec d'autres agents. C'est à dire accessibles par deux agents ou plus. L'algorithme utilise alors test de Student pour détecter des changements dans la valeur d'une récompense sur un <état, action> ciblé. Deux situations peuvent arriver : * L'algorithme détecte un changement, s'en suivent alors les étapes suivantes : - Marquage de l'état - Recherche de la cause du changement - Paire <état, action> marquée comme "dangereuse" - Ajout de l'état à l'ensemble d'états "joint" de l'agent - Les <états, action> qui n'ont pas provoqués la collision sont marqué comme "safe" * L'algorithme ne détecte aucun changement, aucune instruction n'a lieu A chaque fois qu'un état est marqué, l'algorithme regarde si c'est un état joint dans lequel il faut prendre en considération les autres agents. Si c'est le cas l'actualsisation de QjValeur de l'état sera effectué avec la formule : {{:capture.png?400|}} Sinon pas d'actualisation. "Generalising over coordination state" -> les joint states et joint actions sont toujours observés -> trop d'états a observer. Il faut alors réduire l'ensemble des états en apprenant une généralisation plus haute que les états. === Gérer les collisions === Comment gérer les collisions ? * Utiliser les connaissances rassemblées durant l'exécution * Adapter l'ensemble des états vers une représentation "factorisée centrée sur les agents" (traduction approximative pour agent-centric factored) * Centrée sur agent -> car la représentation est relative à l'agent et son contexte (exemple : bouge au nord) * Factored -> indique que les états sont représentés par l'utilisation de set de variables aléatoire (valeurs prises dans un domaine borné). Question : * Je ne vois pas à quoi sert le coté factored et de cette histoire de valeurs aléatoires. A quoi s'en sert-on ? Utilisation d'un réseau de neurones. -> Entrainement en utilisant les actions préférées a1 et a2 des états s1 et s2. -> La localisation absolue est "refactore" en une distance relative entre les agents. L'entrainement du réseau est donc fait avec les actions préférées a1 et a2, et Δ(x) et Δ(y). Chaque agent utilise un réseau de neurone pour généraliser ses états "safe" et "dangerous". Pour chaque échantillon, Δ(x) et Δ(y) sont déterminés et stockés avec une variable booléenne qui indique s'il y a eu collision ou non. En pratique le réseau peut servir à l'agent pour savoir s'il doit regarder un certain endroit en fonction de l'action choisie.