第一章:强化学习简介
-
强化学习的三条发展路线
- 试错法:心理学角度模仿动物学习。
- 最优控制问题:使用动态规划法优化行为。
- 深度强化学习:结合试错法和动态规划,应用于连续、高维问题。
-
强化学习与其他机器学习领域的区别和联系
- 与监督学习的区别:无需事先准备好的训练数据,使用奖励值而非监督信号。
- 与非监督学习的区别:有奖励值但无输出值。
-
强化学习基本模型和要素
- 智能体(Agent)
- 环境(Environment)
- 状态(State)
- 动作(Action)
- 奖励(Reward)
- 策略(Policy)
-
强化学习的执行过程和数学模型
- 马尔科夫决策过程( M D P MDP MDP):包括状态空间、动作空间、状态转移概率函数、奖励函数和折扣因子。-
状态空间(State Space):
- 表示所有可能的状态集合,用 ( S \mathcal{S} S ) 表示。每个状态 ( s s s ) 可以是离散的或连续的,代表智能体所处的环境状态。
-
动作空间(Action Space):
- 对于每个状态 ( s s s ),都有一个可行的动作集合 ( A ( s ) \mathcal{A}(s) A(s) ) ,整个动作空间用 ( A \mathcal{A} A ) 表示。动作空间定义了在每个状态下智能体可以采取的所有可能动作。
-
状态转移概率函数(State Transition Probability Function):
- 表示智能体在状态 ( s s s ) 下采取动作 ( a a a ) 后转移到新状态 ( s ′ s' s′ ) 的概率,用 ( P ( s ′ ∣ s , a ) P(s' \mid s, a) P(s′∣s,a) ) 表示。这个函数定义了环境是如何根据智能体的行为而变化的。
-
奖励函数(Reward Function):
- 智能体在状态 ( s s s ) 下采取动作 ( a a a ) 并转移到状态 ( s ′ s' s′ ) 时,环境会提供一个奖励 ( r r r ) ,用 ( R ( s , a ) R(s, a) R(s,a) ) 或 ( r ( s , a , s ′ ) r(s, a, s') r(s,a,s′) ) 表示。奖励函数定义了智能体行为的好坏,是学习过程中的反馈信号。
-
折扣因子(Discount Factor):
- 用 ( γ \gamma γ ) 表示,范围在 ( [ 0 , 1 ] [0, 1] [0,1] ) 之间。折扣因子用于确定未来奖励相对于即时奖励的重要性。( γ = 0 \gamma = 0 γ=0 ) 表示只有即时奖励重要,而 ( γ = 1 \gamma = 1 γ=1 ) 表示未来奖励和即时奖励同等重要。
-
策略(Policy):
- 用 ( π \pi π ) 表示,是智能体选择动作的决策规则,可以是确定性的或随机性的。策略定义了在给定状态下选择动作的偏好。
-
马尔科夫性(Markov Property):
- 也称为无后效性,指的是未来的状态转移和奖励只依赖于当前状态和动作,而与之前的历史无关。这可以用条件概率的形式表达为:
KaTeX parse error: Can't use function '$' in math mode at position 79: …} \mid a_t, s_t$̲)
- 也称为无后效性,指的是未来的状态转移和奖励只依赖于当前状态和动作,而与之前的历史无关。这可以用条件概率的形式表达为:
-
马尔科夫决策过程(MDP):
- 用五元组 ( M D P = ⟨ S , A , P , R , γ ⟩ MDP = \langle S, A, P, R, \gamma \rangle MDP=⟨S,A,P,R,γ⟩ ) 表示,是强化学习中描述问题和进行决策的基础框架。
强化学习的执行过程通常包括以下几个步骤:
- 智能体观察当前环境状态 ( s t s_t st )。
- 根据策略 ( π \pi π ) 在状态 ( s t s_t st ) 下选择一个动作 ( a t a_t at )。
- 执行动作 ( a t a_t at ),环境提供奖励 ( r t + 1 r_{t+1} rt+1 ) 并转移到新状态 ( s t + 1 s_{t+1} st+1 )。
- 智能体根据新状态 ( s t + 1 s_{t+1} st+1 ) 和策略 ( π \pi π ) 继续选择动作,重复上述过程。
- 通过不断与环境交互,智能体学习最优策略以最大化长期累积奖励。
整个过程中,智能体的目标是通过学习来改善其策略,以便在长期内获得最大的累积奖励。
-
-
环境模型案例
- 格子世界(Grid World)
- 倒立摆问题
第二章:值函数和贝尔曼方程
-
值函数
- 状态值函数( V π ( s ) Vπ(s) Vπ(s))
- 动作值函数( Q π ( s , a ) Qπ(s, a) Qπ(s,a))
-
贝尔曼方程
- 状态值函数和动作值函数的贝尔曼方程表达式。
-
贝尔曼方程(Bellman Equation):
贝尔曼方程是强化学习中的一个基本概念,用于描述状态值函数和动作值函数的递归关系。 -
状态值函数的贝尔曼方程:
状态值函数 ( V π ( s ) V_\pi(s) Vπ(s) ) 表示在策略 ( π \pi π ) 下,从状态 ( s s s ) 出发并遵循该策略所能获得的期望累积折扣奖励。其贝尔曼方程表达式为:
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ( r + γ V π ( s ′ ) ) V_\pi(s) = \sum_{a \in \mathcal{A}} \pi(a \mid s) \sum_{s' \in \mathcal{S}} p(s' \mid s, a) (r + \gamma V_\pi(s')) Vπ(s)=a∈A∑π(a∣s)s′∈S∑p(s′∣s,a)(r+γVπ(s′))
这个方程说明当前状态 ( s s s ) 的价值是所有可能动作 ( a a a ) 的加权和,其中权重由策略 ( π \pi π ) 决定,以及在这些动作下转移到新状态 ( s ′ s' s′ ) 的概率 ( p ( s ′ ∣ s , a ) p(s' \mid s, a) p(s′∣s,a) ),再加上即时奖励 ( r r r ) 和折现后的新状态价值 ( γ V π ( s ′ ) \gamma V_\pi(s') γVπ(s′) )。 -
动作值函数的贝尔曼方程:
动作值函数 ( Q π ( s , a ) Q_\pi(s, a) Qπ(s,a) ) 表示在策略 ( π \pi π ) 下,从状态 ( s s s ) 出发、执行动作 ( a a a ) 并遵循该策略所能获得的期望累积折扣奖励。其贝尔曼方程表达式为:
Q π ( s , a ) = ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ( r + γ ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) ) Q_\pi(s, a) = \sum_{s' \in \mathcal{S}} p(s' \mid s, a) (r + \gamma \sum_{a' \in \mathcal{A}} \pi(a' \mid s') Q_\pi(s', a')) Qπ(s,a)=s′∈S∑p(s′∣s,a)(r+γa′∈A∑π(a′∣s′)Qπ(s′,a′))
这个方程说明某个具体状态-动作对 ( ( s , a ) (s, a) (s,a) ) 的价值是转移到新状态 ( s ′ s' s′ ) 的概率与即时奖励的乘积,以及折现后在新状态 ( s ′ s' s′ ) 下,根据策略 ( π \pi π ) 选择最佳动作 ( a ′ a' a′ ) 的价值 ( γ ∑ a ′ π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) \gamma \sum_{a'} \pi(a' \mid s') Q_\pi(s', a') γ∑a′π(a′∣s′)Qπ(s′,a′) ) 的加权和。 -
基于二元奖励函数的贝尔曼方程:
当奖励函数 ( R ( s , a ) R(s, a) R(s,a) ) 为二元函数,不依赖于下一个状态时,贝尔曼方程可以简化为:
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V π ( s ′ ) ) V_\pi(s) = \sum_{a \in \mathcal{A}} \pi(a \mid s) (R + \gamma \sum_{s' \in \mathcal{S}} p(s' \mid s, a) V_\pi(s')) Vπ(s)=a∈A∑π(a∣s)(R+γs′∈S∑p(s′∣s,a)Vπ(s′))
Q π ( s , a ) = R + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) Q_\pi(s, a) = R + \gamma \sum_{s' \in \mathcal{S}} p(s' \mid s, a) \sum_{a' \in \mathcal{A}} \pi(a' \mid s') Q_\pi(s', a') Qπ(s,a)=R+γs′∈S∑p(s′∣s,a)a′∈A∑π(a′∣s′)Qπ(s′,a′)
这里 ( R R R ) 是状态 ( s s s ) 和动作 ( a a a ) 下的即时奖励,不涉及下一个状态 ( s ′ s' s′ )。
对状态值函数与动作值函数的对比解析:
-
定义:
- 状态值函数 ( V π ( s ) V_\pi(s) Vπ(s) ):在给定状态 ( s s s ) 下,遵循策略 ( π \pi π ) 所能获得的期望累积折扣奖励。它不考虑从状态 ( s s s ) 出发将采取哪个动作,而是考虑所有可能的动作及其概率。
- 动作值函数 ( Q π ( s , a ) Q_\pi(s, a) Qπ(s,a) ):在给定状态 ( s s s ) 下,采取特定动作 ( a a a ) 并遵循策略 ( π \pi π ) 所能获得的期望累积折扣奖励。它专注于特定的状态-动作对。
-
贝尔曼方程表达:
- 状态值函数的贝尔曼方程反映了在状态 ( s s s ) 下,遵循策略 ( π \pi π ) 并考虑所有可能的动作及其转移概率的期望值。
- 动作值函数的贝尔曼方程则反映了在特定的状态-动作对 ( ( s , a ) (s, a) (s,a) ) 下,考虑转移后的状态 ( s ′ s' s′ ) 和即时奖励,以及折现后的新状态价值的期望值。
-
依赖性:
- 状态值函数依赖于动作值函数,因为可以通过对所有可能的动作 ( a a a ) 的动作值函数 ( Q π ( s , a ) Q_\pi(s, a) Qπ(s,a) ) 进行加权求和(根据策略 ( π \pi π ))来计算状态值函数。
- 动作值函数也依赖于状态值函数,因为它在计算中使用了转移到新状态 ( s ′ s' s′ ) 后的状态值 ( V π ( s ′ ) V_\pi(s') Vπ(s′) )。
-
用途:
- 状态值函数通常用于评估策略 ( π \pi π ) 在不同状态下的表现,常用于策略评估( P o l i c y E v a l u a t i o n Policy Evaluation PolicyEvaluation)。
- 动作值函数则用于指导决策过程,选择最优动作,常用于策略改进( P o l i c y I m p r o v e m e n t Policy Improvement PolicyImprovement)。
-
更新机制:
- 在时序差分学习(Temporal Difference Learning, TD Learning)中,状态值函数可以通过“自举”(Bootstrapping)自身或下一个状态的状态值来更新。
- 动作值函数同样可以通过自举转移到下一个状态的动作值来更新,但初始动作的选择是基于当前策略 ( π \pi π )。
-
计算复杂性:
- 状态值函数的计算可能需要遍历所有可能的动作,但在实际应用中,可以通过优化算法减少计算量。
- 动作值函数需要对每个状态-动作对分别计算,可能在动作空间很大时计算量较大。
-
策略评估与改进:
- 状态值函数的评估通常与策略迭代(Policy Iteration)相关,其中策略评估后跟随策略改进。
- 动作值函数的评估和改进通常与值迭代(Value Iteration)相关,其中动作值函数直接用于找到最优策略。
-
策略评估
- 策略评估的概念和方法:方程组法和迭代法。
策略评估(Policy Evaluation, PE)是强化学习中的一个关键步骤,用于估计在给定策略下,每个状态的累积折扣奖励的期望值。以下是对策略评估的详细解析:
-
策略评估的概念:
策略评估的目的是在已知环境模型(即状态转移概率和奖励函数)的前提下,估算在固定策略 ( π \pi π ) 下,从每个状态 ( s s s ) 出发所能获得的期望累积折扣奖励。这是优化策略、评估策略优劣的基础。 -
策略评估的方法:
-
方程组法:当状态空间是离散的,并且已知策略 ( π \pi π ) 和状态转移概率 ( p p p ) 时,可以为每个状态设置一个状态值 ( V π ( s ) V_\pi(s) Vπ(s) ) 作为未知数。根据贝尔曼方程,可以构建一个线性方程组来求解每个状态值。这种方法通常使用高斯消元法等数学工具来求解方程组。
-
迭代法:迭代法是另一种求解策略评估的方法,它通过不断更新状态值来逼近真实值。迭代更新的公式如下:
V π ( s ) ← ∑ a ∈ A π ( a ∣ s ) ( R + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) ) V_{\pi}(s) \leftarrow \sum_{a \in \mathcal{A}} \pi(a \mid s) \left( R + \gamma \sum_{s' \in \mathcal{S}} P(s' \mid s, a) V_{\pi}(s') \right) Vπ(s)←a∈A∑π(a∣s)(R+γs′∈S∑P(s′∣s,a)Vπ(s′))
其中,( R R R ) 是在状态 ( s s s ) 下采取动作 ( a a a ) 所获得的即时奖励。迭代过程继续进行,直到状态值的变化非常小,表明已经收敛。
-
-
策略评估的步骤:
- 使用方程组法时,首先根据贝尔曼方程构建方程组,然后求解方程组得到每个状态的状态值。
- 使用迭代法时,从初始状态值开始,按照迭代公式不断更新状态值,直到满足收敛条件。
-
案例分析:
文件中提供了一个案例,其中详细描述了状态空间、动作空间、状态转移概率、奖励函数、折扣系数和平均策略。基于这些信息,使用贝尔曼方程构建方程组,并采用高斯消元法求解,从而得到每个状态的状态值。 -
策略评估的重要性:
策略评估是策略迭代算法中的一个重要环节。通过评估当前策略的性能,可以确定是否需要进行策略改进,以及如何改进策略。策略评估的准确性直接影响到策略改进的效果。
-
策略改进
- 策略改进的概念、策略的优劣定义和策略改进定理。
根据文件内容,策略改进(Policy Improvement)是强化学习中的一个核心概念,它涉及到如何根据当前策略评估的结果来生成一个更好的策略。以下是对策略改进的详细解析:
-
策略改进的概念:
策略改进的目的是在给定一个策略 ( π \pi π ) 的基础上,找到一个新策略 ( π ′ \pi' π′ ),使得新策略在所有状态上的性能都不逊色于原策略,并且在至少一个状态上有更好的性能。这种改进是通过利用策略评估得到的状态值函数来实现的。 -
策略的优劣定义:
- 如果对于所有状态 ( s s s ),策略 ( π ′ \pi' π′ ) 的状态值函数 ( V π ′ ( s ) V_{\pi'}(s) Vπ′(s) ) 大于或等于策略 ( π \pi π ) 的状态值函数 ( V π ( s ) V_{\pi}(s) Vπ(s) ),则称策略 ( π ′ \pi' π′ ) 不差于 ( π \pi π )。
- 如果存在至少一个状态 ( s s s ) 使得 ( V π ′ ( s ) > V π ( s ) V_{\pi'}(s) > V_{\pi}(s) Vπ′(s)>Vπ(s) ),则称策略 ( π ′ \pi' π′ ) 优于策略 ( π \pi π )。
- 最优策略( O p t i m a l P o l i c y Optimal Policy OptimalPolicy)是指没有其他策略能在任何状态下提供更高的状态值函数的策略。
-
策略改进定理:
定理 2-1(策略改进定理)提供了一个策略改进的充分条件。如果对于所有状态 ( s s s ),满足以下条件:
Q π ( s , π ′ ( s ) ) ≥ V π ( s ) Q_{\pi}(s, \pi'(s)) \geq V_{\pi}(s) Qπ(s,π′(s))≥Vπ(s)
则新策略 ( π ′ \pi' π′ ) 不差于原策略 ( π \pi π )。如果存在至少一个状态 ( s s s ) 使得严格不等式成立:
Q π ( s , π ′ ( s ) ) > V π ( s ) Q_{\pi}(s, \pi'(s)) > V_{\pi}(s) Qπ(s,π′(s))>Vπ(s)
则新策略 ( π ′ \pi' π′ ) 优于原策略 ( π \pi π )。 -
策略改进算法:
- 新策略 (
π
\pi
π’ ) 可以通过贪婪策略改进算法来选择,即对于每个状态 (
s
s
s ),选择使得 (
Q
π
(
s
,
a
)
Q_{\pi}(s, a)
Qπ(s,a) ) 最大的动作 (
a
a
a ) 作为新策略的动作:
π ′ ( s ) = argmax a ∈ A Q π ( s , a ) \pi'(s) = \operatorname{argmax}_{a \in \mathcal{A}} Q_{\pi}(s, a) π′(s)=argmaxa∈AQπ(s,a)
- 新策略 (
π
\pi
π’ ) 可以通过贪婪策略改进算法来选择,即对于每个状态 (
s
s
s ),选择使得 (
Q
π
(
s
,
a
)
Q_{\pi}(s, a)
Qπ(s,a) ) 最大的动作 (
a
a
a ) 作为新策略的动作:
-
案例分析:
文件中提供了一个策略改进的案例,展示了如何根据当前策略的状态值函数来计算新策略。这个案例说明了如何基于状态值和动作值的计算来实现策略改进。 -
策略改进的重要性:
策略改进是强化学习中策略迭代算法的一部分。通过不断的策略评估和策略改进,可以逐步逼近最优策略。
总结来说,策略改进是通过利用策略评估得到的信息来生成一个在所有状态下性能都不逊色于当前策略的更好策略的过程。策略改进定理为这一过程提供了理论基础,而贪婪策略改进算法是实现这一过程的一种常用方法。
- 策略改进的概念、策略的优劣定义和策略改进定理。
-
最优值函数和最优策略
- 最优状态值函数和最优动作值函数的定义。
- 贝尔曼最优性方程。
最优值函数和最优策略是强化学习中追求的目标,它们代表了在所有可能策略中能够获得最大期望累积奖励的策略。以下是对最优值函数和最优策略的解析:
-
最优状态值函数:
- 最优状态值函数 (
V
∗
(
s
)
V_*(s)
V∗(s) ) 是指在所有策略 (
π
\pi
π ) 下,从状态 (
s
s
s ) 出发所能获得的最大期望累积折扣奖励。即:
V ∗ ( s ) = max π V π ( s ) ∀ s ∈ S V_*(s) = \max_\pi V_\pi(s) \quad \forall s \in \mathcal{S} V∗(s)=πmaxVπ(s)∀s∈S - 它代表了在最优策略下,从状态 ( s s s ) 出发的期望回报。
- 最优状态值函数 (
V
∗
(
s
)
V_*(s)
V∗(s) ) 是指在所有策略 (
π
\pi
π ) 下,从状态 (
s
s
s ) 出发所能获得的最大期望累积折扣奖励。即:
-
最优动作值函数:
- 最优动作值函数 (
Q
∗
(
s
,
a
)
Q_*(s, a)
Q∗(s,a) ) 是指在所有策略 (
π
\pi
π ) 下,从状态 (
s
s
s ) 出发执行动作 (
a
a
a ) 所能获得的最大期望累积折扣奖励。即:
Q ∗ ( s , a ) = max π Q π ( s , a ) ∀ s ∈ S , a ∈ A Q_*(s, a) = \max_\pi Q_\pi(s, a) \quad \forall s \in \mathcal{S}, a \in \mathcal{A} Q∗(s,a)=πmaxQπ(s,a)∀s∈S,a∈A - 它代表了在最优策略下,执行特定动作后的期望回报。
- 最优动作值函数 (
Q
∗
(
s
,
a
)
Q_*(s, a)
Q∗(s,a) ) 是指在所有策略 (
π
\pi
π ) 下,从状态 (
s
s
s ) 出发执行动作 (
a
a
a ) 所能获得的最大期望累积折扣奖励。即:
-
贝尔曼最优性方程:
- 贝尔曼最优性方程是描述最优策略下状态值函数和动作值函数的递归关系。对于最优状态值函数和最优动作值函数,它们必须满足以下条件:
- 基于状态值函数:
V ∗ ( s ) = max a ∈ A ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ( r ( s , a ) + γ V ∗ ( s ′ ) ) ∀ s ∈ S V_*(s) = \max_{a \in \mathcal{A}} \sum_{s' \in \mathcal{S}} p(s' \mid s, a) (r(s, a) + \gamma V_*(s')) \quad \forall s \in \mathcal{S} V∗(s)=a∈Amaxs′∈S∑p(s′∣s,a)(r(s,a)+γV∗(s′))∀s∈S - 基于动作值函数:
Q ∗ ( s , a ) = ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ( r ( s , a ) + γ max a ′ ∈ A Q ∗ ( s ′ , a ′ ) ) ∀ s ∈ S , a ∈ A Q_*(s, a) = \sum_{s' \in \mathcal{S}} p(s' \mid s, a) (r(s, a) + \gamma \max_{a' \in \mathcal{A}} Q_*(s', a')) \quad \forall s \in \mathcal{S}, a \in \mathcal{A} Q∗(s,a)=s′∈S∑p(s′∣s,a)(r(s,a)+γa′∈AmaxQ∗(s′,a′))∀s∈S,a∈A
- 基于状态值函数:
- 这些方程表明,最优的状态值或动作值是通过对所有可能的动作进行期望回报的计算,并考虑转移概率、即时奖励和折扣因子得到的。
- 贝尔曼最优性方程是描述最优策略下状态值函数和动作值函数的递归关系。对于最优状态值函数和最优动作值函数,它们必须满足以下条件:
-
最优策略的性质:
- 对于任何马尔科夫决策过程( M D P MDP MDP),至少存在一个最优策略 ( π ∗ \pi^* π∗ )。
- 在最优策略下,所有状态都有最优状态值函数 ( V ∗ ( s ) V_*(s) V∗(s) )。
- 在最优策略下,所有状态-动作对都有最优动作值函数 ( Q ∗ ( s , a ) Q_*(s, a) Q∗(s,a) )。
-
动态规划法的两套方案:
- 可以通过“策略评估-策略改进”的循环模式来逐步求出最优策略。
- 也可以直接利用贝尔曼最优性方程先求出最优值函数,然后根据贪婪法求出相应的最优策略。
最优值函数和最优策略是强化学习中的理想目标,它们提供了评估和改进策略的标准。通过贝尔曼最优性方程,我们可以递归地计算出在最优策略下的期望回报,从而为实现和验证最优策略提供理论基础。
-
动态规划法的两套方案
- “策略评估-策略改进”循环和贝尔曼最优性方程直接求解。
动态规划法的两套方案是强化学习中用于求解最优策略的两种主要方法。以下是对这两种方案的解析:
-
“策略评估-策略改进”循环:
- 这是一种迭代方法,它交替进行策略评估和策略改进两个步骤,直到收敛到最优策略。
- 策略评估(Policy Evaluation, PE):在给定策略 ( π \pi π ) 下,计算每个状态的值函数 ( V π ( s ) V_\pi(s) Vπ(s) )。这通常通过解决贝尔曼方程来完成,可以使用方程组法或迭代法。
- 策略改进(Policy Improvement, PI):根据当前策略的状态值函数来构造一个新的策略 ( π ′ \pi' π′ ),该策略在每个状态 ( s s s ) 下选择动作 ( a a a ) 以最大化动作值函数 ( Q π ( s , a ) Q_\pi(s, a) Qπ(s,a) )。
- 这个过程重复进行,每次都会在策略改进后进行策略评估,以检查新策略是否已经最优。
-
贝尔曼最优性方程直接求解:
- 这种方法直接利用贝尔曼最优性方程来求解最优值函数 ( V ∗ ( s ) V_*(s) V∗(s) ) 或 ( Q ∗ ( s , a ) Q_*(s, a) Q∗(s,a) ),然后基于这些最优值函数来构造最优策略 ( π ∗ \pi^* π∗ )。
- 贝尔曼最优性方程:提供了在最优策略下状态值函数和动作值函数的递归关系。通过解决这些方程,可以直接得到最优值函数。
- 构造最优策略:一旦得到最优值函数,可以简单地通过选择在每个状态 ( s s s ) 下使得 ( Q ∗ ( s , a ) Q_*(s, a) Q∗(s,a) ) 最大的动作 ( a a a ) 来构造最优策略 ( π ∗ \pi^* π∗ )。
-
两种方案的比较:
- “策略评估-策略改进”循环是一种逐步逼近最优策略的方法,它不需要直接解决复杂的贝尔曼最优性方程,但可能需要多次迭代。
- 贝尔曼最优性方程直接求解是一种更为直接的方法,它尝试一次性找到最优解,但可能需要解决一个大规模的方程组,这在状态空间很大时可能变得不可行。
-
适用情况:
- “策略评估-策略改进”循环适用于状态空间较小、策略比较容易评估和改进的情况。
- 贝尔曼最优性方程直接求解适用于可以构建和解决大规模方程组的情况,或者当状态空间和动作空间很大时,可以使用函数逼近方法。
-
策略迭代和值迭代:
- 策略迭代(Policy Iteration)是“策略评估-策略改进”循环的实现,它通过迭代过程逐步改善策略。
- 值迭代(Value Iteration)是一种特殊的贝尔曼最优性方程求解方法,它通过迭代更新值函数直到收敛到最优值函数。
总结来说,动态规划法提供了两种求解最优策略的方案:一种是通过交替进行策略评估和策略改进逐步逼近最优策略;另一种是通过直接求解贝尔曼最优性方程来找到最优值函数,并据此构造最优策略。两种方法各有优势和适用场景,在实际应用中可以根据问题的特点和计算资源来选择使用。
-
策略迭代和值迭代
- 策略迭代和值迭代算法的介绍。
策略迭代和值迭代是动态规划求解强化学习问题中的两种主要算法,它们都旨在找到最优策略。以下是对策略迭代和值迭代的解析:
-
策略迭代(Policy Iteration):
-
策略迭代是一种基于“策略评估-策略改进”循环的算法。它从一个初始策略开始,可能是随机策略,然后不断迭代以下两个步骤:
- 策略评估:计算当前策略下所有状态的状态值函数 ( V π ( s ) V_\pi(s) Vπ(s) )。
- 策略改进:基于当前策略的状态值函数,通过贪婪策略改进构造一个新的策略 ( π ′ \pi' π′ ),即对于每个状态 ( s s s ),选择动作 ( a a a ) 使得 ( Q π ( s , a ) Q_\pi(s, a) Qπ(s,a) ) 最大。
-
策略迭代继续进行,直到策略不再变化,此时达到最优策略 ( π ∗ \pi^* π∗ )。
-
-
值迭代(Value Iteration):
- 值迭代是一种直接求解贝尔曼最优性方程的算法。它通过迭代更新每个状态的状态值函数 ( V ( s ) V(s) V(s) ) 或动作值函数 ( Q ( s , a ) Q(s, a) Q(s,a) ) 直到收敛到最优值函数 ( V ∗ ( s ) V_*(s) V∗(s) ) 或 ( Q ∗ ( s , a ) Q_*(s, a) Q∗(s,a) )。
- 值迭代的更新规则基于贝尔曼最优性方程,例如使用动作值函数的更新可以表示为:
Q ( s , a ) ← ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ( r ( s , a ) + γ max a ′ ∈ A Q ( s ′ , a ′ ) ) Q(s, a) \leftarrow \sum_{s' \in \mathcal{S}} p(s' \mid s, a) (r(s, a) + \gamma \max_{a' \in \mathcal{A}} Q(s', a')) Q(s,a)←s′∈S∑p(s′∣s,a)(r(s,a)+γa′∈AmaxQ(s′,a′)) - 对所有状态和动作对 ( ( s , a ) (s, a) (s,a) ) 重复上述更新,直到 ( Q Q Q ) 值收敛。
-
算法特点:
- 策略迭代:每次迭代都保证策略至少不差于前一次迭代的策略,但计算过程中需要存储和更新整个策略。
- 值迭代:直接更新值函数,不需要存储策略本身,通常收敛速度比策略迭代快,但在状态空间很大时可能需要较多的迭代次数。
-
同步更新与异步更新:
- 在值迭代中,可以采用同步更新,即在每个迭代步骤中更新所有状态的状态值或所有状态-动作对的动作值。
- 异步更新则是随机选择状态或状态-动作对进行更新,这种方法可能加快收敛,但收敛性可能不如同步更新。
-
适用情况:
- 策略迭代:适用于状态空间和动作空间较小的问题,可以保证找到最优策略。
- 值迭代:适用于状态空间较大,特别是需要函数逼近方法来估计值函数的问题。
-
算法框架:
- 策略迭代和值迭代都是强化学习的基本框架,它们提供了系统性的方法来求解 M D P MDP MDP问题。
总结来说,策略迭代和值迭代是两种不同的动态规划方法,策略迭代通过不断改进策略来逼近最优策略,而值迭代通过直接更新值函数来找到最优策略。两者各有优势,在不同的问题场景下可以选择合适的方法进行求解。
-
动态规划法求解强化学习案例
- 通过具体案例展示策略迭代和值迭代的应用。
第三章:蒙特卡罗法
-
蒙特卡罗法简介
- 环境模型的状态转移概率和蒙特卡罗法的基本步骤。
蒙特卡罗法( M o n t e C a r l o M e t h o d , M C Monte Carlo Method,MC MonteCarloMethod,MC)是一种用于强化学习的免模型方法。它不依赖于环境模型的状态转移概率,而是通过随机抽样来估计值函数或策略。以下是蒙特卡罗法的基本步骤和环境模型的状态转移概率的相关信息:
-
环境模型的状态转移概率:
- 在强化学习中,环境模型通常指的是状态转移概率,即给定当前状态和动作,系统转移到下一个状态的概率。
- 对于蒙特卡罗法,有两种环境模型:
- 免模型法(Model-Free Method):不使用环境模型,即不依赖于状态转移概率的具体形式。
- 基于模型的方法(Model-Based Method):使用环境模型,即明确知道或能够估计状态转移概率。
-
蒙特卡罗法的基本步骤:
- 步骤1:构造或描述概率过程。这一步涉及将问题转化为具有随机性质的问题,如果问题本身不具有随机性,则需要构造一个相应的概率模型。
- 步骤2:实现从已知概率分布抽样。根据问题的概率模型,进行大量的随机抽样。
- 步骤3:对随机抽样结果进行统计分析。通过抽样结果来估计问题的解,通常是通过计算样本均值等无偏估计量来近似真实解。
蒙特卡罗法特别适用于那些难以直接求解的问题,或者当环境模型未知或难以建模时。通过随机抽样,蒙特卡罗法可以近似地估计出强化学习中的值函数或策略,进而用于决策过程。这种方法的一个关键优势是它不需要对环境的动态有一个精确的数学描述,这使得它在实际应用中非常灵活和强大。
- 环境模型的状态转移概率和蒙特卡罗法的基本步骤。
-
蒙特卡罗策略评估
- 无明确状态转移概率的策略评估方法。
蒙特卡罗策略评估(Monte Carlo Policy Evaluation)是一种用于评估强化学习中策略性能的方法,特别是在没有明确状态转移概率的情况下。以下是蒙特卡罗策略评估的关键点:
-
无明确状态转移概率:
- 在实际应用中,智能体可能无法获得或准确估计状态转移概率。蒙特卡罗策略评估允许在这种免模型(Model-Free)环境中进行策略评估。
-
蒙特卡罗策略评估方法:
- 经历完整的MDP序列:评估过程需要经历完整的马尔可夫决策过程( M D P MDP MDP)序列,即从初始状态开始,通过一系列动作和状态转移,直到达到终止状态。
- 初始状态可能不同或不唯一:不同的评估过程可能从不同的初始状态开始。
- 达到终止状态的步骤可能不同:不同的 M D P MDP MDP序列可能在不同数量的步骤后达到终止状态。
- 终止状态不止一种:在某些问题中,可能存在多个终止状态。
-
动作值函数的样本均值:
- 目标是计算动作值函数 ( Q ( s , a ) Q(s, a) Q(s,a) ),即从状态 ( s s s ) 出发,执行动作 ( a a a ) 后的期望累积折扣奖励。
- 使用样本均值来估计 ( Q ( s , a ) Q(s, a) Q(s,a) ),即通过多次抽样(每个样本是一个完整的 M D P MDP MDP序列)来计算平均值。
-
访问方式:
- 首次访问:在首次访问蒙特卡罗策略评估中,只有当状态-动作对首次出现时,才使用它来更新动作值函数的估计。
- 每次访问:在每次访问蒙特卡罗策略评估中,每次状态-动作对出现时都更新动作值函数的估计。
-
蒙特卡罗策略评估算法:
- 算法会维护一个动作值函数的估计表 ( Q ( s , a ) Q(s, a) Q(s,a) )。
- 对于每个MDP序列,计算从该序列中获得的回报 ( G t G_t Gt )。
- 使用回报 ( G t G_t Gt ) 更新 ( Q ( s , a ) Q(s, a) Q(s,a) ) 的估计,可以是首次访问或每次访问的方式。
-
增量式蒙特卡罗策略评估:
- 增量式方法是一种计算样本均值的高效方式,它避免了在每次迭代中重新计算整个序列的累积和。
蒙特卡罗策略评估的优点在于它不需要对环境的动态有一个精确的数学描述,因此适用于那些难以建模的环境。然而,它通常需要大量的样本来获得准确的估计,这可能导致较高的计算成本。此外,蒙特卡罗方法通常需要完整的MDP序列,这在实际应用中可能不太可行,尤其是在需要长期交互的环境中。
-
蒙特卡罗强化学习
- 蒙特卡罗策略改进和动作值稀疏性问题。
蒙特卡罗强化学习(Monte Carlo Reinforcement Learning)是一种基于蒙特卡罗方法的强化学习技术,它通过随机抽样来评估和改进策略。以下是蒙特卡罗强化学习中蒙特卡罗策略改进和动作值稀疏性问题的关键点:
-
蒙特卡罗策略改进:
- 蒙特卡罗策略改进的目标是利用当前策略评估得到的状态值函数来计算出一个新的更优的策略。
- 改进策略的公式为 ( π ′ ( s ) ≜ arg max a ∈ A Q ˉ π ( s , a ) \pi'(s) \triangleq \arg\max_{a \in \mathbb{A}} \bar{Q}_\pi(s, a) π′(s)≜argmaxa∈AQˉπ(s,a)),其中 ( Q ˉ π ( s , a ) \bar{Q}_\pi(s, a) Qˉπ(s,a)) 是动作值函数的样本均值。
-
动作值稀疏性问题:
- 在蒙特卡罗强化学习中,由于每个MDP序列只访问状态空间的一个子集,很多状态-动作对可能从未被访问过,导致动作值函数的估计不准确,这就是动作值稀疏性问题。
- 解决动作值稀疏性的方法包括:
- 起始探索:保证每一个状态-动作对都会作为初始状态-动作对出现在一些 M D P MDP MDP样本序列中。
- 软策略探索:使用 ( ε \varepsilon ε)-贪心策略,保证每一个状态-动作对都以一定的非零概率出现在 M D P MDP MDP样本序列中。
-
探索策略:
- 确定性策略:在某个状态下,智能体总是执行同一个动作。
- ( ε \varepsilon ε)-贪心策略:在 ( ε \varepsilon ε) 的概率下随机选择一个动作,以保证探索性;在 ( 1 − ε 1-\varepsilon 1−ε) 的概率下选择当前最优动作,以保证利用性。
-
蒙特卡罗强化学习算法:
- 算法通过多次抽样(每个样本是一个完整的MDP序列)来估计状态-动作对的价值。
- 在每次迭代中,算法使用这些估计来更新策略,选择那些估计价值更高的动作。
-
案例分析:
- 文件中提到了21点游戏作为蒙特卡罗强化学习的案例,通过使用蒙特卡罗方法来寻找最优策略。
-
重要性采样:
- 当使用异策略蒙特卡罗强化学习时,即目标策略和行为策略不同时,需要使用重要性采样来调整样本的重要性,以反映目标策略与行为策略之间的差异。
-
增量式更新:
- 在蒙特卡罗强化学习中,可以采用增量式更新方法来高效地更新动作值函数的估计。
蒙特卡罗强化学习的一个关键优势是它不需要环境的模型信息,因此在面对复杂或未知环境时非常有用。然而,它通常需要大量的样本来获得稳定的策略评估,这可能导致学习过程较慢。此外,探索与利用之间的平衡是蒙特卡罗强化学习中的一个核心挑战。
-
异策略蒙特卡罗强化学习
- 目标策略与行为策略的区别和重要性采样。
异策略蒙特卡罗强化学习(Off-policy Monte Carlo Reinforcement Learning)是一种即使目标策略和行为策略不同时也能够学习目标策略的方法。以下是关于目标策略与行为策略的区别和重要性采样的关键点:
-
目标策略与行为策略的区别:
- 目标策略(Target Policy):这是我们希望学习或优化的策略,即我们最终想要智能体遵循的策略。
- 行为策略(Behavior Policy):这是用于生成经验数据的策略,可能与目标策略不同。行为策略通常更注重探索,以确保所有状态-动作对都能被访问。
-
同策略与异策略强化学习:
- 同策略强化学习(On-policy):目标策略和行为策略相同,即智能体在学习策略的同时也是按照该策略行动。
- 异策略强化学习(Off-policy):目标策略和行为策略不同,允许智能体在生成数据时采用不同的策略,而在学习时则专注于目标策略。
-
重要性采样(Importance Sampling):
- 重要性采样是一种技术,用于调整按行为策略获得的样本,使它们反映目标策略的重要性。
- 通过计算重要性权重,可以纠正由于行为策略和目标策略之间的差异而引起的偏差。
-
重要性权重:
- 重要性权重是通过比较目标策略和行为策略在特定状态-动作对上的概率来计算的。权重公式为 ( ρ ( s , a ) = π ( a ∣ s ) b ( a ∣ s ) \rho(s, a) = \frac{\pi(a|s)}{b(a|s)} ρ(s,a)=b(a∣s)π(a∣s) ),其中 ( π ( a ∣ s ) \pi(a|s) π(a∣s) ) 是目标策略在状态 ( s s s ) 下选择动作 ( a a a ) 的概率,( b ( a ∣ s ) b(a|s) b(a∣s) ) 是行为策略在相同状态下选择动作 ( a a a ) 的概率。
-
加权重要性采样:
- 在某些情况下,可能需要对重要性权重进行加权,以进一步调整样本的贡献度。
-
异策略蒙特卡罗策略评估:
- 使用重要性采样,可以估计目标策略的动作值函数,即使数据是按行为策略获得的。
-
增量式异策略蒙特卡罗策略评估:
- 增量式方法允许在每个样本后更新估计,而不是在所有样本收集完毕后一次性更新,这提高了学习效率。
-
尾部学习效应(Learning on the Tail):
- 在异策略学习中,尤其是在长序列的末端,由于重要性权重的累积效应,可能会导致学习变得不稳定。
-
( ε \varepsilon ε) 的取值:
- 在使用 ( ε \varepsilon ε)-贪心策略作为行为策略时,需要仔细选择 ( ε \varepsilon ε) 的值,以平衡探索和利用。
-
案例分析:
- 文件中提到了异策略蒙特卡罗强化学习的案例,说明了如何使用增量式异策略评估算法来估计目标策略的动作值函数。
异策略蒙特卡罗强化学习允许智能体在探索时采取不同的策略,同时学习最优策略,这在实际应用中非常有用,尤其是在目标策略可能过于保守或不利于探索的情况下。重要性采样是实现这一目标的关键技术,它允许智能体从行为策略生成的数据中学习目标策略。
第四章:时序差分策略评估
-
时序差分策略评估原理
- 基于增量法的值函数估计。
时序差分策略评估(Temporal Difference, TD)是一种强化学习中的方法,它用于估计值函数,即在给定策略下状态或状态-动作对的期望回报。这种方法的核心是利用增量法来更新值函数的估计,而不是像蒙特卡罗方法那样等待完整的episode结束才进行更新。
时序差分策略评估原理:
-
基于增量法的值函数估计:
- 增量法是一种迭代更新方法,它通过不断调整当前的估计值来逼近真实值。
- 在时序差分学习中,增量法用于更新状态值函数( V V V)或动作值函数( Q Q Q)。
-
动态更新:
- 与传统的蒙特卡罗方法不同,时序差分方法可以在每个时间步进行更新,而不需要等待整个 e p i s o d e episode episode结束。
- 这种即时更新的特性使得TD方法在样本效率上更高,因为它可以在探索过程中不断学习。
-
自举(Bootstrapping):
- 时序差分方法使用当前的估计值(例如,下一个时间步的值函数或动作值函数)来更新当前时间步的估计值。
- 这种技术被称为自举,因为它使用了估计值本身来改进估计。
-
更新公式:
- 对于动作值函数Q的更新,时序差分算法通常使用如下公式:
Q ( s t , a t ) ← Q ( s t , a t ) + α ( R t + 1 + γ Q ( s t + 1 , a t + 1 ) − Q ( s t , a t ) ) Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \left( R_{t+1} + \gamma Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t) \right) Q(st,at)←Q(st,at)+α(Rt+1+γQ(st+1,at+1)−Q(st,at)) - 其中, α \alpha α 是学习率,( R t + 1 R_{t+1} Rt+1 ) 是在时间步 ( t + 1 t+1 t+1 ) 获得的即时奖励,( γ \gamma γ ) 是折扣因子,( Q ( s t + 1 , a t + 1 ) Q(s_{t+1}, a_{t+1}) Q(st+1,at+1) ) 是下一个状态的动作值估计。
- 对于动作值函数Q的更新,时序差分算法通常使用如下公式:
-
无需模型:
- 时序差分方法不需要环境的动态模型,也就是说,它不需要知道状态转移概率,它通过与环境的交互来学习。
-
适用于在线学习和控制问题:
- 由于其在线更新的特性,时序差分方法非常适合在线学习任务,即在不断与环境交互的过程中学习最优策略。
-
存在偏差:
- 尽管时序差分方法在样本效率上具有优势,但它的估计可能会有偏差,特别是当学习率不是精心选择的时候。
-
减少方差:
- 由于使用了自举方法,时序差分可以减少蒙特卡罗方法中的方差,因为它不是完全依赖于整个episode的回报。
时序差分策略评估是强化学习中非常重要的一个概念,它为后续的许多算法,包括深度强化学习算法,提供了基础。
-
同策略时序差分强化学习
- Sarsa算法的介绍。
同策略时序差分强化学习指的是在强化学习中,目标策略(即我们想要评估和改进的策略)与行为策略(即实际用来选择动作的策略)是一致的。在这种框架下,Sarsa算法是一个典型的代表,它是一种on-policy的时序差分学习算法。
Sarsa算法介绍:
-
算法原理:
- Sarsa算法使用时序差分学习来更新动作值函数Q,即对于每个状态-动作对的估计值进行更新。
-
更新公式:
- Sarsa算法的动作值函数更新公式如下:
Q ( s , a ) ← Q ( s , a ) + α [ R t + 1 + γ Q ( s t + 1 , a t + 1 ) − Q ( s , a ) ] Q(s, a) \leftarrow Q(s, a) + \alpha \left[ R_{t+1} + \gamma Q(s_{t+1}, a_{t+1}) - Q(s, a) \right] Q(s,a)←Q(s,a)+α[Rt+1+γQ(st+1,at+1)−Q(s,a)] - 其中, α \alpha α 是学习率,( R t + 1 R_{t+1} Rt+1 ) 是在时间步 ( t + 1 t+1 t+1 ) 获得的即时奖励,( γ \gamma γ ) 是折扣因子,( Q ( s t + 1 , a t + 1 ) Q(s_{t+1}, a_{t+1}) Q(st+1,at+1) ) 是下一个状态-动作对的Q值估计。
- Sarsa算法的动作值函数更新公式如下:
-
同策略特性:
- 在Sarsa算法中,下一个动作 ( a t + 1 a_{t+1} at+1 ) 是根据当前策略 ( π \pi π ) 在下一个状态 ( s t + 1 s_{t+1} st+1 ) 下选择的,确保了算法的on-policy特性。
-
探索与利用:
- Sarsa算法在更新Q值时,同时考虑了探索(通过行为策略选择动作)和利用(使用当前的Q值估计来指导动作选择)。
-
算法流程:
- Sarsa算法的流程通常包括初始化Q值,然后在每个时间步执行以下步骤:
- 根据当前策略选择一个动作。
- 执行动作,观察奖励和下一个状态。
- 使用Sarsa更新规则更新当前状态-动作对的Q值。
- 将下一个状态作为当前状态,根据当前策略选择下一个动作。
- Sarsa算法的流程通常包括初始化Q值,然后在每个时间步执行以下步骤:
-
应用场景:
- Sarsa算法适用于需要同时考虑探索和利用的场景,特别是在策略评估和改进过程中。
-
算法变体:
- Sarsa算法有多种变体,例如 S a r s a ( λ ) Sarsa(λ) Sarsa(λ),它引入了trace的概念来加权过去的奖励,以及ε-greedy策略用于探索。
-
局限性:
- Sarsa算法的一个局限性是它依赖于当前策略来进行探索,这可能导致在某些情况下探索不足。
-
与其他算法的比较:
- 与Q-learning相比,Sarsa算法是on-policy的,而Q-learning是off-policy的。这意味着Q-learning可以使用与当前策略不同的策略来选择下一个动作进行更新。
Sarsa算法是理解和实现强化学习算法的一个重要起点,特别是在需要考虑策略与行为一致性的场景中。
-
异策略时序差分强化学习
- Q-learning算法的介绍。
异策略时序差分强化学习指的是在强化学习中,目标策略(我们想要学习的最优策略)与行为策略(实际用来选择动作的策略)可以是不同的。Q-learning算法是这种框架下最著名的算法之一。
Q-learning算法介绍:
-
算法原理:
- Q-learning是一种off-policy时序差分学习算法,它旨在学习一个最优的动作值函数Q,即使用贪婪策略从当前状态所能获得的最大期望回报。
-
更新公式:
- Q-learning算法的动作值函数更新公式如下:
Q ( s , a ) ← Q ( s , a ) + α [ R t + 1 + γ max a ′ Q ( s t + 1 , a ′ ) − Q ( s , a ) ] Q(s, a) \leftarrow Q(s, a) + \alpha \left[ R_{t+1} + \gamma \max_{a'} Q(s_{t+1}, a') - Q(s, a) \right] Q(s,a)←Q(s,a)+α[Rt+1+γa′maxQ(st+1,a′)−Q(s,a)] - 其中, α \alpha α 是学习率,( R t + 1 R_{t+1} Rt+1 ) 是在时间步 ( t + 1 t+1 t+1 ) 获得的即时奖励,( γ \gamma γ ) 是折扣因子,而 ( max a ′ Q ( s t + 1 , a ′ ) \max_{a'} Q(s_{t+1}, a') maxa′Q(st+1,a′) ) 是下一个状态 ( s t + 1 s_{t+1} st+1 ) 下所有可能动作的Q值估计中的最大值。
- Q-learning算法的动作值函数更新公式如下:
-
异策略特性:
- Q-learning在更新Q值时,考虑的是下一个状态可能采取的最优动作,而不是当前行为策略所选择的动作。
-
探索与利用:
- 尽管Q-learning算法本身不负责探索,但它可以与ε-greedy等探索策略结合使用,以确保学习过程中的探索性。
-
算法流程:
- Q-learning算法的流程通常包括初始化Q值,然后在每个时间步执行以下步骤:
- 根据当前策略(可以是ε-greedy)选择一个动作。
- 执行动作,观察奖励和下一个状态。
- 使用Q-learning更新规则更新当前状态-动作对的Q值。
- 将下一个状态作为当前状态,继续选择动作。
- Q-learning算法的流程通常包括初始化Q值,然后在每个时间步执行以下步骤:
-
应用场景:
- Q-learning算法适用于学习最优策略的场景,尤其是在状态空间和动作空间较大的情况下。
-
算法优势:
- 由于Q-learning是off-policy的,它可以从当前策略的行为中学习最优策略,即使当前策略不是最优的。
-
算法变体:
- Q-learning有多种变体,例如Q-learning(λ),它结合了 S a r s a ( λ ) Sarsa(λ) Sarsa(λ)的某些特性,使用eligibility traces来加速学习过程。
-
局限性:
- Q-learning的一个局限性是它可能需要大量的数据来学习准确的Q值,尤其是在状态空间很大的情况下。
-
与其他算法的比较:
- 与Sarsa相比,Q-learning学习的是最优策略,而Sarsa学习的是与当前行为策略一致的策略。
Q-learning算法是强化学习中一个非常基础且强大的算法,它为许多现代强化学习算法提供了理论基础,尤其是在需要学习最优策略的应用中。
案例分析
- 通过格子世界、21点游戏、风世界问题等案例,展示了强化学习算法的应用。
第一章:格子世界(Grid World)和倒立摆控制系统
-
格子世界
- 环境设定:机器人在网格中移动,目标是到达特定格子。
- 状态空间:离散,由网格坐标定义。
- 动作空间:离散,包括上、下、左、右移动。
- 状态转移概率:由机器人移动指令的成功率和错误率定义。
- 奖励函数:基于离目标的曼哈顿距离的倒数,或简单的0/1奖励。
- 折扣因子: γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1] 。
-
倒立摆控制系统
- 环境设定:控制摆杆保持在竖直方向,小车在滑轨上移动。
- 状态空间:连续,包括小车的位移、速度、摆杆的偏角和角加速度。
- 动作空间:离散,小车向左或向右移动。
- 状态转移概率:无模型环境,由物理机制决定。
- 奖励函数:基于状态是否为中间状态或终止状态。
- 折扣因子: γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1] 。
第二章:强化学习案例
- 环境模型:5个状态和5个动作的简化模型,用于评估和改进策略。
- 状态空间:( S = { s 1 , s 2 , s 3 , s 4 , s 5 } S = \{s_1, s_2, s_3, s_4, s_5\} S={s1,s2,s3,s4,s5} )。
- 动作空间:包括Facebook, Quit, sleep, study, Pub。
- 状态转移概率:定义了状态间转移的条件概率。
- 奖励函数:特定动作和状态下的即时奖励。
- 折扣系数:( γ = 1 \gamma = 1 γ=1 )。
- 平均策略:每个状态下动作的选择概率。
- 策略评估:使用贝尔曼方程评估平均策略。
- 策略改进算法:基于状态值和动作值的计算来改进策略。
第三章:蒙特卡罗策略评估案例
- 21点游戏:赌博游戏,涉及状态空间、动作空间和庄家策略。
- 蒙特卡罗策略评估:首次访问和增量式每次访问算法。
- 蒙特卡罗强化学习:使用起始探索和贪婪策略进行策略改进。
- 异策略蒙特卡罗强化学习:使用重要性采样来评估和改进策略。
第四章:时序差分策略评估
- 风世界问题(Windy World):涉及状态空间、动作空间和平均策略。
- 时序差分法:评估平均策略和使用Sarsa算法求解风世界问题。
- 随机游走问题(Random Walk):马尔科夫奖励过程,涉及状态转移和奖励。
- TD差分与MC差分:比较两种方法在状态值评估上的差异。
复习重点
- 理解不同强化学习环境中的状态空间和动作空间。
- 掌握状态转移概率和奖励函数的定义及其对策略评估的影响。
- 学习如何使用贝尔曼方程进行策略评估和改进。
- 理解蒙特卡罗方法和时序差分方法在强化学习中的应用。
- 掌握策略迭代和值迭代在求解最优策略中的应用。