:::info
无模型强化学习——与基于模型的方法相比,不需要建立转移和奖励模型的显式表示,直接对动作价值函数建模。
本章首先介绍分布均值的增量估计,它在估计回报均值中起着重要作用。然后,讨论了一些常见的免模型算法和方法,以更有效地处理延迟奖励。最后,我们讨论了如何使用函数近似从我们的经验中进行推广。
:::
1. 均值的增量估计 Incremental Estimation of the Mean
许多免模型方法从样本中增量估计(incrementally estimate)动作价值函数。
假设我们只关心个样本中单个变量
的期望:
,其中
为样本,则增量更新为:
可以通过引入学习速率函数来重写该方程:
为了确保收敛,通常选择使得
和
。第一个条件确保步长足够大,第二个条件确保步长足够小。
若学习速率为常数,则旧样本的权重以速率呈指数衰减,在观察
后使用该规则更新估计:
。
更新的幅度与样本和先前估计之间的差异成正比。样本和先前估计之间的差异称为时间差异误差temporal difference error。
2. Q-Learning
Q-Learning:使用动作价值函数的增量估计。更新来自Bellman期望方程的动作价值形式:
不使用和
,我们可以根据对奖励
和下一个状态
的样本的期望重写上述等式:
根据增量更新规则来估计动作价值函数:
为了保证动作价值函数的收敛性,需要采用某种形式的探索策略,如贪心或softmax,就像前一章中对基于模型的方法所做的那样。
3. Sarsa
Sarsa:是Q学习的替代方法,使用在每一步更新Q函数。使用实际的下一个动作
来更新
,而不是最大化所有可能的动作:
在适当的探索策略下,将收敛到
Sarsa被称为一种同轨on-policy强化学习方法,因为它试图在遵循探索策略时直接估计其价值。相比之下,Q学习是一种离轨off-policy方法,因为它试图在遵循探索策略的同时找到最优策略的值。
虽然Q-learning和Sarsa都收敛到最优策略,但收敛速度取决于应用。
4. 资格迹 Eligibility Traces
Q-learning和Sarsa的缺点之一是学习可能非常缓慢,尤其是在奖励稀疏(sparse rewards)的情况下。
可以修改Q-learning和Sarsa,以使用资格迹将奖励向后传播到导致奖励来源的状态和动作。信用指数衰减,因此更接近奖励的状态被赋予更大的价值,通常使用作为指数衰减参数。具有资格迹的Q-learning和Sarsa通常称为
和
。
令表示Sarsa时间差异更新:
动作价值函数更新:
然后使用折扣因子和指数衰减参数衰减访问次数:
总之,的更新规则是:
虽然资格迹的影响在奖励稀疏的环境中特别明显,但该算法可以在奖励更为分散的一般环境中加快学习速度。
在将资格迹应用于离轨算法(如Q-learning)时,必须特别小心,该算法试图学习最优策略的值,而资格迹传播从探索策略获得的值。这种不匹配可能导致学习不稳定。
5. 奖励塑造 Reward Shaping
奖励函数增强也可以改善学习过程,尤其是在奖励稀疏的问题中。
奖励塑造 Reward Shaping:通过结合领域知识来加快训练速度,在训练过程中修改奖励函数。比如在训练过程中,使用代替
作为奖励。
当然,在奖励中加入可以改变最优策略。在原始奖励下最优的策略在奖励塑造下仍然是最优的,当且仅当,对于某些势能函数
,有
。
6. 动作价值函数近似 Action Value Function Approximation
:::info
本章中讨论的算法假设了离散的状态和动作空间,其中动作价值函数可以存储在查找表中。我们可以调整我们的算法以使用价值函数近似,使能够将其应用于具有大型或连续空间的问题,并从有限的经验中进行推广。
:::
与第8章中在已知模型背景下采用的方法类似,当模型未知时,我们将使用来表示动作价值函数的参数近似。
为了说明这个概念,将推导一个使用参数近似的Q-learning版本。
为了最小化近似值和最优动作价值函数之间的损失,定义:
(其中1/2是为了求导方便。)
期望是高于遵循最优策略时所经历的状态-动作对。?
将损失最小化的常见方法是使用某种形式的梯度下降法。损失的梯度是:
如果我们应用梯度下降,更新规则是:,其中,
是步骤因子或学习速率。
可以使用状态-动作对的样本来近似上述更新规则:
但是,不能直接计算上式,因为这需要知道最优策略,这正是我们试图解决的问题。相反,我们试图从观察到的转移和动作价值近似值来估计:
于是,*更新规则变为:
7. 经验回放 Experience Replay
使用全局函数近似和强化学习的一个主要挑战是灾难性遗忘catastrophic forgetting。
灾难性遗忘可以通过经验回放experience replay来缓解——在训练迭代中存储固定数量的最近经验元组。从这个回放内存replay memory中均匀采样一批(batch)元组,以提醒我们避免已经发现的糟糕策略。
更新方程从上节的修改为:,其中
是大小为
的随机批(batch)中的第
个经验元组。
经验回放experience replay允许经验元组对多次学习做出贡献,从而提高数据效率。此外,从回放内存replay memory中均匀随机采样,打破了从rollout中获得的其他相关序列,从而降低了梯度估计的方差。