环境 Environment,个体 Agent,状态 State,奖励 Reward
在强化学习中最重要的两个概念是环境 Environment 和个体 Agent,个体的实质正是需要确立的算法本身。在每一个时间步,环境呈现给个体一个外界状态 State, S,个体通过从预先设定的动作空间中选择一个动作 Action,A 来与环境进行交互,环境再反馈给个体其动作后环境所处的新的状态 S' 和反馈信息 Reward,R,个体的目标 Goal 就是如何选择自己在整个交互过程中的全部动作来最大化期望累积奖励 expected cumulative reward,而之所以是一个期望值,是由于未来的奖励值是一个取决于个体所处状态和动作的随机变量。
Reward Hypothesis
All goals can be framed as the maximization of expected cumulative reward. - Udacity Notes
个体通过与环境的不断交互来了解环境反馈的奖励情况,进而学会如何获得最大化的累积奖励。需要注意的是,在实际交互过程中并不是每一个动作后(或者每一个时间步 step) 都会获得奖励信息,更常见的是当个体完成一个阶段性 episodic 的任务时才给予这个奖励信息。个体需要在学习过程中逐渐学会如何平衡长期及短期目标,并作出相应的行动来实现最大化奖励。由于强化学习中奖励是个体学习的最重要的反馈信息,因此其定义的方式十分重要,并且是一个十分复杂的过程。
在 Udacity 的课堂中举了一个 Deep Mind 训练机器人行走的奖励定义:
- r = min(vx, vmax) - 0.005(vy2 + vz2) - 0.05y2 - 0.02||u||2 + 0.02
尽管这个公式如此的简单直观,但却可以有效的通过限制机器人行走的速度、左右的偏移和关节的转矩来使得机器人逐渐学会如何平稳的行走。
累积奖励 Return & 折现累积奖励 Discounted return
由于个体的行动是一个涉及多个时间步的过程,在这里定义个体在某个时间 t 后可以获得的累积奖励为:
- G(t) = Rt+1 + Rt+2 + Rt+3 + Rt+4 ...
但由于对于任何个体来说,远期奖励不及短期奖励更有吸引力,因此一个更加合理的奖励目标函数则应该定义为:
- G(t) = Rt+1 + γRt+2 + γ2Rt+3 + γ3Rt+4 ...
其中 γ 为折现系数(与财务中的贴现率原理一致),由于 γ 越小则个体越倾向于重视近期奖励而忽视远期奖励,因此一般将其设置为 <1 但更加接近于 1 的数值,例如 0.9。并且考虑到函数的收敛性,这一参数的引入对于没有既定终点的持续性任务 Continuing task 的学习非常重要。
Markov Decision Process, MDP
在进一步解释马尔克夫决策过程 Markov Decision Process 之前,先进一步定义一些注释:
-
S 代表除终点状态外的所有其他状态构成的状态空间,在持续性任务中,这个状态空间就代表环境所能呈现出的所有状态
-
S+ 代表包含终点状态的环境状态空间
-
A 代表个体的动作空间
-
A(s) 代表个体处在某个状态 s 时可以执行的动作,可以知道 A(s) 是 A 的一个子集
在前面我们已经知道,在任意一个时间步 t,个体-环境的历史交互过程都可以被表示成一系列的状态、动作和奖励:(S0, A0, R1,S1, A1, ..., Rt-1,St-1, At-1, Rt,St, At),如果环境在 t+1 时刻的响应(状态和奖励)只取决于 t 时刻的个体的动作和环境的状态 (St, At),而完全忽略前面各个时间步的环境状态、个体动作和反馈奖励情况时,这种情况下 t+1 时刻环境的状态 s' 和反馈的奖励 r 就可以被定义为一个依赖于当前环境状态 s 和个体动作 a 的条件概率的形式:
- p(s', r | s, a) ≐ P(St+1 = s', Rt+1 = r |St = s, At = a), ∀ s, s', a, r
When the agent is in state s and takes action a, the probability of each possible next state s' and reward r is given by p(s', r| s, a) - Udacity Notes
这一系列只取决于当前时间步 t 时刻环境状态 s 和个体动作 a 的环境动态变化过程称为环境的 one-step dynamics。
更加概括地,这一类只取决于当前状态和动作的环境模型可以称为马尔克夫决策过程,其由一个状态空间 S、动作空间 A、奖励空间 R 、折现系数 γ 以及环境的 one-step 动态过程确定。
这个 MDP 的定义过程就是强化学习模型的建立过程,是强化学习模型建立的第一步。在具体建模时,个体会知晓自己的动作空间 A 和环境的状态空间 S 以及折现率 γ,而奖励信息和 one-step dynamics 则定义了环境的工作机制,这些信息对于个体来说是未知且需要通过学习来获知的。对于一个有限的 finite MDP 来说,状态空间 S 和动作空间 A 都必须是有限集。
个体动作的策略 Policy
从前面可以看出,为了让个体可以更好的应对环境,需要它具有根据所处环境状态 S 选择动作 A 的能力,这个对应的从环境状态空间 S 到个体动作空间 A 的映射关系就称为策略,策略在强化学习的语境中用 π 来表示:
-
当个体采取确定性策略 Deterministic Policy 时,针对每一个特定的环境状态个体的动作是特定的,因此可以建立一个环境状态空间 S 到个体动作空间 A 的映射,即 π: S → A
-
当个体采取随机性策略 Stochastic Policy 时,个体会针对同一个状态 s 依据某一概率选择相应的动作 a,此时的策略是一个服某个概率分布的条件概率,表示方法为:π: S x A → [0, 1],更具体的可以表示为 π(a | s) = P(At = a | St = s)
个体的训练过程就是通过其与环境的交互寻求最优策略的过程。
State-value Function
为了衡量个体在各个状态 s 下选择不同策略得到的累积奖励差异,我们可以定义一个 State-value function 来衡量个体在某个状态 s 下在后续的时间步依据某一策略 π 采取行动而获得的累积奖励值,用 vπ(s) 来表示。
For each state, the state-value function vπ(s) yields the expected return, if the agent started in the state s , and then followed the policy π for all (later) time steps. - Udacity Notes
- vπ(s) = Eπ [Gt |St = s ]
由于在某一个特定环境状态 s 下个体能够获得的累积奖励值 Gt 取决于其采取的策略,因此可以通过这个方程来比较个体从同一个环境状态 s 开始遵循不同策略得到的累积奖励情况,进而衡量策略的优劣。
Bellman Expectation Equation
需要注意的是,由于个体在任意一个环境状态 s 下遵循某一策略 π 取得的奖励值 vπ(s) 都可以拆分成 t 时刻的即期奖励 Rt+1 和后续所有时间步的累积奖励 vπ(St+1) 的和,并且由于在实际工作环境下即期奖励 Rt+1 和下一步的动作 At+1 以及未来获得的奖励 vπ(St+1) 并不是能够预先准确确定的,因此需要关心的是这个奖励值的期望值,进而就可以将这个 State-value function 表示成 Bellman Expection Equation 的形式。
The value of any state = the expected value of (the immediate reward + the discounted value of the state that follows) - Udacity Notes
- vπ(s) = Eπ [Rt+1 + γvπ(St+1) |St = s ]
在一般性的马尔克夫决策模型中,这些预期奖励通常被设定为服从某种概率分布,如在前面提到的奖励 r 和下一步的状态 s' 服从于环境的 one-step dynamics p(s', r |s, a)。
当个体采用确定性策略 deterministic policy 时,即在某一环境状态 s 下确定的采取某一动作 a,此时这一期望值可以展开为:
- vπ(s) = Eπ [Rt+1 + γvπ(St+1) |St = s ] = Σs'∈S+,r∈R p(s', r |s, a)(r + γvπ(s'))
In this case, we multiply the sum of the reward and discounted value of the next state (r + γvπ(s')) by its corresponding probability p(s', r |s, a) and sum over all possibilities to yield the expected value. - Udacity Notes
当采用随机 stochastic 策略时,由于个体在状态 s 下选择动作 a 的概率是 π(a | s),此时这一期望值可以展开为:
- vπ(s) = Eπ [Rt+1 + γvπ(St+1) |St = s] = Σs'∈S+,r∈R, a∈A(s) π(a | s)p(s', r | s, a)(r + γvπ(s')) = Σ a∈A(s) π(a | s) Σs'∈S+,r∈Rp(s', r |s, a)(r + γvπ(s'))
In this case, we multiply the sum of the reward and discounted value of the next state (r + γvπ(s')) by its corresponding probability π(a | s)p(s', r |s, a) and sum over all possibilities to yield the expected value. - Udacity Notes
策略的优化
我们定义当且仅当对于 ∀s∈S 有 vπ‘(s) ≥ vπ(s) 时,则称策略 π' ≥ π,在此基础上将最优策略 π* 定义为对于任意策略有 π* ≥ π,对应最优策略的状态值函数 State-value function 表示为 v*,需要注意的是最优策略总是存在的,但不一定是唯一的。
Action-value Function
为了可以定量的描述个体在某一状态 s 下采取行动 a 后得到的奖励值,针对每一个 (s, a) 对也可以定义一个针对此时的预期奖励值 qπ(s, a) 的期望函数:
- qπ(s, a) = Eπ [Gt |St = s, At = a] = Eπ [Rt+1 + γqπ(St+1, At+1) |St = s, At = a] = Σs'∈S+,r∈Rp(s', r |s, a)(r + γΣ a'∈A(s') π(a' | s')qπ(s', a')) = Σs'∈S+,r∈Rp(s', r |s, a)(r + γvπ(s'))
For each state s and action a, qπ(s, a) yields the expected return if the agent starts in state s then choose action a and then uses the policy π to choose its action for all (later) time steps. - Udacity Notes
由于每一个值的获取都取决于所在的状态 s 和采取的行动 a,因此每一个 q 值都对应一个 (s, a) 对。由两个值函数的定义可知,在确定策略下对于任意 s 有 vπ(s) = qπ(s, a) 。
对应最优的状态值函数 Action-value function 表示为 q*,个体获得最优策略的过程是首先通过多次交互获得在不同状态下采取特定动作时的 Action-value,进而评估不同状态下的最优动作值,对应选取不同状态下的最优动作值对应的策略就是最优策略,即 π*(s) = argmaxa∈A(s) q*(s, a)。
Bellman Optimality Equations
Bellman 期望方程考察的是对于任意策略的累积奖励的期望情况,但对于最优策略来说,其可以定义一个 Bellman Optimality Equation。
对于 v* 来说,Bellman 最优方程为:
- v*(s) = maxa∈A(s)E[Rt+1 + γv*(S+1)|St=s] = maxa∈A(s)Σs'∈S+,r∈Rp(s', r |s, a)(r + γv*(s'))
对于 q* 来说,Bellman 最优方程为:
- q*(s, a) = Eπ [Rt+1 + γmaxa'∈A(St+1)q*(St+1, a') | St = s, At = a] = Σs'∈S+,r∈Rp(s', r |s, a)(r + γmaxa'∈A(s')q*(s', a'))
最优策略的寻求过程
在实际应用中,最优策略的寻求过程是通过使得个体在不同状态 s 下尝试采用不同的动作 a,最终经过与环境的多次交互过程后寻得每一个状态下采用不同的动作时得到的动作值 q(s, a) 函数,在此基础上在每一个状态下选择动作值函数最大的动作,进而得到的行动策略就是最优策略。
Dynamic Programming
在实际应用中上述的 state-value function 可以被展开成一个方程组,对应每一个方程组有 S 个方程,由于状态空间中可能的状态数量很大,因此会采用迭代的方式逐渐更新对应的 vπ(s) 的值,此时要给予个体环境的 one-step dynamics 信息。
最优策略的获取过程如下:
-
Policy Evaluation: 为个体初始化任意一个策略 π(如均匀分布),利用 vπ(s) = Σ a∈A(s) π(a | s) Σs'∈S+,r∈Rp(s', r |s, a)(r + γvπ(s')) 来获取对应这个策略下的 State-value function
-
Action-value estimation: 在此基础上通过 qπ(s, a) = Σs'∈S+,r∈Rp(s', r |s, a)(r + γvπ(s')) 来获取当前策略下的 Action-value function
-
Policy Improvement: 在每一个状态下选取 Action-value function 的最大值来获得改进后的策略
-
Policy Iteration: 将改进后的策略多次循环代入 Policy Evaluation 和 Policy Improvement 过程来获取最优策略
至此已经完成了从任意选择的策略进化到最优策略的迭代过程,但在实际应用中,考虑算法的相应时间,为了让个体可以更加迅速的获得最优策略,可以着手对上述算法进行优化。
- Truncated policy evaluation & Iteration: 对于在 Policy Evaluation 中,我们可以设置算法对状态空间的遍历次数超过一定次数即可,这个次数只要在总体趋势上 state value function 已经可以满足在后续的 Policy iteration 中得出的策略 π' 与最佳策略一致即可
Monte Carlo Methods
与 Dynamic Programming 最大的区别在于在这个环境下不会给予个体环境的 one-step dynamics 信息。
Monte Carlo methods are ways of solving the reinforcement learning problem based on averaging sample returns. - Sutton
网友评论