本总结是本人复习《强化学习》课程,准备其考试时自己手打的总结,主要是罗列重要概念。不保证系统性、准确性和时效性,仅用于应试,因追求精简而省略了很多内容,如需系统学习请使用正式教材。
CH1 介绍
1.1 RL问题描述
观点1 强化学习就是学习“做什么”才能使得数值化的收益最大化。
观点2 强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。
特点
- 没有监督者,只有收益信号
- 延时收益
- 数据是按时间连续的,不独立同分布
- 智能体的行动有长期效应,会影响之后接收的数据
1.2 RL基本概念
1.2.1 智能体与环境
每个步骤 t t t
- 智能体(Agent)
- 执行动作(Action) A t A_t At
- 获取观测信息(Observation) O t O_t Ot
- 获取标量收益/奖励(Reward) R t R_t Rt
- 环境(Environment)
- 接受动作 A t A_t At
- 给出观测信息 O t O_t Ot
- 给出标量收益/奖励 R t R_t Rt
1.2.2 历史与状态
历史(History) 包含过去智能体获取的信息、收益和动作, H t = O 1 , R 1 , A 1 , . . . , A t − 1 , O t , R t H_t=O_1,R_1,A_1,...,A_{t-1},O_t,R_t Ht=O1,R1,A1,...,At−1,Ot,Rt。
状态(State) 包含接下来发生什么的信息, S t = f ( H t ) S_t=f(H_t) St=f(Ht)。
状态分为环境状态和智能体状态,分别为环境和智能体的内部私有状态。环境状态用以决定智能体的下一个观测或收益,对智能体通常是不可见的。智能体状态用以决定智能体的下一个动作,与历史 H t H_t Ht构成函数 S t a = f ( H t ) S^a_t=f(H_t) Sta=f(Ht)。
信息状态(又称马尔可夫状态)包含历史中所有有用的信息。
一个状态 S t S_t St拥有马尔可夫性(Markov Property),当且仅当满足公式 P [ S t + 1 ∣ S t ] = P [ S t + 1 ∣ S 1 , . . . , S t ] P[S_{t+1}|S_t]=P[S_{t+1}|S_1,...,S_t] P[St+1∣St]=P[St+1∣S1,...,St]。也就是说,未来在给定当前状态的条件下,和过去无关。状态中包含了预测未来的足够信息,一旦已知当前状态,过去的信息就可被丢弃。环境状态 S t e S^e_t Ste和历史 H t H_t Ht都具有马尔可夫性。
完全可观测:智能体可以直接观测环境状态,即 O t = S t a = S t e O_t=S^a_t=S^e_t Ot=Sta=Ste,信息状态=智能体状态=环境状态。通常,这是一个马尔可夫决策过程(Markov Decision Process,MDP)。
部分可观测:智能体只能获取环境一部分信息。通常,这是一个部分可观测马尔可夫决策过程(Partially observable Markov decision processes,POMDP)。智能体必须构造自己的状态表示 S t a S^a_t Sta。
1.2.3 学习与规划
学习(Reinforcement Learning)
- 环境最初未知
- 智能体与环境交互
- 智能体改善行为策略
规划(Planning)
- 环境如何工作对智能体已知
- 智能体不与环境发生实际交互
- 利用构建的模型计算,在此基础上改善行为策略
1.2.4 探索与利用
探索/试探(Exploration):去发现是否还有更好的获得收益的策略。
利用/开发(Exploitation):使用当前已知的获得最大化收益的策略。
1.2.5 预测与控制
预测(Prediction):给定一个策略,对未来进行评估,即策略评估。
控制(Control):找到最优策略,对未来进行优化,即策略迭代。
1.3 RL智能体
1.3.1 组成成分
一个RL智能体组成成分有
- 策略(Policy):决定智能体行为的机制。策略是状态到行为的一个映射,可以是确定性的,也可以是不确定性的。
- 价值函数(Value Function):一个未来收益的预测,用于平均当前状态的好坏程度。当面对两个不同状态,智能体可以用价值函数来评估状态,指导选择不同行为,即制定不同策略。
- 模型(Model):智能体对环境的建模。模型可以预测环境接下来会发生什么,仅针对智能体而言,环境实际运行机制不称为模型,而称为环境动力学(Dynamics of Environment)。
1.3.2 分类
RL智能体的分类有
- 基于价值函数的智能体:有状态价值估计函数,但无直接策略函数。
- 直接基于策略的智能体:行为直接由策略函数产生,个体不维护状态价值估计函数。
- 演员-评委(Actor-Critic)形式:有价值函数也有策略函数。
另一种分类方法是
- 无模型(Model-Free)的智能体:不了解环境如何工作,仅关注价值或策略函数。
- 基于模型(Model-Based)的智能体:建立描述环境的模型,指导价值或策略函数的更新。
CH2 马尔科夫决策过程(MDP)
2.1 马尔可夫过程
随机过程 X ( t ) X(t) X(t):一组依赖于实参数 t t t的随机变量, t t t一般具有时间的含义。随机过程 { X ( t ) , t ∈ T } \{X(t),t\in T\} {X(t),t∈T}可能取值的全体所构成的集合称为此随机过程的状态空间,记作 S S S。
状态转移矩阵 P P P:定义了从所有状态 S S S到所有后续状态 S ′ S' S′的转移概率。对于具有马尔可夫性的状态和后续状态,有 P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] P_{ss'}=P[S_{t+1}=s'|S_t=s] Pss′=P[St+1=s′∣St=s],矩阵 P P P每行概率之和为1。
马尔可夫链:无记忆(即具有马尔可夫性)的随机过程,即一系列随机状态 S 1 , S 2 , . . . S_1,S_2,... S1,S2,...。马尔可夫链是包含 < S , P > <S,P> <S,P>的元组,其中 S S S是有限状态集, P P P是状态转移矩阵。
马尔可夫链是马尔可夫过程(Markov Process,MP) 的一个特例,专门处理在离散时间点和离散或可数状态空间中的随机过程。而MP是一个更广泛的概念,包括在连续时间或连续状态空间中的随机过程。下面所讲的MRP和MDP通常都是在离散语境下定义的。
2.2 马尔可夫收益过程
收益函数 R R R:一个与状态或状态转移关联的收益, R s = E [ R t + 1 ∣ S t = s ] R_s=E[R_{t+1}|S_t=s] Rs=E[Rt+1∣St=s]。
马尔可夫收益过程(Markov Reward Process,MRP) :一个带有状态价值的马尔可夫链。MRP是包含 < S , P , R , γ > <S,P,R,\gamma> <S,P,R,γ>的元组,其中 S S S是有限状态集, P P P是状态转移矩阵, R R R是收益函数, γ \gamma γ是折扣率。
折扣(discount) γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1]:未来收益的当前价值。
回报(Return) G G G:从 t t t时刻开始到结束的总折扣收益,也叫作累计收益, G t = ∑ k = 0 ∞ γ k R t + k + 1 G_t=\sum^{\infin}_{k=0}\gamma^k R_{t+k+1} Gt=∑k=0∞γkRt+k+1。
状态价值函数(State-Value Function) V ( s ) V(s) V(s):状态 s s s回报的期望, v ( s ) = E [ G t ∣ S t = s ] v(s)=E[G_t|S_t=s] v(s)=E[Gt∣St=s]。
贝尔曼方程(Bellman Equation) :提供了一种递归的方式来分解决策问题。它将价值函数分成两部分,立即收益 R t + 1 R_{t+1} Rt+1和后续状态的折扣回报 γ v ( S t + 1 ) \gamma v(S_{t+1}) γv(St+1),得
- v ( s ) = E [ R t + 1 + γ v ( S t + 1 ) ∣ S t + 1 = s ] v(s)=E[R_{t+1}+\gamma v(S_{t+1})|S_{t+1}=s] v(s)=E[Rt+1+γv(St+1)∣St+1=s];
- v ( s ) = R s + γ ∑ s ′ ∈ S P s s ′ v ( s ′ ) v(s)=R_s+\gamma \sum_{s'\in S}{P_{ss'}v(s')} v(s)=Rs+γ∑s′∈SPss′v(s′)
- 用矩阵形式表示为 v = R + γ P v v=R+\gamma Pv v=R+γPv;
- 贝尔曼方程是一个线性方程,可以直接被解出来 v = ( 1 − γ P v ) − 1 R v=(1-\gamma Pv)^{-1}R v=(1−γPv)−1R,复杂度为 O ( n 3 ) O(n^3) O(n3)
- 间接解法有动态规划、蒙特卡洛评估和时间差分学习等。
2.3 马尔可夫决策过程
马尔可夫决策过程(Markov Decision Process,MDP) 在MRP基础上添加了决策。MDP是包含 < S , A , P , R , γ > <S,A,P,R,\gamma> <S,A,P,R,γ>的元组,其中 S S S是有限状态集, A A A是有限动作集, P P P是状态转移矩阵, R R R是收益函数, γ \gamma γ是折扣率。
策略 π \pi π:在给定状态条件下动作集上的分布 π ( a ∣ s ) = P [ A t = a ∣ S t = s ] \pi(a|s)=P[A_t=a|S_t=s] π(a∣s)=P[At=a∣St=s]。MDP策略依赖于当前状态而不是历史,完全定义了智能体的行为,是平稳的,独立于时间。
若给定一个MDP < S , A , P , R , γ > <S,A,P,R,\gamma> <S,A,P,R,γ>和一个策略 π \pi π
- 状态序列 S 1 , S 2 , . . . S_1,S_2,... S1,S2,...是一个MP < S , P π > <S,P^{\pi}> <S,Pπ>;
- 状态和收益序列 S 1 , R 2 , S 2 , R 3 , . . . S_1,R_2,S_2,R_3,... S1,R2,S2,R3,...是一个MRP < S , P π , R π , γ > <S,P^{\pi},R^{\pi},\gamma> <S,Pπ,Rπ,γ>;
- P s s ′ π = ∑ a ∈ A π ( a ∣ s ) P s s ′ a P^{\pi}_{ss'}=\sum_{a\in A}\pi(a|s)P^a_{ss'} Pss′π=∑a∈Aπ(a∣s)Pss′a;
- R s π = ∑ a ∈ A π ( a ∣ s ) R s a R^{\pi}_{s}=\sum_{a\in A}\pi(a|s)R^a_{s} Rsπ=∑a∈Aπ(a∣s)Rsa。
MDP的状态价值函数: v π ( s ) = E π [ G t ∣ S t = s ] v_{\pi}(s)=E_{\pi}[G_t|S_t=s] vπ(s)=Eπ[Gt∣St=s]。
动作价值函数(Action-Value Function) q π ( s , a ) q_{\pi}(s,a) qπ(s,a):从状态 s s s开始,采取动作 a a a,然后遵循策略 π \pi π的预期回报, q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] q_{\pi}(s,a)=E_{\pi}[G_t|S_t=s,A_t=a] qπ(s,a)=Eπ[Gt∣St=s,At=a]。
贝尔曼期望方程(Bellman Expectation Equation) 表达了在某个策略下,当前状态或状态-动作对的期望价值
- 分解状态价值函数得 v π ( s ) = E π [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] v_{\pi}(s)=E_{\pi}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_t=s] vπ(s)=Eπ[Rt+1+γvπ(St+1)∣St=s];
- 分解动作价值函数得 q π ( s , a ) = E π [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) ∣ S t = s , A t = a ] q_{\pi}(s,a)=E_{\pi}[R_{t+1}+\gamma q_{\pi}(S_{t+1},A_{t+1})|S_t=s,A_t=a] qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)∣St=s,At=a];
- 这两者之间的关系 v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) v_{\pi}(s)=\sum_{a\in A} \pi(a|s) q_{\pi}(s,a) vπ(s)=∑a∈Aπ(a∣s)qπ(s,a);
- 另一种关系描述 q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ ) q_{\pi}(s,a)=R^a_s+\gamma \sum_{s'\in S}{P^a_{ss'}v_{\pi}(s')} qπ(s,a)=Rsa+γ∑s′∈SPss′avπ(s′);
- 由3和4推得另一种关于 v π v_{\pi} vπ的贝尔曼期望方程 v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ ) ) v_{\pi}(s)=\sum_{a\in A} \pi(a|s)(R^a_s+\gamma \sum_{s'\in S}{P^a_{ss'}v_{\pi}(s')}) vπ(s)=∑a∈Aπ(a∣s)(Rsa+γ∑s′∈SPss′avπ(s′));
- 由3和4推得另一种关于 q π ( s , a ) q_{\pi}(s,a) qπ(s,a)的贝尔曼期望方程 q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) q_{\pi}(s,a)=R^a_s+\gamma \sum_{s'\in S}{P^a_{ss'}\sum_{a\in A} \pi(a|s) q_{\pi}(s,a)} qπ(s,a)=Rsa+γ∑s′∈SPss′a∑a∈Aπ(a∣s)qπ(s,a);
- 矩阵形式 v π = R π + γ P π v π v_{\pi}=R^{\pi}+\gamma P^{\pi}v_{\pi} vπ=Rπ+γPπvπ;
- 直接解为 v π = ( 1 − γ P π ) − 1 R π v_{\pi}=(1-\gamma P^{\pi})^{-1}R^{\pi} vπ=(1−γPπ)−1Rπ。
最优价值函数特指MDP中可能的最佳性能,当知道了最优价值函数,一个MDP问题就被解决了
- 最优状态价值函数 v ∗ ( s ) v_*(s) v∗(s):从所有策略中选出的最大状态价值函数, v ∗ ( s ) = max π v π ( s ) v_*(s)=\mathop{\max}_{\pi}v_{\pi}(s) v∗(s)=maxπvπ(s)。
- 最优动作价值函数 q ∗ ( s , a ) q_*(s,a) q∗(s,a):从所有策略中选出的最大动作价值函数, q ∗ ( s , a ) = max π q π ( s , a ) q_*(s,a)=\mathop{\max}_{\pi}q_{\pi}(s,a) q∗(s,a)=maxπqπ(s,a)。
策略的偏序 π > π ′ ⟺ v π > v π ′ ( s ) , ∀ s \pi > \pi'\iff v_{\pi}>v_{\pi'}(s),\forall s π>π′⟺vπ>vπ′(s),∀s。对于任何MP,一定存在一个最优策略 π ∗ \pi^* π∗满足 π ∗ ≥ π , ∀ π \pi^*\ge\pi,\forall \pi π∗≥π,∀π。所有最优策略必符合最优价值函数,即 v π ∗ ( s ) = v ∗ ( s ) v_{\pi^*}(s)=v_*(s) vπ∗(s)=v∗(s)。所有最优策略必符合最优动作价值函数,即 q π ∗ ( s , a ) = q ∗ ( s , a ) q_{\pi^*}(s,a)=q_*(s,a) qπ∗(s,a)=q∗(s,a)。
任何MDP都有一个确定的最优策略。如果知道 q ∗ ( s , a ) q_*(s,a) q∗(s,a),则立即得到最优策略。一个最优策略可以通过最大化 q ∗ ( s , a ) q_*(s,a) q∗(s,a)来寻找:
π ∗ ( a ∣ s ) = { 1 if a = arg max a ∈ A q ∗ ( s , a ) 0 otherwise \pi_*(a|s) = \begin{cases} 1 & \text{if } a=\mathop{\arg\max}_{a \in A} q_*(s,a) \\ 0 & \text{otherwise} \end{cases} π∗(a∣s)={10if a=argmaxa∈Aq∗(s,a)otherwise
贝尔曼最优方程(Bellman Optimality Equation) 用于找到最优策略,它表达了在最优策略下的状态价值或动作价值与未来可能价值之间的关系。最优价值函数通过贝尔曼最优方程递归关联:
- v ∗ ( s ) = max a ∈ A q ∗ ( s , a ) v_*(s)=\max_{a \in A}q_*(s,a) v∗(s)=maxa∈Aq∗(s,a)
- q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) q_*(s,a)=R^a_s+\gamma\sum_{s'\in S}P^a_{ss'}v_*(s') q∗(s,a)=Rsa+γ∑s′∈SPss′av∗(s′)
- v ∗ ( s ) = max a ∈ A { R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) } v_*(s)=\max_{a \in A}\{R^a_s+\gamma\sum_{s'\in S}P^a_{ss'}v_*(s')\} v∗(s)=maxa∈A{Rsa+γ∑s′∈SPss′av∗(s′)}
- q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a max a ∈ A q ∗ ( s ′ , a ′ ) q_*(s,a)=R^a_s+\gamma\sum_{s'\in S}P^a_{ss'}\max_{a \in A}q_*(s',a') q∗(s,a)=Rsa+γ∑s′∈SPss′amaxa∈Aq∗(s′,a′)
- 贝尔曼最优方程不是线性方程,一般来说无闭式解,间接解法有价值迭代、策略迭代、增强学习和SARSA算法等。
CH3 动态规划
3.1 介绍动态规划
动态规划(Dynamic Programming,DP) 算法是解决复杂问题的一个(类)方法(思想),算法通过把复杂问题分解为子问题,通过求解子问题进而得到整个问题的解。在解决子问题的时候,其结果通常需要存储起来被用来解决后续复杂问题,通常是以空间换时间。
3.2 策略评估
同步反向迭代:对于第 k + 1 k+1 k+1次迭代,所有状态 s s s的价值用 v k ( s ′ ) v_{k}(s') vk(s′)计算并更新 v k ( s ) v_{k}(s) vk(s)。
迭代法策略评估:同步反向迭代应用贝尔曼期望方程解决预测问题
- 应用贝尔曼期望方程 v k + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a v k ( s ′ ) ) v_{k+1}(s)=\sum_{a\in A} \pi(a|s)(R^a_s+\gamma \sum_{s'\in S}{P^a_{ss'}v_{k}(s')}) vk+1(s)=∑a∈Aπ(a∣s)(Rsa+γ∑s′∈SPss′avk(s′));
- 矩阵形式 v k + 1 = R π + γ P π v k v^{k+1}=R^{\pi}+\gamma P^{\pi}v^{k} vk+1=Rπ+γPπvk;
- 在当前策略基础上,贪心地选取行为,使得后续状态价值增加最多, π ′ = greedy ( v π ) \pi'=\text{greedy}(v_{\pi}) π′=greedy(vπ),反复多次,总能收敛至最优策略 π ∗ \pi^* π∗;
- 这种基于 v ( s ) v(s) v(s)的贪心策略提升需要MDP模型。
3.3 策略迭代
策略改善定理:通过贪心计算优化策略,迭代改善状态 s s s的 q q q值
- π ′ ( s ) = arg max a ∈ A q π ( s , a ) \pi'(s)=\mathop{\arg\max}_{a\in A}q_{\pi}(s,a) π′(s)=argmaxa∈Aqπ(s,a);
- q π ( s , π ′ ( s ) ) = max a ∈ A q π ( s , a ) q_{\pi}(s,\pi'(s))=\mathop{\max}_{a\in A}q_{\pi}(s,a) qπ(s,π′(s))=maxa∈Aqπ(s,a);
- 当 q π ( s , π ′ ( s ) ) = q π ( s , π ( s ) ) = v π ( s ) q_{\pi}(s,\pi'(s))=q_{\pi}(s,\pi(s))=v_{\pi}(s) qπ(s,π′(s))=qπ(s,π(s))=vπ(s)时,满足贝尔曼最优方程 v π ( s ) = max a ∈ A q π ( s , a ) v_{\pi}(s)=\mathop{\max}_{a\in A}q_{\pi}(s,a) vπ(s)=maxa∈Aqπ(s,a),此时 π \pi π就是最优策略;
- 基于 q ( s , a ) q(s,a) q(s,a)的贪心策略提升不需要MDP模型;
- 修饰过的策略迭代可以设置一些条件提前终止迭代,设定 ϵ \epsilon ϵ最小差值;设置迭代次数;每迭代一次更新一次策略(值迭代)等。
3.4 价值迭代
最优策略可被分解为两部分
- 从状态 s s s到后继状态 s ′ s' s′采取了最有行为 A ∗ A_* A∗;
- 在状态 s ′ s' s′时遵循最优策略。
最优性定理:一个策略能使状态 s s s获得最优价值,当且仅当:对于从状态 s s s出发,任意可达的状态 s ′ s' s′,该策略能使状态 s s s的价值是最优价值。
确定性的价值迭代:
- 如果知道子问题 v ∗ ( s ′ ) v_*(s') v∗(s′)的解,就可找到 v ∗ ( s ) ← max a ∈ A ( R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) ) v_*(s)\gets\mathop{\max}_{a\in A}(R^a_s+\gamma\sum_{s'\in S}P^a_{ss'}v_*(s')) v∗(s)←maxa∈A(Rsa+γ∑s′∈SPss′av∗(s′)),迭代地应用这些更新,从最后的收益开始反向工作;
- 与策略迭代不同,价值迭代算法不会给出明确策略,得到的价值函数不对应任何策略;
- 应用贝尔曼最优方程 v k + 1 ( s ) = max a ∈ A ( R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) ) v_{k+1}(s)=\mathop{\max}_{a\in A}(R^a_s+\gamma\sum_{s'\in S}P^a_{ss'}v_*(s')) vk+1(s)=maxa∈A(Rsa+γ∑s′∈SPss′av∗(s′));
- 矩阵形式 v k + 1 = max a ∈ A ( R a + γ P a v k ) v_{k+1}=\mathop{\max}_{a\in A}(R^a+\gamma P^av_k) vk+1=maxa∈A(Ra+γPavk)。
CH4 无模型预测
4.1 蒙特卡洛强化学习
蒙特卡洛法(Monte Carlo, MC) 的特点:
- 从经验Episode学习状态价值
- 无模型方法,不知道MDP当中的转移或收益
- 使用完整的Episode数据,无“自举”
- 用平均回报代替价值
- 只能用于Episode MDP,即每一Episode必然会终结
MC策略评估:
- 从一系列完整的Episode经历学习到给定策略 π \pi π下的状态价值函数 v π v_{\pi} vπ, S 1 , A 1 , R 2 , . . . , S k ∼ π S_1,A_1,R_2,...,S_k\sim\pi S1,A1,R2,...,Sk∼π;
- 用经验平均回报代替期望回报 v π ( s ) = E π [ G t ∣ S t = s ] v_{\pi}(s)=E_{\pi}[G_t|S_t=s] vπ(s)=Eπ[Gt∣St=s];
- 首次访问MC策略评估仅当状态 s s s第一次出现时列入计算;
- 每次访问MC策略略评估状态 s s s每次出现在状态转移链时计算;
- 用增量式方法更新平均值,在经历每个完整的Episode后 N ( S t ) ← N ( S t ) + 1 N(S_t)\gets N(S_t)+1 N(St)←N(St)+1, V ( S t ) ← V ( S t ) + G t − V ( S t ) N ( S t ) V(S_t)\gets V(S_t)+\frac{G_t-V(S_t)}{N(S_t)} V(St)←V(St)+N(St)Gt−V(St);
- 记 N ( S t ) N(S_t) N(St)为 α \alpha α,得 V ( S t ) ← V ( S t ) + α ( G t − V ( S t ) ) V(S_t)\gets V(S_t)+\alpha(G_t-V(S_t)) V(St)←V(St)+α(Gt−V(St))。
4.2 时序差分学习
时序差分法(Temporal Difference,TD) 的特点:
- 从经验Episode学习状态价值;
- 无模型方法,不知道MDP当中的转移或收益;
- 可以从不完整的Episode数据学习,通过“自举”;
- 利用猜测的Episode的结果更新猜测;
- 估计某状态价值时 V ( S t ) ← V ( S t ) + α ( R t + 1 + γ V ( S t + 1 ) − V ( S t ) ) V(S_t)\gets V(S_t)+\alpha(R_{t+1}+\gamma V(S_{t+1})-V(S_t)) V(St)←V(St)+α(Rt+1+γV(St+1)−V(St));
- R t + 1 + γ V ( S t + 1 ) R_{t+1}+\gamma V(S_{t+1}) Rt+1+γV(St+1)称为TD目标值;
- δ t = R t + 1 + γ V ( S t + 1 ) − V ( S t ) \delta_t=R_{t+1}+\gamma V(S_{t+1})-V(S_t) δt=Rt+1+γV(St+1)−V(St)称为TD误差。
4.3 比较MC与TD
MC和TD的优劣势:
- TD在知道结果前可学习(TD可在每步后在线学习,MC必须等到最后结果才能学习);
- MC无偏差,但有较高方差,对初始值不敏感,而TD低方差,但有一定偏差,对初始值较敏感,通常比MC高效;
- TD用了MDP问题的马尔可夫性,而MC没有用,TD在Markov环境更有效,MC在非Markov环境更有效;
- 两者都涉及采样,但DP不涉及采样;
- MC没有自举,TD和DP有自举。
确定性等价评估:
- MC试图收敛至一个最小化状态价值与实际回报的均方差 ∑ k = 1 K ∑ t = 1 T k ( G t k − V ( s t k ) ) 2 \sum^{K}_{k=1}\sum^{T_k}_{t=1}(G^k_t-V(s^k_t))^2 ∑k=1K∑t=1Tk(Gtk−V(stk))2;
- TD试图收敛至一个根据已有经验构建的最大可能的马尔可夫模型的状态价值。
4.4 TD( λ \lambda λ)
TD或TD(0)是基于1步预测的,MC是基于 ∞ \infin ∞步预测的。
n步回报: G t ( n ) = R t + 1 + γ R t + 2 + . . . + γ n − 1 R t + n + γ n V ( S t + n ) G^{(n)}_t=R_{t+1}+\gamma R_{t+2}+...+\gamma^{n-1}R_{t+n}+\gamma^nV(S_{t+n}) Gt(n)=Rt+1+γRt+2+...+γn−1Rt+n+γnV(St+n)。
n步TD学习: V ( S t ) ← V ( S t ) + α ( G t ( n ) − V ( S t ) ) V(S_t)\gets V(S_t)+\alpha(G^{(n)}_t-V(S_t)) V(St)←V(St)+α(Gt(n)−V(St))。
λ \lambda λ回报: G t λ = ( 1 − λ ) ∑ n = 1 ∞ λ n − 1 G t ( n ) G^{\lambda}_t=(1-\lambda)\sum^{\infin}_{n=1}\lambda^{n-1}G^{(n)}_t Gtλ=(1−λ)∑n=1∞λn−1Gt(n)。 λ = 0 \lambda=0 λ=0时,退化成TD(0); λ = 1 \lambda=1 λ=1时,退化成MC。
资格迹: E 0 ( s ) = 0 E_0(s)=0 E0(s)=0; E t ( s ) = γ λ E t − 1 ( s ) + 1 ( S t = s ) E_t(s)=\gamma \lambda E_{t-1}(s)+1(S_t=s) Et(s)=γλEt−1(s)+1(St=s)。
前向视角TD( λ \lambda λ):面向 λ \lambda λ回报更新值函数。
反向视角TD( λ \lambda λ):对每个状态 s s s保持一个资格迹,更新 V ( s ) V(s) V(s),与TD误差 δ t \delta_t δt和资格迹 E t ( s ) E_t(s) Et(s)成比例。
前向视角和反向视角TD( λ \lambda λ)在线等价,离线更新总和相同,更新在episode中每一步都在线应用并累积,在episode结束时批量应用。
CH5 无模型控制
5.1 基本概念
同策(On-Policy)学习:目标策略和采样策略相同。
异策(Off-Policy)学习:目标策略与采样策略不同。
为什么异策学习很重要?
- 可从人类或其它智能体经验中学习
- 重用旧策略经验
- 可在用一个探索性策略的同时学习一个确定性策略
- 可用一个策略采样,同时学习多个策略
ϵ
\epsilon
ϵ-贪心探索:所有
m
m
m个动作都以非零概率被选择,以
1
−
ϵ
1-\epsilon
1−ϵ概率选择贪心最优动作,以
ϵ
\epsilon
ϵ概率选择随机动作:
π
(
a
∣
s
)
=
{
ϵ
m
+
1
−
ϵ
if
a
=
a
∗
=
arg
max
a
∈
A
q
(
s
,
a
)
ϵ
m
otherwise
\pi(a|s) = \begin{cases} \frac{\epsilon}{m}+1-\epsilon & \text{if } a=a^*=\mathop{\arg\max}_{a \in A} q(s,a) \\ \frac{\epsilon}{m} & \text{otherwise} \end{cases}
π(a∣s)={mϵ+1−ϵmϵif a=a∗=argmaxa∈Aq(s,a)otherwise
GLIE(Greedy in the Limit with Infinite Exploration):所有状态-动作对都被无限次探索,策略趋同于贪心策略。GLIE的MC控制收敛于最优动作价值函数 Q ( s , a ) → q ∗ ( s , a ) Q(s,a)\to q_*(s,a) Q(s,a)→q∗(s,a)。
SARSA(State-Action-Reward-State-Action) 是一种TD算法,目标是学习最优动作价值函数 Q ∗ Q_* Q∗,在满足以下条件时 Q ( s , a ) → q ∗ ( s , a ) Q(s,a)\to q_*(s,a) Q(s,a)→q∗(s,a):
- 任何时候的策略 π t ( a ∣ s ) \pi_t(a|s) πt(a∣s)符合GLIE特性;
- 步长系数 α t \alpha_t αt满足 ∑ t = 1 ∞ α t = ∞ \sum_{t=1}^{\infin}\alpha_t=\infin ∑t=1∞αt=∞且 ∑ t = 1 ∞ α t 2 < ∞ \sum_{t=1}^{\infin}\alpha_t^2<\infin ∑t=1∞αt2<∞。
n步Q回报: q t ( n ) = R t + 1 + γ R t + 2 + . . . + γ n − 1 R t + n + γ n Q ( S t + n ) q^{(n)}_t=R_{t+1}+\gamma R_{t+2}+...+\gamma^{n-1}R_{t+n}+\gamma^nQ(S_{t+n}) qt(n)=Rt+1+γRt+2+...+γn−1Rt+n+γnQ(St+n)。
使用n步Q回报来更新Q(S,A): Q ( S t , A t ) ← Q ( S t , A t ) + α ( q t ( n ) − Q ( S t , A t ) ) Q(S_t,A_t)\gets Q(S_t,A_t)+\alpha(q^{(n)}_t-Q(S_t,A_t)) Q(St,At)←Q(St,At)+α(qt(n)−Q(St,At))。
q λ q^{\lambda} qλ回报包含了所有的n步Q回报 q ( n ) q^{(n)} q(n), q t λ = ( 1 − λ ) ∑ n = 1 ∞ λ n − 1 q t ( n ) q^{\lambda}_t=(1-\lambda)\sum^{\infin}_{n=1}\lambda^{n-1}q^{(n)}_t qtλ=(1−λ)∑n=1∞λn−1qt(n)。
前向视角SARSA( λ \lambda λ) 的更新函数为 Q ( S t , A t ) ← Q ( S t , A t ) + α ( q t λ − Q ( S t , A t ) ) Q(S_t,A_t)\gets Q(S_t,A_t)+\alpha(q^{\lambda}_t-Q(S_t,A_t)) Q(St,At)←Q(St,At)+α(qtλ−Q(St,At))。
5.2 重要性抽样
异策MC重要性抽样:
- 由 μ \mu μ产生的回报来评估 π \pi π;
- 根据策略相似性对 G t G_t Gt加权;
- 沿整个Episode对重要性采样的权重进行连乘 G t π μ = π ( A t ∣ S t ) μ ( A t ∣ S t ) π ( A t + 1 ∣ S t + 1 ) μ ( A t + 1 ∣ S t + 1 ) . . . π ( A T ∣ S T ) μ ( A T ∣ S T ) G t G^{\frac{\pi}{\mu}}_t=\frac{\pi(A_t|S_t)}{\mu(A_t|S_t)}\frac{\pi(A_{t+1}|S_{t+1})}{\mu(A_{t+1}|S_{t+1})}...\frac{\pi(A_T|S_T)}{\mu(A_T|S_T)}G_t Gtμπ=μ(At∣St)π(At∣St)μ(At+1∣St+1)π(At+1∣St+1)...μ(AT∣ST)π(AT∣ST)Gt;
- 由修正过的返回值来更新截止函数 V ( S t ) ← V ( S t ) + α ( G t π μ − V ( S t ) ) V(S_t)\gets V(S_t)+\alpha(G^{\frac{\pi}{\mu}}_t-V(S_t)) V(St)←V(St)+α(Gtμπ−V(St));
- 当 π \pi π非零且 μ \mu μ为零时,无法使用;
- 会显著增加方差。
异策TD重要性抽样:
- 由 μ \mu μ产生的TD目标值来评估 π \pi π;
- 通过重要性抽样对TD目标 R + γ V ( S ′ ) R+\gamma V(S') R+γV(S′)进行加权;
- 只需一次重要性抽样校正 V ( S t ) ← V ( S t ) + α ( π ( A t ∣ S t ) μ ( A t ∣ S t ) ( R t + 1 + γ V ( S t + 1 ) ) − V ( S t ) ) V(S_t)\gets V(S_t)+\alpha(\frac{\pi(A_t|S_t)}{\mu(A_t|S_t)}(R_{t+1}+\gamma V(S_{t+1}))-V(S_t)) V(St)←V(St)+α(μ(At∣St)π(At∣St)(Rt+1+γV(St+1))−V(St));
- 方差比MC重要性采样低得多;
- 策略只需在一个时间步上相似。
5.3 Q学习
Q学习(Q-Learning):
- 允许同时改进采样策略 μ \mu μ和目标策略 π \pi π;
- π \pi π设为贪心策略, μ \mu μ设为 ϵ \epsilon ϵ-贪心策略;
- 目标为 R t + 1 + γ max a ′ Q ( S t + 1 , a ′ ) R_{t+1}+\gamma\mathop{\max}_{a'}Q(S_{t+1},a') Rt+1+γmaxa′Q(St+1,a′);
- Q ( S , A ) ← Q ( S , A ) + α ( R + γ max a ′ Q ( S ′ , a ′ ) − Q ( S , A ) ) Q(S,A)\gets Q(S,A)+\alpha(R+\gamma\mathop{\max}_{a'}Q(S',a')-Q(S,A)) Q(S,A)←Q(S,A)+α(R+γmaxa′Q(S′,a′)−Q(S,A));
- 收敛到最优动作价值函数 Q ( s , a ) → q ∗ ( s , a ) Q(s,a)\to q_*(s,a) Q(s,a)→q∗(s,a);
- Q学习直接学习最优策略,而SARSA学习最优策略的同时还在探索。
CH6 价值函数近似
6.1 增量方法
增量算法(Incremental Method) 基于数据流,经历一步,更新算法后就不再使用这步数据。
查表(Tbale Lookup): 每个状态或每个状态-行为对对应表格中一项。
状态价值函数近似的目标函数 J ( w ) = E π [ ( v π ( S ) − v ^ ( S , w ) ) 2 ] J(w)=E_{\pi}[(v_{\pi}(S)-\hat{v}(S,w))^2] J(w)=Eπ[(vπ(S)−v^(S,w))2]。
动作价值函数近似的目标函数 J ( w ) = E π [ ( q π ( S , A ) − v ^ ( S , A , w ) ) 2 ] J(w)=E_{\pi}[(q_{\pi}(S,A)-\hat{v}(S,A,w))^2] J(w)=Eπ[(qπ(S,A)−v^(S,A,w))2]。
随机梯度下降(Stochastic Gradient Descent,SGD) :对梯度进行采样 Δ w = α ( v π ( S ) − v ^ ( S , w ) ) ∇ w v ^ ( S , w ) \Delta w=\alpha(v_{\pi}(S)-\hat{v}(S,w))\nabla_w\hat{v}(S,w) Δw=α(vπ(S)−v^(S,w))∇wv^(S,w),期望更新与全梯度更新相等。使用SGD可以收敛至全局最优解。
6.2 批方法
批方法(Batch Method) 集中一段时期内数据,学习以使参数较好拟合这段时期内所有数据。
最小二乘法:要求找到参数 w w w,使得目标函数最小。
经验回放(Experience Replay):把一段时期内的经验重新过一遍,更新参数。从经验中采样一个 < s , v > <s,v> <s,v>,应用SGD更新参数,收敛至针对这段经验数据的最小二乘法的最优解。
DQN(Deep Q-Networks):使用经验回放和固定的Q目标值,其经验回放过程:
- 用 ϵ \epsilon ϵ-greedy执行策略产生 t t t时刻的动作 a t a_t at;
- 将经验数据以 ( s t , a t , r t + 1 , s t + 1 ) (s_t,a_t,r_{t+1},s_{t+1}) (st,at,rt+1,st+1)形式存储在回放内存 D D D中;
- 从 D D D中随机抽取小批量数据 ( s , a , r , s ′ ) (s,a,r,s') (s,a,r,s′);
- 维护两个DQN,一个固定参数用于产生目标值,相当于标签数据;另一个用于评估策略,更新参数;
- 优化Q网络和Q目标值之间的最小均方误差,用SGD更新参数。
CH7 策略梯度
7.1 简介
Value-Based RL学习价值函数指导策略制定;Policy-Base RL学习策略而没有价值函数;Actor-Critic RL既学习价值函数也学习策略。
策略梯度算法:在所有的策略目标函数 J ( θ ) J(\theta) J(θ)中通过提升策略的梯度来寻找局部最大值 Δ θ = α ∇ θ J ( θ ) \Delta\theta=\alpha\nabla_{\theta}J(\theta) Δθ=α∇θJ(θ),其中 ∇ θ J ( θ ) \nabla_{\theta}J(\theta) ∇θJ(θ)是策略梯度, α \alpha α是步长参数。
7.2 有限差分策略梯度
有限差分策略梯度: ∂ J ( θ ) ∂ θ k ≈ J ( θ + ϵ u k ) − J ( θ ) ϵ \frac{\partial J(\theta)}{\partial \theta_k}\approx\frac{J(\theta+\epsilon u_k)-J(\theta)}{\epsilon} ∂θk∂J(θ)≈ϵJ(θ+ϵuk)−J(θ), u k u_k uk是单位向量,仅在第 k k k个维度上为 1 1 1,其余维度为 0 0 0。当梯度函数本身很难得到的时候很常用。
7.3 MC策略梯度
评分函数/迹向量(Score Function): ∇ θ log π θ ( s , a ) \nabla_{\theta}\mathop{\log}\pi_{\theta}(s,a) ∇θlogπθ(s,a)(已知 ∇ θ π θ ( s , a ) = π θ ( s , a ) ∇ θ log π θ ( s , a ) \nabla_{\theta}\pi_{\theta}(s,a)=\pi_{\theta}(s,a)\nabla_{\theta}\mathop{\log}\pi_{\theta}(s,a) ∇θπθ(s,a)=πθ(s,a)∇θlogπθ(s,a))。
策略梯度定理: ∇ θ J ( θ ) = E π θ [ ∇ θ log π θ ( s , a ) Q π θ ( s , a ) ] \nabla_{\theta}J(\theta)=E_{\pi_\theta}[\nabla_{\theta}\mathop{\log}\pi_{\theta}(s,a)Q^{\pi_\theta}(s,a)] ∇θJ(θ)=Eπθ[∇θlogπθ(s,a)Qπθ(s,a)],其中策略 π θ ( s , a ) \pi_{\theta}(s,a) πθ(s,a)可微,策略的目标函数 J = J 1 , J R ‾ 或 1 1 − γ J V ‾ J=J_1,J_{\overline{R}}或\frac{1}{1-\gamma}J_{\overline{V}} J=J1,JR或1−γ1JV。
MC策略梯度:用随机梯度上升来更新参数,利用策略梯度定理,用返回值 v t v_t vt作为 Q π θ ( s t , a t ) Q^{\pi_{\theta}}(s_t,a_t) Qπθ(st,at)的无偏样本 Δ θ t = α ∇ θ log π θ ( s t , a t ) v t \Delta\theta_t=\alpha\nabla_{\theta}\mathop{\log}\pi_{\theta}(s_t,a_t)v_t Δθt=α∇θlogπθ(st,at)vt。
7.4 Actor-Critic策略梯度
评委(Critic):更新动作价值函数参数 w w w。
演员(Actor):按照Critic建议的方向更新策略参数 θ \theta θ。
Actor-Critic算法:遵循一个近似的策略梯度 ∇ θ J ( θ ) ≈ E π θ [ ∇ θ log π θ ( s , a ) Q w ( s , a ) ] \nabla_{\theta}J(\theta)\approx E_{\pi_{\theta}}[\nabla_{\theta}\mathop{\log}\pi_{\theta}(s,a)Q_w(s,a)] ∇θJ(θ)≈Eπθ[∇θlogπθ(s,a)Qw(s,a)], Δ θ = α ∇ θ log π θ ( s , a ) Q w ( s , a ) \Delta{\theta}= \alpha\nabla_{\theta}\mathop{\log}\pi_{\theta}(s,a)Q_w(s,a) Δθ=α∇θlogπθ(s,a)Qw(s,a)。
动作价值Actor-Critic算法用线性价值函数来近似状态行为价值函数,其中Critic通过线性近似的TD(0)更新 w w w,Actor通过策略梯度更新 θ \theta θ。
近似策略梯度会引入偏差,需要仔细选择值函数近似 Q w ( s , a ) Q_w(s,a) Qw(s,a)才能避免引入偏差。满足兼容近似函数定理的策略函数是精确的:
- 近似价值函数算子与策略兼容: ∇ w Q w ( s , a ) = ∇ θ log π θ ( s , a ) \nabla_w Q_w(s,a)=\nabla_{\theta}\mathop{\log}\pi_{\theta}(s,a) ∇wQw(s,a)=∇θlogπθ(s,a);
- 价值函数参数w使得均方差最小: ϵ = E π θ [ ( Q π θ ( s , a ) − Q w ( s , a ) ) 2 ] \epsilon=E_{\pi_{\theta}}[(Q^{\pi_{\theta}}(s,a)-Q_w(s,a))^2] ϵ=Eπθ[(Qπθ(s,a)−Qw(s,a))2]。
从策略梯度中减去一个基线函数 B ( s ) B(s) B(s)可以减少方差而不改变期望,一个很好的基线是状态价值函数 B ( s ) = V π θ ( s ) B(s)=V^{\pi_{\theta}(s)} B(s)=Vπθ(s)。
优势函数(Advantage): A ( s , a ) = Q w ( s , a ) − V v ( s ) A(s,a)=Q_w(s,a)-V_v(s) A(s,a)=Qw(s,a)−Vv(s),其中 Q w ( s , a ) ≈ Q π θ ( s , a ) Q_w(s,a) \approx Q^{\pi_{\theta}}(s,a) Qw(s,a)≈Qπθ(s,a), V v ( s ) ≈ V π θ ( s ) V_v(s) \approx V^{\pi_{\theta}(s)} Vv(s)≈Vπθ(s)。使用优势函数计算策略梯度可以明显减少策略梯度的方差。算法的Critic部分可以估计优势函数。
TD误差 δ π θ = r + γ V θ π ( s ′ ) − V π θ ( s ) \delta^{\pi_{\theta}}=r+\gamma V^{\pi}_{\theta}(s')-V^{\pi_{\theta}}(s) δπθ=r+γVθπ(s′)−Vπθ(s)是优势函数的无偏估计,可以使用TD误差来计算策略梯度 ∇ θ J ( θ ) = E π θ [ ∇ θ log π θ ( s , a ) δ π θ ] \nabla_{\theta}J(\theta)=E_{\pi_{\theta}}[\nabla_{\theta}\mathop{\log}\pi_{\theta}(s,a)\delta^{\pi_{\theta}}] ∇θJ(θ)=Eπθ[∇θlogπθ(s,a)δπθ]。实际运用时,用近似TD误差 δ v = r + γ V v ( s ′ ) − V v ( s ) \delta_v=r+\gamma V_v(s')-V_v(s) δv=r+γVv(s′)−Vv(s)。这样做好处是只需一套参数描述状态价值函数,不需针对行为价值近似函数。
自然策略梯度: ∇ θ nat J ( θ ) = w \nabla^{\text{nat}}_{\theta}J(\theta)=w ∇θnatJ(θ)=w,即在Critic参数方向上更新Actor参数。
CH8 整合学习与规划
8.1 基于模型的RL
模型 M = < P η , R η > M=<P_{\eta},R_{\eta}> M=<Pη,Rη>:一个MDP < S , A , P , R > <S,A,P,R> <S,A,P,R>的参数化 η \eta η表现形式,呈现了状态转移 P η ≈ P P_{\eta}\approx P Pη≈P和收益 R η ≈ R R_{\eta}\approx R Rη≈R,通常需假设状态转移函数和收益函数是条件独立的。
模型规划的过程相当于求解已知MDP的过程。
基于采样的规划(Sample-Based Planning):仅用模型产生一个虚拟的状态转换,即一个时间步长的虚拟经验,之后用无模型RL来学习得到价值或策略函数。
真实经验:直接从环境中采样(真实MDP)。
模拟经验:从模型中采样(近似MDP)。
无模型的RL:没有模型,从真实经验中直接学习价值函数或策略。
基于模型的RL:从真实经验中学习模型,从模拟经验(模型)中“规划”价值函数或策略。
Dyna:从真实经验中学习模型,从真实和模拟经验中学习和规划价值函数或策略。
8.2 基于模拟的搜索
前向搜索(Forward Search):把当前状态 S t S_t St作为根节点构建一个搜索树,用MDP模型进行前向搜索。前向搜索不需解决整个MDP,仅需构建一个从当前状态开始与眼前未来相关的子MDP。
基于模拟的搜索(Simulation-Based Search):前向搜索的一种形式。从当前时刻开始,用基于采样的规划,构建一个关注短期未来的前向搜索树,把它当做一个学习资源,用无模型RL来寻找最优策略。
MC搜索:用MC控制的基于模拟的搜索。
TD搜索:用SARSA方法的基于模拟的搜索。
CH9 探索与利用
朴素探索(Naive Exploration):即 ϵ \epsilon ϵ-greedy法。在贪心探索基础上增加一个 ϵ \epsilon ϵ以实现朴素探索。
乐观初始估计(Optimistic Initialization):优先选择当前被认为是最高价值的行为,除非获取的新信息推翻了该行为价值最高这一认知。
不确定优先(Optimism in the Face of Uncertainty):优先尝试不确定价值的行为。
概率匹配(Probability Matching):根据当前估计的概率分布采样行为。
信息状态搜索(Information State Search):将已探索信息作为状态的一部分联合智能体的状态组成新状态,以新状态为基础进行前向探索。
依据状态-行为空间的探索:针对每个当前状态,以一定方法尝试之前该状态下没有尝试过的行为。
参数化探索:策略用各种形式的参数表达,探索表现为尝试不同的参数设置。