2016-04-01 14 views
0

kullanırken theano ile sinir ağları için degradeler nasıl hesaplanır Q-Learning'deki işlem değerlerinin temeli olarak standart tam bağlantılı bir sinir ağı kullanmaya çalışıyorum. Bir referans olarak, özellikle bu hat http://deeplearning.net/tutorial/mlp.html#mlp kullanıyorum:Q-Learning

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

I (http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node65.html tarif edildiği gibi) S-Öğrenim ilke kontrol yöntemi kullanılarak son işlemle ilişkili zaman çıkış birimi için hatayı hesaplamak için istiyorum ve ayarlamak diğer çıkış hataları sıfır.

Theano'nun grad işlevini kullanarak hataları yapay sinir ağının geri kalanına yaymak için nasıl kullanabilirim?

+0

Denetimli öğrenmeyle birlikte takviye öğrenimi uygulama konusunda deneyimim yok; fakat q-öğrenme öğelerinizi Theano ifadeleriyle tanımlayabilir ve bunları hesaplamalı grafiğin bir parçası haline getirebilirseniz, hataları normal şekilde (örn. T.grad (..) kullanarak) geriye aktarabilirsiniz. Bu biraz alakalı olabilir: https://github.com/spragunr/deep_q_rl – uyaseen

+0

Evet, bu projeyi gördüm ve referans olarak kullanıyorum. Sadece seçilen eylemi kullanarak bir kayıp hesaplarsam, grad işlevi zaten benim için iş yapar gibi görünüyor. – Mouscellaneous

cevap

0

Sinir ağları, Q işlevinizi parametrelemenin yalnızca bir yoludur. Bu durumda degrade iniş yapma şekliniz, Sutton ve Barto'nun kitabının bu section belgesinde açıklanmıştır. Nöral ağınızın ağırlıklarını sadece bir parametre vektörü olarak ele alın.