马尔可夫决策过程是强化学习中的基本问题模型之一,而解决马尔可夫决策过程的方法我们统称为强化学习算法。
动态规划( dynamic programming, DP )具体指的是在某些复杂问题中,将问题转化为若干个子问题,并在求解每个子问题的过程中保存已经求解的结果,以便后续使用。
常见的动态规划算法包括
- 值迭代(value iteration, VI)
- 策略迭代(policy iteration, PI)
- Q-learning 算法等。
动态规划三个基本原理
- 最优化原理:问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构
- 无后效性:某阶段状态一旦确定,就不受这个状态以后决策的影响
- 重叠子问题:不是动态规划问题的必要条件
马尔可夫决策过程的目标是最大化累积回报
G t = R t + 1 + γ G t + 1 G_t = R_{t+1} + \gamma G_{t+1} Gt=Rt+1+γGt+1
我们要解决 G t + 1 G_{t+1} Gt+1的问题,可以一次拆分成解决 G t , G t − 1 , . . . , G 1 G_{t},G_{t-1},...,G_1 Gt,Gt−1,...,G1的问题,这其实就满足动态规划性质中的最优化原理
策略迭代与价值迭代
但如果只给定马尔可夫决策过程,该如何寻找最佳策略,从而得到最佳价值函数(optimal value function)
最佳价值函数:寻找一种策略 π \pi π使得每个状态的价值最大。即使得V最大的 π \pi π
V ∗ ( s ) = m a x π V π ( s ) V^*(s) = max_{\pi}V_{\pi}(s) V∗(s)=maxπVπ(s)
最佳策略下,每个状态的价值函数都为最大值,如果可以求得最佳价值函数,就认为该决策过程的环境可解,在可解环境下,最佳价值函数是一致的,但可以有多个策略达到最佳价值函数。换句话说,存在最优值,但解。
当得到最佳价值函数后,可以通过对Q函数最大化来得到最佳策略,使得Q函数最大化的动作就是最佳的动作,进而可以提取出最佳策略。
π ∗ ( a ∣ s ) = { 1 , a = a r g m a x a ∈ A Q ∗ ( s , a ) 0 , 其他 {\pi}^{*}(a|s) = \left\{ \begin{matrix} 1 , a = argmax{ \atop a \in A}Q^{*}(s,a)\\ 0,其他 \end{matrix} \right. π∗(a∣s)={1,a=argmaxa∈AQ∗(s,a)0,其他
Q:怎样进行策略搜索
方法一:穷举法,假设有S个状态,A个动作。总共 ∣ A ∣ ∣ S ∣ |A|^{|S|} ∣A∣∣S∣个策略。
方法二:策略迭代和价值迭代
策略迭代
策略迭代:包括策略评估和策略改进
策略评估:给定马尔可夫决策过程和策略,评估我们可以获得多少价值,即对于当前策略,我们可以得到多大的价值。
在下图左侧,先进行策略评估,即基于给定的策略 π \pi π,先求得价值函数V。然后基于奖励函数和状态转移函数可以计算得到Q函数。
Q π i ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V π i ( s ′ ) Q_{\pi_i}(s,a) = R(s,a) + \gamma\sum{ \atop s' \in S}p(s'|s,a)V_{\pi_i}(s') Qπi(s,a)=R(s,a)+γ∑s′∈Sp(s′∣s,a)Vπi(s′)
在下图右侧,随后进行策略改进,基于Q函数,取使得Q取最大值的动作,做为下一个策略。
π i + 1 ( s ) = a r g m a x a Q π i ( s , a ) \pi_{i+1}(s) = argmax_aQ_{\pi_i}(s,a) πi+1(s)=argmaxaQπi(s,a)
因此,可以将Q函数看做一个表格(Q-table),得到Q函数,也就得到Q表格。
对每一列,取使得Q函数最大的动作,即为最应该采取的动作。
通过argmax操作,我们会得到更好或者不变的策略,而不会使价值函数变差,当改进停止后会得到一个最佳策略。策略确定后,动作a确定,Q函数 Q ( s , a ) Q(s,a) Q(s,a)就会变为价值函数 V ( s ) V(s) V(s)
Q π ( s , π ′ ( s ) ) = max a ∈ A Q π ( s , a ) = Q π ( s , π ( s ) ) = V π ( s ) Q_{\pi}\left(s,\pi^{\prime}(s)\right)=\operatorname*{max}_{a\in A}Q_{\pi}(s,a)=Q_{\pi}(s,\pi(s))=V_{\pi}(s) Qπ(s,π′(s))=a∈AmaxQπ(s,a)=Qπ(s,π(s))=Vπ(s)
进而得到贝尔曼最优方程(Bellman optimality equation)
V π ( s ) = m a x a ∈ A Q π ( s , a ) V_{\pi}(s) = max_{a \in A}Q_{\pi}(s,a) Vπ(s)=maxa∈AQπ(s,a)
贝尔曼最优方程表明:最佳策略下的一个状态的价值必须等于在这个状态下采取最好动作得到的回报的期望。 当马尔可夫决策过程满足贝尔曼最优方程的时候,整个马尔可夫决策过程已经达到最佳的状态。
当整个状态已经收敛后,我们得到最佳价值函数后,贝尔曼最优方程才会满足。满足贝尔曼最优方程后,我们可以采用最大化操作,即。
公式 1 : V ∗ ( s ) = m a x a Q ∗ ( s , a ) 公式1:V^{*}(s) = max_{a}Q^{*}(s,a) 公式1:V∗(s)=maxaQ∗(s,a)
Q函数的贝尔曼方程如下:
公式 2 : Q π i ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V ∗ ( s ′ ) 公式2:Q_{\pi_i}(s,a) = R(s,a) + \gamma\sum{ \atop s' \in S}p(s'|s,a)V^{*}(s') 公式2:Qπi(s,a)=R(s,a)+γ∑s′∈Sp(s′∣s,a)V∗(s′)
将公式1代入公式2,即可得到Q函数之间的转移。将公式2代入公式1,即可得到价值函数之间的转移。
价值迭代
策略迭代比价值迭代更快地接近最优解
基本概念
-
有模型算法:状态转移概率已知,例如动态规划
-
免模型算法:大部分情况下对于智能体来说,环境是未知的,即状态转移概率未知
除了动态规划之外,基础的强化学习算法都是免模型的。
预测:免模型情况下,去近似环境的状态价值函数。主要目的是估计或计算环境中的某种期望值,比如状态价值函数 V ( s ) V(s) V(s)或动作价值函数 Q ( s , a ) Q(s,a) Q(s,a)。
控制:目标则是找到一个最优策略,该策略可以最大化期望的回报。换句话说,你不仅想知道按照某种策略你的预期得分是多少,还想知道如何选择动作以最大化这个得分。
控制问题通常涉及
- 策略评估(policy evaluation)
- 策略改进(policy improvement)
在实际应用中,预测和控制问题经常交织在一起。例如,在使用 Q-learning(一种免模型的控制算法)时,我们同时进行预测(更新 Q值)和控制(基于Q值选择动作)。之所以提到这两个概念,是因为很多时候我们不能一蹴而就解决好控制问题,而需要先解决预测问题,进而解决控制问题。
什么情况下MDP是已知的?即奖励函数R和状态转移函数P被提供给智能体时。
因此可以基于策略评估和策略改进来计算出最优策略和最优状态价值函数。
Model-free RL
背景:策略迭代和价值迭代需要用到MDP,但在现实生活中,MDP往往不已知,或者较复杂。下图是有模型方法。
Model-free 方法通过智能体与环境交互得到一系列轨迹,基于这些轨迹计算状态和策略。
蒙特卡罗
这里提供一种增量求均值的方法,现在时刻的均值可以和上一时刻的均值建立联系。这种方法可以应用到增量求状态价值函数V上。
Temporal-Difference,TD
结合了MC和DP的方法
- 免模型
- 通过bootstrapping可以从不完整回合中学习
- 可以在不完整的环境上学习
TD(0)
TD target: sample + bootstrapping
TD learning只往前走了一步就开始更新V,而MC需要走完一个轨迹
TD(n)
往前走n步再更新,通过步数来调整。当步数无穷大时,TD target变为MC target
最右下角是穷举法,TD在广度增加就变为了DP,在深度增加就变为了MC。
策略迭代分两步:
- 计算状态价值函数V
- 根据v,计算q。通过greedy更新策略
但计算Q需要奖励函数和状态转移矩阵,但在MDP未知的情况下无法计算。
因此采用广义的策略迭代。通过MC来计算Q函数