Я обучил агента играть в игру CartPole, но я все еще в замешательстве. Если бы я только кормил вознаграждение за следующий шаг, кто из сетей сможет выяснить будущее вознаграждение за эпизод для агента в этом конкретном состоянии?
Я понимаю, что мы пытаемся обучить глубокую нейронную сеть прогнозировать будущее вознаграждение, если агент будет придерживаться определенной политики до конца события, и после обучения сеть сможет выбрать оптимальное действие для агента в определенном состоянии.
Я также понимаю, что в Ниже приведен фрагмент кода, который мы пытаемся случайным образом выбрать из сохраненных состояний, чтобы избежать перегрузки. я не понимаю, как сеть может предсказать Q (s, a). Может ли кто-нибудь объяснить мне данные и ярлыки model.fit
?
def replay(self, batch_size):
minibatch = random.sample(self.memory, batch_size)
for state, action, reward, next_state, done in minibatch:
target = reward
if not done:
target = reward + self.gamma * \
np.amax(self.model.predict(next_state)[0])
target_f = self.model.predict(state)
target_f[0][action] = target
self.model.fit(state, target_f, epochs=1, verbose=0)
if self.epsilon > self.epsilon_min:
self.epsilon *= self.epsilon_decay
https://keon.github.io/deep-q-learning/