2016-04-01 5 views
0

Я пытаюсь использовать стандартную полностью связанную нейронную сеть в качестве основы для значений действий в Q-Learning. Я использую http://deeplearning.net/tutorial/mlp.html#mlp в качестве ссылки конкретно эту строку:Как рассчитать градиенты для нейронной сети с помощью anano при использовании Q-Learning

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

Я хотел бы, чтобы вычислить ошибку для моего устройства вывода, связанного с последним действием с использованием Q-Learning метод управления политикой (как описано в http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node65.html) и установите другие ошибки вывода равны нулю.

Как я могу использовать функцию градиента Theano для обратной передачи ошибок в остальную нейронную сеть?

+0

У меня нет опыта применения обучения усилению наряду с контролируемым обучением; но если вы можете определить свой материал q-обучения с помощью выражений Theano и сделать их частью вычислительного графа, тогда вы можете просто распространять ошибки обычным способом (например, используя T.grad (..)). Это может быть немного актуально: https://github.com/spragunr/deep_q_rl – uyaseen

+0

Да, я видел этот проект и использую его как ссылку. Кажется, что функция grad уже выполняет работу для меня, если я вычисляю потерю, используя только выбранное действие. – Mouscellaneous

ответ

0

Нейронные сети - всего лишь один из возможных способов параметризации вашей Q-функции. То, как вы выполняете спуск градиента в этом случае, объясняется в этом section книги Саттона и Барто. Просто относитесь к весам вашей нейронной сети как к вектору параметров.