智能体利用完整轨迹数据估计出 Q π ( s , a ) Q_\pi(s,a) Qπ(s,a)的过程
因为策略评估的目的在于改进现有策略 π ( a ∣ s ) \pi(a|s) π(a∣s),而改进策略就涉及到选取最优行为 a , Q ( s , a ) a,Q(s,a) a,Q(s,a)刚好能衡量状态s时,采取各种动作a的价值(累积回报期望)。如果采用 V ( s ) V(s) V(s),则最终还是要由 V ( s ) V(s) V(s)(参考贝尔曼方程)计算出Q(s,a),而由于立即回报矩阵和状态转移数组未知,这一点做不到。因此,干脆直接从Q(s,a)出发进行策略评估和控制。
在当前策略 π \pi π下,假设我们获得了K条完整轨迹数据 [ ( s k , 0 , a k , 0 , r k , 1 ) , ⋯ , ( s k , L k , a k , L k , r k , L k + 1 ) , ( s T , a k , L k + 1 , r k , L k + 2 ) ] ‾ , k = 0 , 1 , ⋯ , K − 1 \underline{[(s_{k,0},a_{k,0},r_{k,1}),\cdots,(s_{k,L_k},a_{k,L_k},r_{k,L_k+1}),(s_T,a_{k,L_k+1},r_{k,L_k+2})]},k=0,1,\cdots,K-1 [(sk,0,ak,0,rk,1),⋯,(sk,Lk,ak,Lk,rk,Lk+1),(sT,ak,Lk+1,rk,Lk+2)],k=0,1,⋯,K−1
则估计Q(s,a)的批处理算法流程如下:
初访法(first-visit)
V(s)=全部轨迹中状态行为对的值**首次等于(s,a)**的所有三元组中的累积回报的均值
每访法(every-visit)
V(s)=全部轨迹中状态行为对的值**等于(s,a)**的所有三元组中的累积回报的均值
根据大数定律可知:如果求一个状态的累积回报时,找到的状态值为s的三元组的个数越多,所得的均值越接近Q(s,a)真实值。