Как DQN может предсказать будущую награду, хотя я и кормлю только вознаграждение за следующий шаг? - PullRequest
0 голосов
/ 25 апреля 2020

Я обучил агента играть в игру 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/

...