首先引入折扣回报的概念, U t = R t + γ R t + 1 + γ 2 R t + 2 + . . . U_t=R_t+\gamma R_{t+1}+\gamma^2R_{t+2}+... Ut=Rt+γRt+1+γ2Rt+2+...,因此它依赖于action序列 A t , A t + 1 , A t + 2 , . . . A_t,A_{t+1},A_{t+2},... At,At+1,At+2,...以及状态序列 S t , S t + 1 , S t + 2 , . . . S_t,S_{t+1},S_{t+2},... St,St+1,St+2,...,而这两个都是随机变量满足
P [ A = a ∣ S = s ] = π ( a ∣ s ) , P [ S ′ = s ′ ∣ S = s , A = a ] = p ( s ′ ∣ s , a ) P[A=a|S=s]=\pi(a|s),P[S'=s'|S=s,A=a]=p(s'|s,a) P[A=a∣S=s]=π(a∣s),P[S′=s′∣S=s,A=a]=p(s′∣s,a)
其实际产生方式都是从分布中采样得到,所以折扣回报也是随机变量。
为了确定化折扣回报,引入其期望,动作价值函数:
Q π ( s t , a t ) = E [ U t ∣ S t = s t , A t = a t ] Q_{\pi}(s_t,a_t)=E[U_t|S_t=s_t,A_t=a_t] Qπ(st,at)=E[Ut∣St=st,At=at]
它衡量了出在 s t s_t st下做出动作 a t a_t at的回报(收益)。
不同的策略对应不同的动作价值函数,可以理解为策略的一种表现形式,最优者定义为 Q ∗ ( s , a ) Q^*(s,a) Q∗(s,a),据此最优的动作为
a ∗ = a r g m a x a Q ∗ ( s , a ) a^*=\mathop{argmax}\limits_{a}Q^*(s,a) a∗=aargmaxQ∗(s,a)
DQN的想法就是通过一个神经网络 Q ( s , a ; w ) Q(s,a;w) Q(s,a;w)去拟合这个最优的动作价值函数 Q ∗ ( s , a ) Q^*(s,a) Q∗(s,a)。
根据折扣回报的定义可以得到 U t = R t + γ U t + 1 U_t=R_t+\gamma U_{t+1} Ut=Rt+γUt+1
对上式两边求期望: E [ U t ] = E [ R t + γ U t + 1 ] E[U_t]=E[R_t+\gamma U_{t+1}] E[Ut]=E[Rt+γUt+1]
DQN的输出 Q ( s t , a t ; w ) Q(s_t,a_t;w) Q(st,at;w)和 Q ( s t + 1 , a t + 1 ; w ) Q(s_{t+1},a_{t+1};w) Q(st+1,at+1;w)是对 E [ U t ] E[U_t] E[Ut]和 E [ U t + 1 ] E[U_{t+1}] E[Ut+1]的估计,因此
Q ( s t , a t ; w ) ≈ r t + γ ⋅ Q ( s t + 1 , a t + 1 ; w ) Q(s_t,a_t;w)\approx r_t+\gamma \cdot Q(s_{t+1},a_{t+1};w) Q(st,at;w)≈rt+γ⋅Q(st+1,at+1;w)
其中约等于左边是预测,右边是TD对象,记为 y t y_t yt
在 t t t时刻做出预测 Q ( s t , a t ; w t ) Q(s_t,a_t;w_t) Q(st,at;wt),TD对象可以这样计算:
y t = r t + γ ⋅ Q ( s t + 1 , a t + 1 ; w t ) = r t + γ ⋅ m a x a Q ( s t + 1 , a ; w t ) y_t=r_t+\gamma \cdot Q(s_{t+1},a_{t+1};w_t)=r_t+\gamma \cdot \mathop{max}\limits_{a}Q(s_{t+1},a;w_t) yt=rt+γ⋅Q(st+1,at+1;wt)=rt+γ⋅amaxQ(st+1,a;wt)
定义损失为 L t = 1 2 [ Q ( s t , a t ; w ) − y t ] 2 L_t=\frac{1}{2}[Q(s_t,a_t;w)-y_t]^2 Lt=21[Q(st,at;w)−yt]2
用梯度算法更新模型参数: w t + 1 = w t − α ⋅ ∂ L t ∂ w ∣ w = w t w_{t+1}=w_t-\alpha\cdot \frac{\partial L_t}{\partial w}|_{w=w_t} wt+1=wt−α⋅∂w∂Lt∣w=wt
强化学习和监督学习最大的区别是有没有显式的ground truth可以对训练进行监督。这里DL通过折扣回报关联了前后两个时刻,而且预测未来越短的时间动作序列具有越高的准确率,据此构造了一个隐式的ground truth,在TD算法中是TD对象,对模型参数进行更新。
reference
【王树森】深度强化学习(DRL):https://www.bilibili.com/video/BV12o4y197US