2011-03-25 4 views
1

Je travaille sur un projet dans lequel un robot simulé explore un environnement inconnu mais structuré (tel qu'un immeuble de bureaux) en se déplaçant vers des «emplacements de détection» prédéfinis. En d'autres termes, à chaque point, le robot doit choisir un nouvel emplacement pour se déplacer à partir des emplacements visibles disponibles. Notre but ultime est de faire apprendre au robot comment exploiter les modèles dans l'environnement pour optimiser le temps d'exploration global. Le robot choisit l'emplacement vers lequel il doit se déplacer en lui attribuant un score d'utilité basé sur une combinaison linéaire d'un certain nombre de caractéristiques connues de l'emplacement (distance au point, distance moyenne du point à toutes les autres, zone autour du point déjà exploré, etc.). Mon objectif est d'optimiser les poids de cette fonction d'utilité pour donner le temps le plus rapide pour explorer l'ensemble de l'environnement.Apprentissage par renforcement - Optimisation des poids attribués

Parce que le score dépend de l'ensemble du chemin d'exploration, je ne veux pas modifier les poids à mi-exploration. Pour tester une combinaison de poids, je veux que le robot simulé traverse l'environnement entier avec ces poids, et obtienne le score résultant. Par conséquent, je peux créer un tableau de données | w | +1 x n, où | w | est le nombre de poids, tels que les suivants:

w1 w2 w3  w4  score 
0.23, 4.30, -0.33, -2.001, 17030 
-1.3, 2.03, -10.1, -0.021, 21983 
3.65, -1.1, 5.021, 0.2301, 19508 
etc... 

Ma question est, quel type d'algorithme d'apprentissage par renforcement serait le mieux pour cela? La plupart de ce que je trouve dans la littérature et mes recherches portent sur la classification, et il est évident que la régression multivariée ne fonctionnera pas. J'ai aussi essayé d'implémenter un algorithme de q-learning, mais cela ne fonctionne pas vraiment car il y a un nombre variable d'états et d'actions en fonction du chemin emprunté et de la structure de l'environnement. Ce que je veux vraiment, c'est une sorte de structure qui prend en ligne après ligne les données, et qui détermine les valeurs des poids et leurs combinaisons qui maximisent le score attendu. Toute aide/idées? Merci.

Répondre

1

La façon dont vous formalisez votre configuration (pas de récompense intermédiaire, pas d'apprentissage en ligne, juste un score final) est typique pour l'optimisation boîte noire (ou apprentissage de renforcement phylogénétique). Parmi les algorithmes appropriés, citons les algorithmes génétiques, les stratégies d'évolution ou la recherche stochastique. Certains l'état de l'algorithmes art sont:

que chacun viennent dans différentes saveurs, selon le nombre de paramètres, le niveau de bruit et le nombre d'optima locaux auxquels vous vous attendez.

Pour une collection d'implémentations de ceux-ci en Python, regardez la bibliothèque PyBrain.

+0

C'est parfait. Merci pour les liens! – pmwalk

Questions connexes