Q-learning是一种无模型RL的形式,它也可以被视为异步DP的方法 [2] 。它通过体验行动的后果,使智能体能够在马尔可夫域中学习以最优方式行动,而无须构建域的映射。学习的过程类似于TD方法:智能体在特定状态下尝试行动,并根据其收到的即时奖励或处罚以及对其所处状态的值的估计来评估其后果。通过反复尝试所有状态的所有行动,它可以通过长期折扣奖励来判断总体上最好的行为。Q-learning是一种原始的学习形式,但是,它可以作为更复杂方法的基础。
对于任何FMDP,Q-learning在从当前状态开始的所有后续步骤中以最大化总奖励的期望值为目标来找到最优的策略。在给定无限探索时间和部分随机策略的情况下,Q-learning可以为任何给定的FMDP确定最优动作选择策略。Q命名了返回奖励(用于提供强化)的函数,并且可以说它代表在给定状态下采取的动作的“质量”。
回想一下,RL涉及一个智能体、一组状态S和每个状态的一组动作A。通过执行动作a∈A,智能体在状态之间转换。在特定状态下执行动作可以为智能体提供奖励(数字分数)。智能体的目标是最大化其总(未来)奖励。它通过将未来状态可获得的最大奖励添加到实现其当前状态的奖励来做到这一点,从而通过潜在的未来奖励有效地影响当前行动。该潜在奖励是从当前状态开始的所有未来步骤的奖励的预期值的加权和。
作为一个例子,想象一下乘火车的过程,在这个过程中,奖励是用乘火车花费的总时间的负值来衡量的(或者,乘火车的成本等于乘火车的时间)。一种策略是,一旦车门打开,就立即进入车门,尽量缩短自己的初始等待时间。然而,如果火车很拥挤,在进门之后,会有很漫长的拥挤过程。于是,总的登车时间或花费是:
0秒等待时间+15秒拥挤时间
第二天,通过随机的机会(探索),你决定等待,让其他人先下车。这最初会导致更长的等待时间,但是避免了登车过程中的拥挤。总的来说,这种策略比前一天有更高的奖励,因为现在总的登机时间是:
5秒等待时间+0秒拥挤时间
通过探索可以发现,尽管最初的等待花费了一定的时间(或负面奖励),但总时间消耗更低,也揭示了更有价值的策略。
从状态Δt步进入未来步长的权重计算为γ Δt 。γ(折扣因子)是介于0和1(0<γ<1)之间的数值,并且具有对较迟收到的奖励(反映出“良好开端”的价值)进行估值的效果。γ也可以被解释为在每一步Δt都成功(或生存)的概率。因此,该算法具有计算状态-动作组合质量的功能:
Q:S×A→R
Q-learning的训练过程如表1-1和表1-2所示,首先把Q-learning状态表的动作初始化为0,然后通过训练更新每个单元。在学习开始之前,Q被初始化为任意可能的固定值(由程序员选择)。然后,在每个时间t智能体选择动作a t ,观察奖励r t ,进入新状态s t+1 (可能取决于先前状态s t 和所选的动作),并对Q进行更新。该算法的核心是一个简单的值迭代更新过程,即使用旧值和新信息的加权平均值:
其中,r t 是从状态s t 移动到状态s t+1 时收到的奖励,α(0<α<1)是学习率,Q(s t ,a t )为旧值,max a Q(s t+1 ,a)为新信息。
表1-1 初始化Q表
表1-2 训练后的Q表
当状态s t+1 是最终状态或终止状态时,算法的一个episode结束。当然,Q-learning也可以在非episode任务中学习。如果折扣因子小于1,即使问题可能包含无限循环,操作值也是有限的。对所有的最终状态s T ,Q(s T ,a)从不更新,但是它设置观测到状态s T 的奖励值r。在大多数情况下,Q(s T ,a)可以取0。
学习率(或步长)α确定了新获取的信息在多大程度上覆盖旧信息。因子0使得智能体什么都不学习(专门利用先验知识),而因子1使智能体只考虑最新信息(忽略先验知识以探索可能性)。在完全确定的环境中,学习率α t =1是最佳的。当问题是随机的时,算法在某些技术条件下收敛于需要将其减小到0的学习率。在实践中,通常使用恒定的学习率,例如对于所有t,α t =0.1。
折扣因子γ决定了未来奖励的重要性。因子0将通过仅考虑当前奖励(即r t (在上面的更新规则中))使智能体“近视”(或短视),而接近1的因子将使智能体努力获得长期高奖励。如果折扣因子达到或超过1,则操作值可能会发散。对于γ=1,没有终止状态,或者智能体从未达到过,那么所有环境历史就变得无限长,这时使用加法通常导致未折扣奖励的值变得无限大。即使折扣因子仅略低于1,当使用人工神经网络近似值函数时,Q函数学习也会导致误差和不稳定性的传播。在这种情况下,从较低的折扣因子开始并将其增加到最终值会加速学习。
由于Q-learning是迭代算法,因此它隐含地假定在第一次更新发生之前的初始条件。高初始值,也称为“乐观初始条件”,可以鼓励探索:无论选择何种动作,更新规则将使其具有比其他替代方案更低的值,从而增加其选择概率。第一个奖励r可用于重置初始条件。根据这个想法,第一次采取行动时,奖励用于设置Q的值。这允许在固定确定性奖励的情况下立即学习。包含初始条件复位的模型预计会比假设任意初始条件的模型能够更好地预测参与者的行为。在重复的二元选择实验中,初始条件复位似乎与人类行为一致。
最简单的Q-learning在表格中存储数据。这种方法随着越来越多的状态/行动而动摇,当状态和行动的数量非常多的时候,查询表的时间会非常长,以至于Q-learning在时间和实时性上不再有意义。所以找到一种方式来代替Q表是很有必要的。
一个可行的方法是函数近似。Q-learning可以与函数近似相结合,这使得即使在状态空间连续的时候也可以将算法应用于更大的问题成为可能。函数近似的一种解决方案是使用(适应的)人工神经网络作为函数逼近器。函数近似可以加速有限问题中的学习,因为该算法可以将较早的经验推广到先前看不见的状态。
减少状态/动作空间的另一种技术是量化可能的值。考虑一个例子,学习平衡手指上的木棍。描述某个时间点的状态涉及手指在空间中的位置、速度、杆的角度和杆的角速度。这产生了描述一个状态的四元素向量,即编码为四个值的一个状态的快照。问题是存在无限多种可能的状态,要缩小有效操作的可能空间,可以为存储桶(bucket)分配多个值。虽然手指与起始位置的确切距离(从无穷远到无穷远)是未知的,但是,我们可以关注手指是否远离(近,远)其起始位置。