
U t U_t Ut 等于从 t t t时刻开始的奖励之和,并且给未来的奖励一个折扣率 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1]
U t U_t Ut 是一个随机变量,其不确定性来自于未来的状态和动作,动作是通过策略函数随机得到,状态是通过状态转移函数随机得到。

用 Q π ( s t , a t ) Q_\pi(s_t,a_t) Qπ(st,at) 表示 U t U_t Ut 的期望,该函数进行评估在策略 π \pi π 下状态 s t s_t st执行动作 a t a_t at的好坏。
关于为什么用Q缩写来表示的原因:
有一篇论文提到了,但是貌似是猜测。

[Christopher Watkins Learning From Delayed Rewards]
Quantity 貌似说不通,衡量动作的好坏的函数用数量(?)缩写,我觉得用Quality(质量)更加贴切,类似评价物品的好坏,用Quality一样。

我们定义最优动作价值函数 Q ∗ ( s t , a t ) Q^*(s_t,a_t) Q∗(st,at)来表示在所有策略下的最大 Q Q Q,通过这个函数我们可以找到最优的 a t a_t at。

为了近似这个 Q ∗ Q^* Q∗函数,我们便使用价值网络(DQN)来近似该函数。

DQN的输入就是状态 s t s_t st,通过卷积层提取特征向量,在经过全连接层得到每个动作对应的价值。

通过该网络,我们便可以觉得每次执行什么动作 a t a_t at,然后得到外界的奖励 r t r_t rt 和新一轮的状态 s t + 1 s_{t+1} st+1,从而不断地执行下去。
用来训练价值网络地算法称为:Temporal Difference (TD) Learning,时间差分序列算法。


上图是一个TD算法的实例,用来估计两地距离。
把它应用到DQN中,就是如下图所示。

可以看到, Q Q Q值由真实值和模型预测值组成。

我们对回报Return的期望进行变形,便可以得到与TD算法类似的等式关系。


通过该算法,我们便可以求出TD的目标函数 y t y_t yt ,计算损失 L o s s Loss Loss,然后进行梯度下降训练网络。
