nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Reinforcement Learning

Von: Thorsten Kiefer (webmaster@nillakaes.de) [Profil]
Datum: 18.02.2008 20:14
Message-ID: <47b9d90c$0$26904$6e1ede2f@read.cnntp.org>
Newsgroup: de.sci.informatik.misc
Hallo,
ich möchte einen virtuellen Roboter trainieren, etwas zu tun.
Er bekommt als Eingabe die Winkel an seinen Gelenken, sowie
den Richtungsvektor seiner Nase. Als Ausgabe soll er mir einen
Vektor von Impuls-stärken geben, die an den Gelenken verrichtet werden.

Ich verwende kein TD-learning, weil ich aus einem Zustand und
einer Action (Impulsstärkenvektor) den Folgezustand nicht
(oder nur sehr schwer) errechnen kann.
Also nehme ich Q-Learning, richtig ? D.h. das neuronale Netz
muß eine Value für ein State-Action-Paar erlernen.

Wenn ich Q* habe und einen Zustand Z habe, dann müsste ich doch
eigentlich so vorgehen, um u zu bekommen :
forall j u[j] = random();

for(int i = 0;i < 100;++i) {
u = u + lambda * gradient(Q* bezüglich u an der Stelle (Z,u));
}

Oder ?
Ich wähle i < 100, weil der Robi seine Entscheidung sehr schnell treffen
muß. Besser gesagt brauch ich was anderes als das
Gradientenabstiegsverfahren.

Ich habe mir als was neues überlegt :
u = gradient(Q* bezüglich u an der Stelle (Z,0));

Alles mathematisch nicht total korrekt, aber ich hoffe ihr versteht was ich
meine.
Hat jemand noch nen Tip ?

Gruß
Thorsten


[ Auf dieses Posting antworten ]

Antworten