Я работаю в программе обучения подкреплению, и я использую эту статью как reference. Я использую Python с keras (Theano) для создания нейронной сети и псевдокод я использую для этой программыКак обновить весы в керах для обучения усилению?
Do a feedforward pass for the current state s to get predicted Q-values for all actions.
Do a feedforward pass for the next state s’ and calculate maximum overall network outputs max a’ Q(s’, a’).
Set Q-value target for action to r + γmax a’ Q(s’, a’) (use the max calculated in step 2). For all other actions, set the Q-value target to the same as originally returned from step 1, making the error 0 for those outputs.
Update the weights using backpropagation.
Функция потерь уравнение здесь это
где моя награда +1, MAXQ (S', а ') = 0,8375 и Q (s, A) = 0,6892
Мой л бы 1/2*(1+0.8375-0.6892)^2=0.659296445
Теперь, как я должен обновить свои модели нейронной сети весов, используя выше значение функции потерь, если моя модель структуры это
model = Sequential()
model.add(Dense(150, input_dim=150))
model.add(Dense(10))
model.add(Dense(1,activation='sigmoid'))
model.compile(loss='mse', optimizer='adam')
Просим предоставить более подробное описание. благодаря – RZK