1

Je dois travailler avec Q Learning, sur un type qui doit déplacer des meubles autour d'une maison (c'est essentiellement ça). Si la maison est assez petite, je peux juste avoir une matrice qui représente des actions/récompenses, mais comme la taille de la maison devient plus grande, cela ne suffira pas. Je dois donc utiliser une sorte de fonction de généralisation à la place. Mon professeur suggère que je n'utilise pas seulement un, mais plusieurs, afin que je puisse les comparer et ainsi. Qu'est-ce que vous recommandez les gars?Fonctions de généralisation pour Q-Learning

J'ai entendu dire que pour cette situation, les gens utilisent des machines à vecteurs de support, également des réseaux neuronaux. Je ne suis pas vraiment à l'intérieur du terrain, donc je ne peux pas le dire. J'avais dans le passé une certaine expérience avec les réseaux neuronaux, mais SVM semble beaucoup plus difficile à comprendre. Y a-t-il d'autres méthodes que je devrais rechercher? Je sais qu'il doit y en avoir un zillion, mais j'ai besoin de quelque chose pour commencer.

Merci

+0

J'espère que cela ne vous dérange pas d'étiqueter comme devoir. Mention de "professeur" me fait penser que c'est approprié. – spender

Répondre

2

Tout comme un rappel de la terminologie, dans Q-learning, vous essayez d'apprendre les fonctions de Q, qui dépendent de l'état et de l'action:

Q(S,A) = ???? 

La version standard Q-learning tel qu'enseigné dans la plupart des classes vous indique que pour chaque S et A, vous devez apprendre une valeur distincte dans une table et vous indique comment effectuer des mises à jour de Bellman afin de converger vers les valeurs optimales. Maintenant, disons qu'au lieu de table vous utilisez un autre approximateur de fonction. Par exemple, essayons les fonctions linéaires. Prenez votre paire (S, A) et pensez à un tas de fonctionnalités que vous pouvez extraire d'eux. Un exemple de fonctionnalité est "Suis-je à côté d'un mur", un autre est "L'action place-t-elle l'objet à côté d'un mur", etc. Numérotez ces fonctions f1 (S, A), f2 (S, A),. ..

maintenant, essayez d'apprendre la fonction Q en fonction linéaire de ces fonctions

Q(S,A) = w1 * f1(S,A) + w2*f2(S,A) ... + wN*fN(S,A) 

Comment devriez-vous apprendre les poids w? Eh bien, puisque c'est un devoir, je vais vous laisser y réfléchir par vous-même. Cependant, à titre indicatif, disons que vous avez K états possibles et M actions possibles dans chaque état. Supposons que vous définissiez les fonctions K * M, chacune indiquant si vous êtes dans un état particulier et si vous allez effectuer une action particulière. Ainsi

Q(S,A) = w11 * (S==1 && A == 1) + w12 * (S == 1 && A == 2) + w21 * (S==2 && A==3) ... 

Maintenant, notez que pour tout couple état/une action, une seule fonction sera 1 et le reste sera de 0, de sorte que Q (S, A) sera égale à la w et vous êtes essentiellement correspondant apprendre une table. Ainsi, vous pouvez penser à la table standard Q-learning comme un cas particulier d'apprentissage avec ces fonctions linéaires. Alors, pensez à ce que fait l'algorithme normal de Q-learning et à ce que vous devriez faire.

Espérons que vous puissiez trouver une petite base de fonctionnalités, beaucoup moins que K * M, qui vous permettra de bien représenter votre espace.

+0

Bonjour à nouveau. Je sais seulement que je comprends Q-Learning assez bien pour comprendre votre réponse! Y at-il un endroit que je peux regarder qui explique plus attentivement votre explication? Merci! –

+1

Je soupçonne Russell & Norvig (Intelligence artificielle: une approche moderne) d'avoir du matériel dessus, mais je ne m'en souviens pas exactement. Consultez http://inst.eecs.berkeley.edu/~cs188/fa09/lectures.html et en particulier, la conférence du 10/6 – bsdfish

Questions connexes