机器学习-强化学习

93 阅读9分钟

16.1 任务与奖赏

我们考虑一下如何种西瓜,种瓜有许多步骤,从一开始的选种,到定期浇水、施肥、除草、杀虫,经过一段时间才能收获西瓜。通常要等到收获后,我们 才知道种出的瓜好不好,若将得到好瓜作为辛勤种瓜劳动的奖赏,则在种瓜过程中当我们执行某个操作(例如,施肥)时,并不能立即获得这个最终奖赏,甚至难以判断当前操作对最终奖赏的影响,仅能得到一个当前反馈(例如,瓜苗看起 来更健壮了)。我们需多次种瓜,在种瓜过程中不断摸索,然后才能总结出较好的种瓜策略。这个过程抽象出来,就是“强化学习”

image.png

强化学习任务通常用马尔可夫决策过程(简称 MDP)来描述:机器处于环境 E 中,状态空间为 X,其中每个状态 是机器感知到的环境的描述,如在种瓜任务上这就是当前瓜苗长势的描述;机器能采取的动作构成了动作空间 A,如种瓜过程中有浇水、施不同的肥、使用不同的农药等多种可供选择的动作;若某个动作 a∈A 作用在当前状态 x 上,则潜在的转移函数 P 将使得环境从当前状态按某种概率转移到另一个状态,如瓜苗状态为缺水,若选择动作浇水,则瓜苗长势会发生变化,瓜苗有一定的概率恢复健康,也有一定的概率无法恢复;在转移到另一个状态的同时,环境会根据潜在的“奖赏”函数 R 反馈给机器一个奖赏,如保持瓜苗健康对应奖赏 +1,瓜苗凋零对应奖赏 -10,最终种出了好瓜对应奖赏 +100。

16.2 K-摇臂赌博机

16.2.1 探索与利用

与一般监督学习不同,强化学习任务的最终奖赏是在多步动作之后才能观察到,这里我们不妨先考虑比较简单的情形:最大化单步奖赏,即仅考虑一步操作。需注意的是,即便在这样的简化情形下,强化学习仍与监督学习有显著不同,因为机器需通过尝试来发现各个动作产生的结果,而没有训练数据告诉机器应当做哪个动作.

欲最大化单步奖赏需考虑两个方面:一是需知道每个动作带来的奖赏,二是要执行奖赏最大的动作。若每个动作对应的奖赏是一个确定值,那么尝试一遍所有的动作便能找出奖赏最大的动作。然而,更一般的情形是,一个动作的奖赏值是来自于一个概率分布,仅通过一次尝试并不能确切地获得平均奖赏值.

实际上,单步强化学习任务对应了一个理论模型,即“K-摇臂赌博机”。K-摇臂赌博机有K个摇臂,赌徒在投入一个硬币后可选择按下其中一个摇臂,每个摇臂以一定的概率吐出硬币,但这个概率赌徒并不知道。赌徒的目标是通过一定的策略最大化自己的奖赏,即获得最多的硬币.

image.png

若仅为获知每个摇臂的期望奖赏,则可采用“仅探索”法:将所有的尝试机会平均分配给每个摇臂(即轮流按下每个摇臂),最后以每个摇臂各自的平均吐币概率作为其奖赏期望的近似估计。若仅为执行奖赏最大的动作,则可采用“仅利用”法:按下目前最优的(即到目前为止平均奖赏最大的)摇臂,若有多个摇臂同为最优,则从中随机选取一个。 显然,“仅探索”法能很好地估计每个摇臂的奖赏,却会失去很多选择最优摇臂的机会;“仅利用”法则相反,它没有很好地估计摇臂期望奖赏,很可能经常选不到最优摇臂,因此,这两种方法都难以使最终的累积奖赏最大化.

事实上,“探索”和“利用”这两者是矛盾的,因为尝试次数有限,加强了一方则会自然削弱另一方,这就是强化学习所面临的“探素-利用窘境”。显然,欲累积奖赏最大,则必须在探索与利用之间达成 较好的折中.

16.2.2 -贪心

-贡心法基于一个概率来对探索和利用进行折中:每次尝试时,以 image.png 的概率进行探索,即以均匀概率随机选取一个摇臂;以1- 的概率进行利用,即选择当前平均奖赏最高的摇臂

image.png

16.2.3 Softmax

Softmax 算法基于当前已知的摇臂平均奖赏来对探索和利用进行折中,若各摇臂的平均奖赏相当,则选取各摇臂的概率也相当;若某些摇臂的平均奖赏明显高于其他摇臂,则它们被选取的概率也明显更高

Softmax算法中摇臂概率的分配是基于 Boltzmann分布

16.3 有模型学习

考虑多步强化学习任务,暂且先假定任务对应的马尔可大决策过程四元组 image.png 均为已知,这样的情形称为“模型已知”,即机器己对环境进行了建模,能在机器内部模拟出与环境相同或近似的状况,在已知模型的环境中学习称为“有模型学习”

16.3.1 策略评估

在模型已知时,对任意策略π能估计出该策略带来的期望累积奖赏

在模型已知时,对任意策略 能估计出该策略带来的期望累积奖赏。令函数 image.png 表示从状态 x 出发,使用策略 所带来的累积奖赏;函数image.png 表示从状态 x 出发,执行动作 a 后再使用策略 带来的累积奖赏。这里的 V(.) 称为“状态值函数”, Q().称为“状态-动作值函数”,分别表示指定“状态”上以及指定“状态-动作”上的累积奖赏。

由累积奖赏的定义,有状态值函数

image.png

16.3.2 策略改进

对某个策略的累积奖赏进行评估后,若发现它并非最优策略,则当然希望对其进行改进。理想的策略应能最大化累积奖赏。

image.png 一个强化学习任务可能有多个最优策略,最优策略所对应的值函数 V* 称为最优值函数,即

image.png

最优状态-动作值函数

image.png

上述关于最优值函数的等式,称为最优 Bellman 等式,其唯一解是最优值函数。

最优 Bellman 等式揭示了非最优策略的改进方式:将策略选择的动作改变为当前最优的动作。

16.3.3 策略迭代与值迭代

从一个初始策略(通常是随机策略)出发,先进行策略评估,然后改进策略,评估改进的策略,再进一步改进策略,……不断迭代进行策略评估和改进,直到策略收敛、不再改变为止.这样的做法称为“策略迭代”。

16.4 免模型学习

若学习算法不依赖于环境建模,则称为“免模型学习”。

16.4.1 蒙特卡罗强化学习

在免模型情形下,策略迭代算法首先遇到的问题是策略无法评估,这是由 于模型未知而导致无法做全概率展开,一种直接的策略评估替代方法是多次“采样”,然后求取平均累积奖赏来作为期望累积奖赏的近似,这称为蒙特卡罗强化学习。

16.4.2 时序差分学习

蒙特卡罗强化学习算法通过考虑采样轨迹,克服了模型末知给策略估计造 成的困难.此类算法需在完成一个采样轨迹后再更新策略的值估计,而前面介 绍的基于动态规划的策略迭代和值迭代算法在每执行一步策略后就进行值函 数更新.两者相比,蒙特卡罗强化学习算法的效率低得多,这里的主要问题是 蒙特卡罗强化学习算法没有充分利用强化学习任务的 MDP 结构。时序差分学习则结合了动态规划与蒙特卡罗方法的思想,能做到更高效的免模型学习.

16.5 值函数近似

“表格值函数”,即值函数能表示为一个数组,输入 i 对应的函数值就是数组元素;的值,且更改一个状态上的值不会影响其他状态上的值。

直接对连续状态空间的值函数进行学习,假定状态空间为 n 维实数空间 ,此时显然无法用表格值函数来记录状态值。先考虑简单情形,即值函数能表达为状态的线性函数。

image.png

其中x为状态向量,θ为参数向量。

由于此时的值函数难以像有限状态那样精确记录每个状态的值,因此这样值函数的求解被称为值函数近似。

16.6 模仿学习

在强化学习的经典任务设置中,机器所能获得的反馈信息仅有多步决策后的累积奖赏,但在现实任务中,往往能得到人类专家的决策过程范例,例如在种瓜任务上能得到农业专家的种植过程范例。从这样的范例中学习,称为“模仿学习”。

16.6.1 直接模仿学习

强化学习任务中多步决策的搜索空间巨大,基于累积奖赏来学习很多步之前的合适决策非常困难,而直接模仿人类专家的“状态-动作对”可显著缓解这一困难,我们称其为“直接模仿学习”。

16.6.2 逆强化学习

在很多任务中,设计奖赏函数往往相当困难,从人类专家提供的范例数据中反推出奖赏函数有助于解决该问题,这就是逆强化学习。