tf.train.AdamOptimizer (). minimal () проблема - PullRequest
0 голосов
/ 30 апреля 2019

Ситуация:

Я использую q-learning, и в обновлении значений Q есть что-то, чего я не понимаю: у меня вывод нейронной сети в определенном состоянии 's1'Q значений, подобных этому: [x1, x2, ... xn]. , который является одномерным списком.

У меня есть список действий , подобный этому: [0, 1,0 ... An] , что означает, что я выбрал второе действие, которое приводит нас к состоянию 's2' , где я получил эти Q значения [y1, y2, ... yn]

Награда за это составляет '10', например , и теперь я хочу настроить свои значения Q так, чтобы новое значение Q в состоянии 's1' для принятиядействие 'A2' равно:

learning_rate * (вознаграждение + гамма * max_Qvalues_in_state's2 ').

Мы назовем его' new_qvalue '.

Потеря теперь (new_qvalue - "qvalue в состоянии 's1' для действия '2'")

Итак, моя проблема:

В тензорном потокемы можем использовать tf.train.AdamOptimiser (learning_скорость) .minimize (убыток) , чтобы настроить наше Q_value, но как это работает?Нам нужно только отрегулировать значение Q, соответствующее выбранному действию, а не всем значениям Q состояния 's1', так как же функция узнает, какие корректировки необходимо выполнить для тензоров нейронных сетей, чтобы исправить только хорошее значение Q?

С моей точки зрения, мы должны передать что-то вроде массива, который представляет потерю для каждого Q-значения, тогда все значения будут равны 0 для того, которое соответствует выбранному действию, не так ли?

Если моя проблема не ясна, пожалуйста, скажите мне, мне действительно нужна помощь в этом ...

...