上图是一个DQN算法的伪代码,在实际应用过程中容易出现在状态s(t)上采取动作a(t)然后得到奖励r(s(t),a(t)),但是在不确定的环境中下一个状态可能有很多种,在这种情况下如果采取上图所示训练过程将导致Q函数不收敛。不收敛的原因在于奖励函数r(s(t),a(t))通常是不变的,但是下一个状态有很多种即argmax Q(s(t+1),a(t+1))是不同的,所以在同样的s(t)下的状态动作转移对是不一样的,在更新的时候将导致不收敛。
对于这种情况将如何改进强化学习算法?
奖励函数是在状态s下采取动作就确定了吗?可否根据下一个状态来决定?