基础知识
什么是强化学习
强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题
举例说明
以种西瓜举例
种瓜有许多步骤,从一开始的选种,到定期浇水、施肥、除草、杀虫,经过一段时间才能收获西瓜。通常要等到收获后,我们才知道种出的瓜好不好。若将得到好瓜作为辛勤种瓜劳动的奖赏,则在种瓜过程中当我们执行某个操作(例如,施肥)时,并不能立即获得这个最终奖赏,甚至难以判断当前操作对最终奖赏的影响,仅能得到一个当前反馈(例如,瓜苗看起来更健壮了)。我们需多次种瓜,在种瓜过程中不断摸索,然后才能总结出较好的种瓜策略。这个过程抽象出来,就是“强化学习”
原理
强化学习任务通常用马尔可夫决策过程(Markov Decision Process,简称MDP)来描述:
机器处于环境E中,状态空间为X,其中每个状态x∈X是机器感知到的环境的描述,如在种瓜任务上这就是当前瓜苗长势的描述;
机器能采取的动作构成了动作空间A,如种瓜过程中有浇水、施不同的肥、使用不同的农药等多种可供选择的动作;若某个动作α∈A作用在当前状态x上,则潜在的转移函数P将使得环境从当前状态按某种概率转移到另一个状态,如瓜苗状态为缺水,若选择动作浇水,则瓜苗长势会发生变化,瓜苗有一定的概率恢复健康,也有一定的概率无法恢复;在转移到另一个状态的同时,环境会根据潜在的“奖赏”(reward)函数R反馈给机器一个奖赏,如保持瓜苗健康对应奖赏+1,瓜苗凋零对应奖赏-10,最终种出了好瓜对应奖赏+100.
综合起来,强化学习任务对应了四元组E=〈X,A,P,R〉,其中P指定了状态转移概率,R指定了奖赏;在有的应用中,奖赏函数可能仅与状态转移有关。
给西瓜浇水的马尔可夫决策过程
该任务中只有四个状态(健康、缺水、溢水、凋亡)和两个动作(浇水、不浇水)
在每一步转移后,若状态是保持瓜苗健康则获得奖赏1,瓜苗缺水或溢水奖赏为-1,这时通过浇水或不浇水可以恢复健康状态,当瓜苗凋亡时奖赏是最小值-100且无法恢复。
图中箭头表示状态转移,箭头旁的α,p,r分别表示导致状态转移的动作、转移概率以及返回的奖赏。容易看出,最优策略在“健康”状态选择动作“浇水”、在“溢水”状态选择动作“不浇水”、在“缺水”状态选择动作“浇水”、在“凋亡”状态可选择任意动作。
需注意“机器”与“环境”的界限
- 例如在种西瓜任务中,环境是西瓜生长的自然世界;
- 在下棋对弈中,环境是棋盘与对手;
- 在机器人控制中,环境是机器人的躯体与物理世界。
总之,在环境中状态的转移、奖赏的返回是不受机器控制的,机器只能通过选择要执行的动作来影响环境,也只能通过观察转移后的状态和返回的奖赏来感知环境。
在强化学习中并没有监督学习中的有标记样本(即“示例-标记”对),换言之,没有人直接告诉机器在什么状态下应该做什么动作,只有等到最终结果揭晓,才能通过“反思”之前的动作是否正确来进行学习。因此,强化学习在某种意义上可看作具有“延迟标记信息”的监督学习问题。
策略
在强化学习(Reinforcement Learning, RL)中,"策略"(Policy)是指智能体(Agent)选择动作的规则或方法。策略定义了在给定状态下智能体应该采取的动作,它是强化学习的核心组成部分之一。策略可以是确定性的或随机性的:
-
确定性策略:在这种策略中,对于每个给定的状态,智能体总是选择相同的动作。
-
随机性策略:在这种策略中,智能体根据某种概率分布来选择动作,这意味着在相同状态下智能体可能选择不同的动作。
策略通常可以用函数π(s)来表示,它将状态映射到动作上,即π(s)→a。在实际应用中,策略可以有不同的形式:
- 贪婪策略:总是选择当前看起来最优的动作。
- ε-贪心策略:大多数时候选择最优动作,但有ε的概率随机选择其他动作,以探索新的可能。
- 软性策略:根据概率分布选择动作,而不是总是选择最优动作。
强化学习的目标通常是学习一个最优策略,使得智能体能够最大化其长期累积的奖励。为了实现这一目标,智能体需要在环境中通过尝试和错误来学习,这个过程称为探索(Exploration)和利用(Exploitation):
- 探索:尝试新的或不那么熟悉的动作,以发现更好的策略。
- 利用:使用当前已知的最佳策略来获取奖励。
强化学习算法,如Q学习(Q-Learning)、Sarsa、深度Q网络(DQN)、策略梯度方法等,都是用来学习最优策略的不同方法。这些算法通过与环境的交互来更新策略,以便智能体能够更好地导航环境并实现其目标。
单步强化学习任务
先考虑比较简单的情形:最大化单步奖赏,即仅考虑一步操作。需注意的是,即便在这样的简化情形下,强化学习仍与监督学习有显著不同,因为机器需通过尝试来发现各个动作产生的结果,而没有训练数据告诉机器应当做哪个动作
欲最大化单步奖赏需考虑两个方面:
- 一是需知道每个动作带来的奖赏,
- 二是要执行奖赏最大的动作。
若每个动作对应的奖赏是一个确定值,那么尝试一遍所有的动作便能找出奖赏最大的动作。然而,更一般的情形是,一个动作的奖赏值是来自于一个概率分布,仅通过一次尝试并不能确切地获得平均奖赏值。
有模型学习
什么是有模型学习
策略评估
为叙述简洁,后面在涉及上述两种累积奖赏时,就不再说明奖赏类别
令x0表示起始状态,α0表示起始状态上采取的第一个动作;对于T步累积奖赏,用下标t表示后续执行的步数。我们有状态-动作值函数
由于MDP具有马尔可夫性质,即系统下一时刻的状态仅由当前时刻的状态决定,不依赖于以往任何状态,于是值函数有很简单的递归形式。对于T步累积奖赏有
需注意的是,正是由于P和R已知,才可以进行全概率展开
V(x)是x的累计奖赏
策略改进
先最优化策略,然后再最优化动作
对某个策略的累积奖赏进行评估后,若发现它并非最优策略,则当然希望对其进行改进。理想的策略应能最大化累积奖赏
当策略空间无约束时式(16.12)的V*才是最优策略对应的值函数,例如对离散状态空间和离散动作空间,策略空间是所有状态上所有动作的组合,共有|A||X|种不同的策略。
若策略空间有约束,则违背约束的策略是“不合法”的,即便其值函数所取得的累积奖赏值最大,也不能作为最优值函数。
策略迭代与值迭代
知道了如何评估一个策略的值函数,以及在策略评估后如何改进至获得最优策略。将这两者结合起来即可得到求解最优解的方法:
- 从一个初始策略(通常是随机策略)出发,
- 先进行策略评估,然后改进策略,
- 评估改进的策略,再进一步改进策略,
- ……不断迭代进行策略评估和改进,直到策略收敛、不再改变为止。
这样的做法称为“策略迭代”(policy iteration)。
策略改进与值函数的改进是一致的,因此可将策略改进视为值函数的改善,
于是可得到值迭代(valueiteration)算法,
小结
在模型已知时强化学习任务能归结为基于动态规划的寻优问题。与监督学习不同,这里并未涉及到泛化能力,而是为每一个状态找到最好的动作
免模型学习
什么是免模型学习
亦称“无模型学习”。在现实的强化学习任务中,环境的转移概率、奖赏函数往往很难得知,甚至很难知道环境中一共有多少状态.若学习算法不依赖于环境建模,则称为“免模型学习”(model-free learning),这比有模型学习要困难得多
在免模型情形下,策略迭代算法首先遇到的问题是策略无法评估,这是由于模型未知而导致无法做全概率展开.此时,只能通过在环境中执行选择的动作,来观察转移的状态和得到的奖赏。
策略迭代算法估计的是状态值函数V,而最终的策略是通过状态-动作值函数Q来获得。当模型已知时,从V到Q有很简单的转换方法,而当模型未知时,这也会出现困难。于是,我们将估计对象从V转变为Q,即估计每一对“状态-动作”的值函数。
值函数近似
上述一直假定强化学习任务是在有限状态空间上进行,每个状态可用一个编号来指代;值函数则是关于有限状态的“表格值函数”,即值函数能表示为一个数组,输入 i 对应的函数值就是数组元素 i 的值,且更改一个状态上的值不会影响其他状态上的值
现实强化学习任务所面临的状态空间往往是连续的,有无穷多个状态
一个办法是对状态空间进行离散化,将连续状态空间转化为有限离散状态空间,然后就能使用前面介绍的方法求解。但目前没有办法可以 有效地对状态空间进行离散化,尤其是在对状态空间进行探索之前
Sarsa算法和q-学习算法,可以参考 sheng的学习笔记-AI-时序差分学习-优快云博客
模仿学习(imitation learning)
亦称“学徒学习”(apprenticeship learning),“示范学习”(learning from demonstration),“观察学习”(learning by watching);
在强化学习的经典任务设置中,机器所能获得的反馈信息仅有多步决策后的累积奖赏,但在现实任务中,往往能得到人类专家的决策过程范例,例如在种瓜任务上能得到农业专家的种植过程范例。从这样的范例中学习,称为“模仿学习”
直接模仿学习
强化学习任务中多步决策的搜索空间巨大,基于累积奖赏来学习很多步之前的合适决策非常困难,而直接模仿人类专家的“状态-动作对”可显著缓解这一困难,我们称其为“直接模仿学习”。
有了这样的数据,就相当于告诉机器在什么状态下应选择什么动作,于是可利用监督学习来学得符合人类专家决策轨迹数据的策略。
- 将所有轨迹上的所有“状态-动作对”抽取出来,构造出一个新的数据集。
- 把状态作为特征,动作作为标记
- 对这个新构造出的数据集合D使用分类(对于离散动作)或回归(对于连续动作)算法即可学得策略模型。学
- 得的这个策略模型可作为机器进行强化学习的初始策略,再通过强化学习方法基于环境反馈进行改进,从而获得更好的策略。
逆强化学习
在很多任务中,设计奖赏函数往往相当困难,从人类专家提供的范例数据中反推出奖赏函数有助于解决该问题,这就是逆强化学习(inverse reinforcement learning)
在逆强化学习中,我们知道状态空间X、动作空间A,并且与直接模仿学习类似,有一个决策轨迹数据集{T1,T2......Tm}。
逆强化学习的基本思想是:欲使机器做出与范例一致的行为,等价于在某个奖赏函数的环境中求解最优策略,该最优策略所产生的轨迹与范例数据一致。我们要寻找某种奖赏函数使得范例数据是最优的,然后即可使用这个奖赏函数来训练强化学习策略。
我们难以获得所有策略,一个较好的办法是从随机策略开始,迭代地求解更好的奖赏函数,基于奖赏函数获得更好的策略,直至最终获得最符合范例轨迹数据集的奖赏函数和策略
注意在求解更好的奖赏函数时,需将式(16.39)中对所有策略求最小改为对之前学得的策略求最小。