我训练了一个代理商来玩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