2016-04-01 5 views
0

Ich versuche, ein Standard-voll verbundenes neuronales Netz als Basis für Aktionswerte in Q-Learning zu verwenden. Ich verwende http://deeplearning.net/tutorial/mlp.html#mlp als Referenz speziell diese Zeile:So berechnen Sie Gradienten für ein neuronales Netzwerk mit theano bei Verwendung von Q-Learning

gparams = [T.grad(cost, param) for param in classifier.params] 

Ich möchte den Fehler für meine Ausgabeeinheit mit der letzten Aktion mit der Q-Learning-Policy-Kontrolle Methode verbunden berechnen (wie in http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node65.html beschrieben), und stellte die anderen Ausgabefehler auf Null.

Wie kann ich Theano's Grad-Funktion verwenden, um die Fehler auf den Rest des neuronalen Netzwerks zurück zu übertragen?

+0

Ich habe keine Erfahrung mit der Anwendung von Verstärkungslernen zusammen mit überwachtem Lernen; aber wenn Sie Ihre q-Learning-Sachen mit Theano-Ausdrücken definieren und sie zu einem Berechnungsgraphen machen können, dann können Sie Fehler einfach auf die normale Weise zurückverbreiten (d. h. mit T.grad (..)). Dies könnte ein wenig relevant sein: https://github.com/spragunr/deep_q_rl – uyaseen

+0

Ja, ich habe dieses Projekt gesehen und verwende es als Referenz. Es scheint, dass die Grad-Funktion die Arbeit für mich bereits erledigt, wenn ich einen Verlust nur mit der ausgewählten Aktion kalkuliere. – Mouscellaneous

Antwort

0

Neuronale Netze sind nur eine Möglichkeit, Ihre Q-Funktion zu parametrisieren. Die Art und Weise, in der Sie in diesem Fall Gradientenabstieg durchführen, wird in diesem Buch von Sutton und Barto in dieser section erläutert. Behandeln Sie einfach die Gewichte Ihres neuronalen Netzes als Vektor von Parametern.

Verwandte Themen