- 深度强化学习理论与实践
- 龙强 章胜编著
- 2773字
- 2024-12-27 22:25:05
1.2.4 环境模型案例
【例1-1】 格子世界(Grid World)
想象一个机器人在如图1-3所示的网格中行走,其中格子(1,1)为障碍物,当机器人碰到墙(边缘)或障碍物时会保持不动。机器人初始状态为格子(0,0),其目标是移动到目标格子(0,3)。若机器人移动到格子(0,3),则过程结束。由于命令执行错误或轮子打滑等原因,机器人只有80%的概率会正确地执行移动指令,另外各有10%的概率会向与接收的指令垂直的两个方向移动。例如,当机器人获得向上移动的指令时,只有80%的概率会的确向上移动,另外分别有10%的概率向左或向右移动。
图1-3 格子世界示意图
格子世界问题是一个经典的强化学习问题,其状态空间和动作空间均是离散的。以下介绍格子世界问题马尔可夫决策模型的基本要素。
状态空间:状态定义为机器人可能处于的位置,从图1-3可知,机器人可能处在除障碍物位置(1,1)以外的任何一个位置,一共有11个,所以状态空间由11种状态组成,状态空间为
S={(0,0),(0,1),(0,2),…,(2,3)}
当然,为数学表达方便起见,也可以认为障碍物位置(1,1)也是一种状态,只不过这种状态从来不会出现而已。
动作空间:机器人可能接收到向上、向下、向左、向右4个方向移动的指令,每个移动方向都是一个动作。可以用
A={up,down,left,right}
或
A={0,1,2,3}
来表示动作空间。在编程计算时一般不直接用数字来表示某个动作,而是将数字转换成一个对应的向量,例如第0个、第1个动作分别对应着向量
a0=(1,0,0,0) 和 a1=(0,1,0,0)
这种只含0和1的向量叫作One-Hot向量。在机器学习中One-Hot向量经常用在分类问题中表示类别。
状态转移概率函数:根据机器人在收到移动指令后真正执行的移动方向的概率分布,状态转移概率可以用一系列离散函数表示。例如,当机器人处在状态(0,2)且被要求执行动作为down时,其动作转移概率函数为
在实际应用中,也可以用一个三维矩阵(张量)来表示所有的状态转移概率。
奖励函数:如前所述,奖励函数是环境本身的属性,在构建环境时定义。奖励函数的定义需要符合实际情况,一般来讲,应该让更有可能到达智能体希望到达的状态的行动获得更大的奖励;反之,让更有可能到达智能体希望避开的状态的行动获得更小的奖励。
本例中,智能体希望到达的目标状态是(0,3),于是可以用机器人执行动作后到达的状态离目标状态的曼哈顿距离(当前状态和目标状态之间最近的横纵格子数之和)的倒数来定义奖励函数。例如,在状态(2,2)时,执行动作up,状态可能转移到(2,1),此时奖励为1/4;也可能转移到(2,3),此时奖励为1/2;也可能转移到(1,2),此时奖励为1/2;其他不可能到达的状态不定义即时奖励,所以奖励函数为
很多时候环境并不能给智能体提供其全局信息,也就是说上述奖励函数中的曼哈顿距离是提供不了的,而只能反馈给智能体是否已经到达终止状态的信息,称这种奖励函数是有时延的。大部分棋类游戏的奖励函数是有时延的,棋手的目标是要在对弈中获胜,但其下的每步棋都只能等到胜负确定后才可以得到奖励。在这种情况下,可以定义交互过程中所有行动的奖励均为0,只有到达期望终止状态才可以得到+1的奖励,而到达非期望终止状态得到-1的奖励。例如棋类游戏中,胜负未定时所有的走子奖励均为0,如果棋手获胜则得到+1的奖励,若负于对手则得到-1的奖励。
本例中,若机器人到达状态(0,3),则获得奖励+1,若到达其他状态则获得奖励0,于是奖励函数为
与状态转移概率一样,奖励函数也可以用一个三维矩阵来表示。
折扣系数:用于计算累积折扣奖励,一般设γ∈(0,1)。
【例1-2】 倒立摆
倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。对倒立摆系统的研究能有效地反映控制中的许多典型问题:如非线性问题、稳健性问题、镇定问题、随动问题及跟踪问题等。通过对倒立摆的控制,可以用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。同时,其控制方法在军工、航天、机器人和一般工业过程领域中都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制和卫星飞行中的姿态控制等。
简化的倒立摆模型如图1-4所示,在长度为4.8个单位的滑轨上的小车中点放置一根可以左右自由摆动的摆杆,小车的两端通过皮带和两端的轮子连接,其中一个轮子上的电动机的转动可以控制小车左右移动。控制的目标是让小车的左右位移不超出滑轨范围,并且摆杆偏离竖直方向的角度不能超过15°,否则视为游戏结束。强化学习的目标是要学习到使小车保持在滑轨上且摆杆保持在允许偏离范围的最优控制策略。
以下介绍倒立摆系统马尔可夫决策过程的基本要素。
图1-4 倒立摆模型示意图
状态集合:描述倒立摆系统状态需要4个物理量,分别是小车偏离滑轨中心位置的位移、小车移动的速度、摆杆偏离竖直方向的角度和摆杆围绕支点转动的角速度,所以倒立摆系统的状态集合是由四维向量组成的连续无限集合,即
动作集合:小车只能执行向左或向右移动的动作,所以动作集合为
A={left,right} 或 A={0,1} 或 A={(1,0),(0,1)}
状态转移概率:根据倒立摆系统的物理机理计算得出。倒立摆系统的运动状态满足一个微分方程,在已知状态和动作的情况下,求解微分方程即可得到系统转移到的下一种状态。倒立摆系统并没有显式的状态转移概率函数,是一个无模型环境,需要用免模型强化学习方法求解。
奖励函数:在每个时间步中,若小车的位移和摆杆的偏离都仍在允许范围内,则获得即时奖励1,否则游戏结束,不获得奖励或惩罚(奖励为0)。
折扣系数:用于计算累积折扣奖励,一般取γ∈(0,1)。
格子世界和倒立摆系统是两个典型的强化学习环境模型,它们有很多不同之处。格子世界是要学习一个策略,属于策略问题,而倒立摆系统是要学习一个控制,属于控制问题。策略问题和控制问题是强化学习的两种典型应用场景。格子世界的状态空间和动作空间都是有限离散的,是离散型强化学习问题;倒立摆系统的状态空间是一个无限连续空间,是连续型强化学习问题,状态空间离散和连续是环境模型的两种存在状态,用强化学习求解基于离散状态空间和基于连续状态空间的问题的方法也是很不相同的,一般来讲离散状态空间问题要比连续状态空间问题更简单一些,但若离散状态空间的尺度非常大(例如围棋游戏的状态空间维度达到约10170的量级),则问题也是非常复杂的。格子世界的状态转移概率和奖励函数都可以用矩阵表示,是一个有模型环境;倒立摆系统的状态转移过程需要求解一个微分方程,是一个无模型环境,基于模型和免模型是强化学习的两种典型学习范式,使用的方法大不相同。格子世界的奖励是延时给出的(第2种奖励函数),而倒立摆系统的奖励是实时反馈的,延时和实时是奖励函数的两种反馈方式,一般来讲,延时反馈的奖励更难处理,因为智能体在学习初期可能很长时间内都不可以得到环境的有效反馈,这会给智能体优化策略造成困难。