- 王树森老师《深度强化学习基础》学习笔记
二、价值学习(Value-Based Reinforcement Learning)
Deep Q-Network (DQN)
DQN
-
用神经网络近似 Q ∗ Q^* Q∗ 函数。
-
目标:获得最大的奖励总和(打赢游戏)
-
如果知道 Q ∗ Q^* Q∗ 函数,动作 a a a 就应该做 Q ∗ Q^* Q∗ 打分最高的动作。( Q ∗ Q^* Q∗ 函数告诉每个动作的平均回报,应该选平均回报最高的动作。)
-
价值学习的基本思路:学习一个函数来近似 Q ∗ Q^* Q∗ 函数。
- 方法:DQN
- 使用一个神经网络 Q ( s , a ; w ) Q(s,a;w) Q(s,a;w) 来近似 Q ∗ Q^* Q∗。
- 使用DQN:
Temporal Difference (TD) Learning
-
TD 算法用于训练DQN。
-
TD算法:
-
比如机器预测从纽约开车去亚特山大的时间,正常更新模型要走完全程,梯度下降。
-
TD 算法不需要走完全程,比如走到中间城市华盛顿用了300min(真实),接下来机器预测到亚特山大用600min(预测),(300+600)900min就叫做 TD target,它比一开始预测的1000min更准确,因为其中包含部分真实值。初始预测(1000)和 TD target(900)之间的差值叫做 TD error。TD算法更新模型:
-
TD Learning for DQN
-
类比 预测出行时间:
-
将 U t U_t Ut 公式中 r r r提出,可以得到 U t = R t + r ∗ U t + 1 U_t = R_t +r*U_{t+1} Ut=Rt+r∗Ut+1
-
U t U_t Ut是当前时刻做出的预测, U t + 1 U_{t+1} Ut+1是下一时刻做出的预测。
-
用 TD learning 训练 DQN
-
TD Learning 流程: