强化学习的基本概念(实例讲解)

图 1 所示的“Frozen Lake”游戏的场景是一个结了冰的湖面(即 4×4 大小的方格),要求智能体从开始点“Start”走到目标点“Goal”,但是不能掉进冰窟窿里(即图中标注的“Hole!!!”)。
“Frozen Lake”游戏示意图
图 2:“Frozen Lake”游戏示意图

这个小游戏有两种模式:“有风”模式和“无风”模式。两种模式的区别是,在“有风”模式下,智能体的移动会受到风的影响,例如,智能体当前的位置是 S3,智能体选择向右走一步,“无风”模式下智能体会到达 S4 状态,而在“有风”模式下,智能体的位置就不确定了,有可能会被风吹到任意状态,例如 S7

人类来玩“Frozen Lake”,很简单,但是智能体并不知道自己所处的环境是什么样子,也不知道要怎么去玩这个游戏,只能通过和环境交互,即不断地尝试每一种动作,然后根据环境的反馈来判断刚才的动作是好还是不好。

例如智能体当前处在 S5 状态,采取了一个向右的动作,结果掉进了冰窟窿,此时环境会给它一个负的反馈,告诉它刚才这个动作是不好的。而如果智能体处在 S15 状态,采取了一个向右的动作,环境则会给它一个正的反馈,因为它顺利到达了目标点。

智能体需要通过学习来得到每一个中间动作(或状态)的奖励值,之后的策略就是选择一条累积奖励最大的动作序列(即每一次都选择当前状态下奖励值最大的那个动作执行)。那么,智能体是如何通过学习得到每一个中间动作(或状态)奖励值的呢?

1) 累积奖励

在“Frozen Lake”游戏中,智能体从“Start”走到目标点“Goal”需要经过一个序列的中间状态,同时也需要根据策略做出一系列的动作。通常根据智能体执行完一个序列的动作后所获得的累积奖励来评判这个策略的优劣,累积得到的奖励越大,则认为策略越优。

计算累积奖励有两种方式,一种是计算从当前状态到结束状态的所有奖励值之和:

Gt=rt+1+rt+2+...+rt+T

上面适用于有限时界(Finite-horizon)情况下的强化学习,但是在有些无限时界(Finite-horizon)情况,智能体要执行的可能是一个时间持续很长的任务,比如自动驾驶,如果使用上式计算累积奖励值显然是不合理的。

需要一个有限的值,通常会增加一个折扣因子,如下式:


在上式中,0≤γ≤1 。当 γ 的值等于 0 时,则智能体只考虑下一步的回报;当 γ 的值越趋近于 1,未来的奖励就会被越多地考虑在内。需要注意的是,有时候我们会更关心眼下的奖励,有时候则会更关心未来的奖励,调整的方式就是修改 γ 的值。

2) 学习和规划

学习(Learning)问题不同于规划(Planning)问题,规划问题一般只需求得一个解,或者寻找一条路径,而学习问题是要求得一个策略(或者说是对一个问题的解决方法的建模),智能体使用这个策略去采取一系列的动作并完成任务,例如在“Frozen Lake”游戏中从开始点“Start”走到目标点“Goal”。

在学习问题中,我们对问题往往没有一个完整的描述,例如在“Frozen Lake”游戏中,智能体对环境并不清楚,在初始情况下,对于每一个动作(或状态)也没有一个固定的奖励,智能体只有在掉进冰窟窿或者到达目标点的时候才会得到一个相应的奖励值。而且如果是在“有风”的模式下,我们甚至不确定执行一个动作后会到达哪个状态。

而在规划问题中,我们有着关于这个问题的完整描述,如求最短路径问题,已知图中所有的节点和所有的边,以及每一条边上的权重。虽然学习问题不同于规划问题,但是两者也有一定的联系。基于模型(Model-based)的强化学习方法即拥有关于环境的完整描述(例如所有的环境状态、状态转移概率矩阵及关于动作或状态的奖励等)。

基于模型的强化学习方法会先从环境中恢复这些环境信息,并保存在一个模型中(即后面会介绍的马尔可夫决策过程)。在得到这个模型之后就可以使用规划的方法来解决问题了。与之对应的还有无模型的(Model-free)强化学习方法,这类方法不需要知道完整的环境信息,也不会对环境建模,而是通过直接和环境交互来进行学习的。

关于强化学习和传统的有监督学习的区别,埃塞姆·阿培丁(Ethem Alpaydin)教授在其所著的 Introduction to Machine Learning 一书中提到:有监督学习是“learning with a teacher”,而强化学习是“learning with a critic”。

批评者(Critic)不会告诉我们做什么,只会在事后告诉我们做得怎么样(例如在“Frozen Lake”游戏中,只有在智能体掉进冰窟窿或者到达目标位置后,才会得到一个反馈信息,而这时游戏已经结束了),所以需要根据批评者事后的评价回头去评估和调整我们之前的动作,直到能得到批评者最好的评价。