本系列为学习赵世钰老师的《强化学习的数学原理》所作的学习笔记.
课程视频网址:https://space.bilibili.com/2044042934
1.1.1 网格世界示例
首先给出了课程中需要用的模拟场景: 一个有边界的网格世界. 由起点, 终点和禁止网格. 目的是得到一条从起点到终点的最优路径.
1.1.2 State, Action, Policy 状态, 动作, 策略
1.1.2.1 状态和状态空间
在网格世界示例中, 我们将状态定义为栅格的索引. 实际上, 更复杂的建模状态中可以包含:速度, 加速度, 角速度等等信息.
将一系列状态放进一个集合中称之为状态空间
1.1.2.2 动作和动作空间
如上图所示, 我们将动作定义为:向上走, 向右走等等. 将一系列动作放进一个集合中称之为动作空间
每一个状态都有对应的动作空间, 比如对于左上角栅格状态, 它能采取的动作只有向右, 向下和不动. 因此它的动作空间为:
也就是说, 动作空间是一个关于状态空间的函数:
1.1.2.3 状态转移
从执行向右的动作到, 可以写作:
一般的, 采取动作从一个状态转移到另一个状态的过程, 定义为状态转移:
我们列举出了网格世界示例中, 所有的状态转移组合:
如果我们用条件概率来表达状态转移:
1.1.2.4 Policy 策略
策略是指对于每一个状态而言, 为了抵达目的应该采取的动作称之为策略. 比如上图给出了在不同状态下, 绿色箭头就是对应的策略.
我们将策略定义为, 也就是当状态为时采取动作的概率, 上图的策略可以写成:
如上图, 如果策略可以按概率采取不同的动作, 则可以写成:
在程序中, 我们常常使用一个矩阵来表达完整的策略分布:
1.1.3 Reward, Return
1.1.3.1 Reward 奖励
Reward是指采取动作之后, 得到的奖励值, 是一个标量. 奖励值越高, 采取的动作越受鼓励, 因此我们需要设计合适的Reward 函数来鼓励智能体采取我们希望的动作.
我们将处于状态s, 执行动作a, 奖励函数定义为:
以网格世界为例, 我们可以设计如下奖励:
如果智能体越过边界, 或者走到禁止网格, 则奖励值为-1 如果智能体抵达目的, 则奖励值为1 其他情况, 奖励值为0
所以可以写出: , ,
1.1.3.2 Trajectories, returns
我们将一组连续的状态定义为Trajectory, 每一个状态都从上一个状态采取动作转移而来. 每次状态转移都有对应的奖励.
上图的trajectory可以写成:
将trajectory上每一步的奖励加起来, 定义为return:
如果我们在抵达终点之后, 没有中止游戏. 那么奖励值就会不停的+1导致发散:
为了解决这个问题, 可以采取discounted return, 也就是奖励值的加权和:
其中是远期奖励值的权重. 这样可以增加近期动作获得奖励的权重, 减少远期动作获得奖励的权重.
推荐阅读:
🏎️自动驾驶小白说官网:https://www.helloxiaobai.cn