Deep q Learning (dqn)
阅读量:
使用神经网络来替代 Q-Learning 中的 Q-Function,来估计状态 - 动作的价值
WHY
针对状态空间很大无法对状态 - 动作进行一一对应建立 Q-table 的情况
WHAT
对图像进行裁剪及灰度化,减少状态空间的复杂度以节省训练时间。将 4 帧画面结合以便获得时间上的信息。
HOW
使用深度神经网络来估计每个状态下不同动作的 Q 值,通过损失函数来更新神经网络的权重
DQN 有两个阶段:
- 取样(Sampling):记录观察到的场景数据在重放内存中
- 训练(Training):随机选取一小批场景数据,并使用梯度下降的方法进行训练
实例
HOW GOOD
重放机制提高利用已有场景的效率
- 通过创建重放缓存,记录部分已有场景的样本,使其能在训练过程中被重复利用。使得 Agent 可以对相同的场景进行重复学习。
- 防止 Agent 在学习新场景时,忘记先前出现的场景,并减少场景之间的相关度。
固定 Q-Target 使训练更加稳定
由于使用相同的权重来估计 Q-target 和 Q-value,Q-target 同样会产生偏移。因此使用一个独立的网络并使用固定的参数来估计 Q-target,每经过一定的训练次数,复制训练用 DQN 网络中的参数至估计用的 DQN 网络。
Double DQN
上文图中 DQN 算法即为 Double DQN 算法伪代码,Target DQN 中的参数每经过一定的训练次数后更新,在训练过程中使用 Target DQN 计算奖励值,并根据梯度下降更新 Training DQN 的参数。通过使用 Double DQN 可以有效降低网络的过拟合。
ref.
#待整理笔记
反向链接
到头儿啦~