零基础机器学习做游戏辅助第十课--强化学习DQN(二)
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
一、经验池
我们的神经网络在初期并不能很好的预测Q,所以前期我们是随机做出选择,然后将经验存放起来。因为智能体去探索环境时采集到的样本是一个时间序列,样本之间具有连续性,所以需要打破时间相关性,解决的办法是在训练的时候存储当前训练的状态到记忆体M,更新参数的时候随机从M中抽样mini-batch进行更新。
def memorize(self, state, action, reward, next_state, done):
self.memory.append((state, action, reward, next_state, done))
二、动作的选择
初期我们主要依赖随机动作探索环境,epsilon值为我们随机系数,随着我们对模型的训练,这个系数将随着我们设定的衰减值进一步减少随机的动作比例,知道完全使用我们的神经网络进行预测。
def act(self, state):
#随机动作
if np.random.rand() <= self.epsilon:
return random.randrange(self.action_size)
#预测动作
act_values = self.model.predict(state)
return np.argmax(act_values[0])