【强化学习】中Q-learning,DQN等off-policy算法不需要重要性采样的原因

由于Q-learning采用的是off-policy,如下图所示
【强化学习】中Q-learning,DQN等off-policy算法不需要重要性采样的原因_第1张图片
但是为什么不需要重要性采样。其实从上图算法中可以看到,动作状态值函数是采用1-step更新的,每一步更新的动作状态值函数的R都是执行本次A得到的,而我们更新的动作状态值函数就是本次执行的动作A的 Q ( S , A ) Q(S,A) Q(S,A)。就算A不是通过 g r e e d y greedy greedy策略选择的(是通过 ϵ − g r e e d y \epsilon-greedy ϵgreedy采样得到),对 Q ( S , A ) Q(S,A) Q(S,A)估计的更新也不会受到任何影响。因为对于下一个动作的选取是贪心的 max ⁡ a Q ( s ′ , a ) \max_{a}Q(s',a) maxaQ(s,a)。但是如果是n-step更新,则会出现问题
Q ( s t , a t ) = Q ( s t , a t ) + α [ R t + γ R t + 1 + γ 2 max ⁡ a Q ( s t + 2 , a ) − Q ( s t , a t ) ] Q(s_t,a_t)=Q(s_t,a_t)+\alpha[R_{t}+\gamma R_{t+1}+\gamma^2 \max_a Q(s_{t+2},a)-Q(s_t,a_t)] Q(st,at)=Q(st,at)+α[Rt+γRt+1+γ2amaxQ(st+2,a)Q(st,at)]
如上式所示,还是利用off-policy采样, R t R_t Rt的采样没有问题,但是 R t + 1 R_{t+1} Rt+1就会出问题,因为这一步的动作 a t + 1 a_{t+1} at+1是使用 ϵ − g r e e d y \epsilon-greedy ϵgreedy得到的,不是我们要优化的 g r e e d y greedy greedy策略。因此这种更新方法才需要添加重要性采样系数。如下面这个算法所示

【强化学习】中Q-learning,DQN等off-policy算法不需要重要性采样的原因_第2张图片
这是因为,在1-step中,我们更新 ( A t , S t ) (A_t,S_t) (At,St)状态动作对时,并不需要知道他是根据什么分布得来的。但是在n-step中,如果想利用 R t + 1 R_{t+1} Rt+1以后的信息时,我们就需要使用重要性采样来处理后序的动作。

另一种解释可以将最优贝尔曼公式写为如下所示
Q ( s , a ) = R ( s , a ) + γ ∑ s ′ P s → s ′ a max ⁡ a ′ Q ( s ′ , a ′ ) Q(s,a) = R(s,a)+\gamma \sum_{s'}P_{s\to s'}^a \max_{a'}Q(s',a') Q(s,a)=R(s,a)+γsPssaamaxQ(s,a)
其中 P s → s ′ a P_{s\to s'}^a Pssa为模型动力学的状态转移概率,第二项是计算最大动作状态值函数的期望。Q-learning不是使用状态转移概率来计算期望,而是使用采样逼近的方式。 P s → s ′ a P_{s\to s'}^a Pssa是根据环境的状态转移概率确定的,与策略的分布无关,因此当使用另一个策略分布进行采样时不需要用重要性采样。

DQN与DDQN等类似算法中off-policy是否使用重要性采样也可以使用上述方法判断。DQN的经验回放采用均匀采样的过程就是为了估计上式的第二项的期望。

你可能感兴趣的:(强化学习,强化学习薄荷糖)