前言
在学习二维动态规划的时候,往往会遇到这么一道题目,在一个m * n的区域之中,存在着许多障碍,机器人只能上下左右移动。假设存在至少一条路径,使得机器人从左上角出发移动到右下角,那么机器人最少需要多少步才能实现从起点移动到终点。
在此基础上,将问题简化,假设存在如下图所示的一个3 * 3网格图,机器人需要从左上角移动到右下角,最少移动多少步。
一、State定义
state指的是智能体在环境中的状态。在上述的例子,state指的是上图所示的9个不同的位置,如果以从左向右,从上至下的方式,可以用s1至s9表示这些的状态。
si实际表示的状态在该二维平面中为(xi,yi)。
用Space State描述上述state的集合,即S = {si}i=19
二、Action定义
对于每一个状态,都有可能存在的行动。
在上述所说的例子当中,机器人都有五种可能的移动方式,a1、a2、a3、a4、a5五种不同的策略,即向上、向下、向左、向右移动和原地不动。
用Action Space表示一个状态的所有可能行动的集合,即A(si) = {ai}i-15 。
Action Space依赖于状态,不同状态的Action Space不同。
当采取一个行动时,智能体可能会从一个状态转移到另一个状态,这样一个过程被称为状态转移即state transition。其定义了智能体与环境交互的行为。可以用不同的方式来定义这种规则。在实际情况当中不能任意定义,在游戏当中是可以任意定义的。
可以用表格的形式来表这样的状态转移,但在实际情况中一般不采用这种方式来进行状态转移,因为这种方式是受限的。
可以采用概率的方式来描述状态转移,即State transition probability。在直觉上来讲,从s1状态使用a2(向右移动)的方式会到达s2,但是在数学上,会用下述的式子表示该状态。
p(s2|s1,a2) = 1
p(si |s1,a2) = 0 ∀i ≠ 2
上述仍然是一个确定性的例子,但是使用条件概率是可以实现不确定性的例子。
三、Policy定义
policy告诉智能体在某一个状态应该执行什么行动。在一开始所说的例子当中,动态规划所最终生成的携带结果的二维数组中就已经包含了这样子的策略。
数学性的表达方式仍然需要用条件概率来进行表达。例如状态s1中,policy可以按如下所定义。
π
\pi
π(a1|s1) = 0
π
\pi
π(a2|s1) = 1
π
\pi
π(a3|s1) = 0
π
\pi
π(a4|s1) = 0
π
\pi
π(a5|s1) = 0
上述表达的意思是,在s1状态下只可能向右移动。这是一个确定性的情况,实际上大概率是一个不确定性的情况。策略也可以采用表格的方式来实现。
四、Reward定义
reward本身是一个标量,在执行完一个行动之后提供。
reward为正数表示鼓励去执行这样的行为,为负数表示对执行这些行为的惩罚。
如果将reward设置为0则表示没有惩罚。当然也可以采用正数表示惩罚,负数表示鼓励。
例如本文一开始所提出的例子中,如果智能体如果到达目标则可以进行奖励,如果试图进入禁止区域的的话就予以惩罚。其余情况可以将reward设置为0。通过设置上述的策略,智能体会选择尽量前往目标点,尽可能不去禁区。
也可以使用表格来表示reward。依然可以采用条件概率的方式来描述reward。
直观上的描述,在状态s1时,如果采取a1(向上移动)的方式,reward的值设置为-1。但在数学上可以采用公式来表示。即p(r = -1 | s1,a1) = 1 and p(r ≠ -1 | s1,a1) = 0。
上述是一个客观上的例子,但是也有可能是随机性的。reward是依赖于当前状态的,与下一个状态是什么无关。如果智能体从s1向上移动之后弹回起点和智能体原地不动,虽然都回到s1状态,但显然前者是需要接受惩罚的,后者是不需要接受惩罚的。例如一个平常考试都很低的学生,从10分考到了20分,尽管20分的他依然是倒数第一,但这样的行为是值得鼓励的。
五、Return
trajectory表示为state-action-reward链。而return表示的是一个trajectory中所有reward的和。采用不同的policy,一般情况下最终的reward有很大概率会产生不同。可以采用return去评估一个策略的好坏。
如果到达了终点后,智能体仍然一直出现离开终点再返回终点的情况,return会不断地增大,最终达到无穷。
为了解决上述的问题,需要引入discount rate γ \gamma γ ∈ [0, 1)这一参数。
则discount return = 0 + γ \gamma γ * 0 + γ \gamma γ2 * 0 + γ \gamma γ3 * 1 + γ \gamma γ4 * 1 + γ \gamma γ5 * 1 + …… = γ \gamma γ3 * 1 1 − γ \frac{1}{1 - \gamma} 1−γ1
采取上述的方式可以避免出现发散的情况,该discount return可以依赖最开始return的值。通过控制 γ \gamma γ可以控制策略。如果 γ \gamma γ小,则会重视较近的结果,如果 γ \gamma γ大则会偏向于长远的结果。
六、Episode
通过采取策略跟环境进行交互,智能体可能因为一些原因在某些终止状态终止。这样导致的trajectory即为episode。有些任务是没有终止状态的,这样的状态被称为continuing tasks。实际上不存在这种任务,但最终一些执行较长的任务会被近似认为是这样的任务。
可以采用一些方式将episode tasks转化成 continuing tasks。
方案1:将target state当做一种特殊的absorbing tasks。即到达目的地后只有原地不动的行为可以被执行。不过需要修改之后获得的reward都为0.
方案2:将target state当做是一种策略中的正常状态。智能体仍然会离开目标状态并且会在他们进入目标状态时得到奖励。
倾向于采用第二种方案,这样会将情况变得更加一般化。
七、MDP
MDP全称为Markov devision process,即马尔可夫决策过程。下面描述一些MDP中的关键要素。
Sets中包含着State、Action与Reward。
State:状态的集合
Action:行为A(s)的集合,s ∈ S
Reward:奖励R(s, a)的集合
Probability distribution中包含了State transition probability 和 Reward probability
State transition probability:在状态s下执行动作a,转移打s’的概率为多少。即p(s’|s,a)。
Reward probability:在状态s下执行动作a,得到reward r的概率为多少。即p(r|s,a)。
Policy:在状态s,采取行动a的概率是多少,即 π \pi π(a|s)。
Markov Property:即memoryless porperty
p(st+1|at+1,st……,a1,s0) = p(st+1|at+1,st).
p(rt+1|at+1,st……,a1,s0) = p(rt+1|at+1,st).