Markov Decision Process, MDP(17)
强化学习任务通常使用马尔可夫决策过程(MDP)来描述。MDP 是一个为具有不确定性的序贯决策问题提供数学模型的框架。其核心在于一个智能体(Agent)与环境(Environment)的持续交互:智能体感知当前状态,执行一个动作,环境随之转移到一个新的状态,并给予智能体一个奖励。这个循环不断持续,智能体的目标是学习一个最优策略,以最大化其长期累积奖励。
所谓序贯决策,指的是决策者需要连续不断地做出决策,并且每个决策都会影响到未来的结果。
参考内容: MDP与强化学习
马尔可夫决策过程 (MDP)
一个MDP由以下几个核心要素构成:
- 状态集合 (A set of states S):智能体可能所处的所有状态。
- 行动集合 (A set of actions A):智能体在每个状态下可以采取的行动。
- 转移函数 (A transition function T(s, a, s’)):这是对世界动态的概率性描述。T(s, a, s’) = P(s’ | s, a) 表示在状态 s 执行行动 a 后,转移到状态 s’ 的概率。
- 奖励函数 (A reward function R(s, a, s’)):描述了智能体从状态 s 采取行动 a 并转移到状态 s’ 后获得的即时奖励。这个奖励反映了智能体的“偏好”。智能体的目标是最大化其长期累积奖励,而不是眼前的单步奖励。
- 折扣因子 (A discount factor
γ):一个介于0和1之间的数,用于平衡即时奖励和未来奖励的重要性。
- γ 越接近1,智能体越有“远见”,会更看重未来的长期回报。
- γ 越接近0,智能体越“短视”,只关心眼前的即时奖励。
- 一个在时间步 t 发生的奖励 R,其价值会被折扣为 γt × Rt
- 它保证了即使在一个无限时间的过程中,效用的总和也是一个有限值,从而使问题在数学上是可解的。
策略(Policy, π)
一个策略 π 是一个从状态到行动的映射,即 π(s) = a。它告诉智能体在每个状态下应该做什么。一个最优策略 π* 则是那个能够最大化期望的总折扣奖励(Discounted Cumulative Reward),也称为回报(Return)的策略。
回报与折扣(Return & Discounting)
一个状态序列的效用被定义为所有奖励的折扣总和: U = R(s0, a0, s1) + γR(s1, a1, s2) + γ2R(s2, a2, s3) + ...
当 0 < γ < 1 时,这个无限序列的和是有限的,其上界为 Rmax/(1 − γ),其中 Rmax 是可能的最大单步奖励
价值函数
为了评估一个策略的好坏,我们使用价值函数来量化一个状态或一个”状态-动作”对的长期价值。
最优状态价值函数 (Optimal Value Function, U*(s) 或 V*(s)):代表从状态 s 出发,并从此遵循最优策略,所能获得的期望总回报。
最优动作价值函数 (Optimal Q-Value Function, Q*(s, a)):代表在状态 s 采取动作 a 后,再遵循最优策略,所能获得的期望总回报。
- 这也被称为 (s, a) 对的 Q值 (Q-value)。
这两者之间的关系非常直观:一个状态的最优价值,等于从该状态出发所有可能的动作中,能带来的最优动作价值的最大值。
U*(s) = maxaQ*(s, a)
贝尔曼方程 (The Bellman Equation)
贝尔曼方程是 MDP 中最核心的方程,它通过一种递归的方式将一个状态的价值与其后续状态的价值关联起来,是求解 MDP 的基础 。
贝尔曼期望方程 (Bellman Expectation Equation)
用途:用于评估一个已知且固定的策略 π。它回答的问题是:“如果我遵循这个策略,每个状态/动作的长期价值是多少?” 。
- 状态价值函数 (vπ(s)):计算在遵循策略 π 时,状态 s 的期望回报。
vπ(s) = ∑a ∈ Aπ(a|s)(R(s, a) + γ∑s′ ∈ SP(s′|s, a) ⋅ vπ(s′))
- 动作价值函数 (qπ(s, a)):计算在状态 s 执行动作 a 后,继续遵循策略 π 所带来的期望回报。
qπ(s, a) = R(s, a) + γ∑s′ ∈ SP(s′|s, a) ⋅ vπ(s′)
贝尔曼最优方程 (Bellman Optimality Equation)
用途:用于求解最优价值函数,它定义了一个价值函数在最优时必须满足的条件。它回答的问题是:“在所有可能的策略中,每个状态/动作能达到的最大价值是多少?”
- 最优状态价值函数 (v*(s) 或 U*(s)):计算状态 s 在所有策略中可能达到的最大期望回报。
v*(s) = maxa(R(s, a) + γ∑s′ ∈ SP(s′|s, a) ⋅ v*(s′))
- 最优动作价值函数 (q*(s, a) 或 Q*(s, a)):计算在状态 s 执行动作 a 后,按照最优策略执行所带来的最大期望回报。
q*(s, a) = R(s, a) + γ∑s′ ∈ SP(s′|s, a) ⋅ v*(s′)
因为我们的研究方向是最优解, 因此后续的分析中主要关注贝尔曼最优方程。 而贝尔曼最优方程可以被看作是动态规划的两步:
计算期望:对于每个动作 a,计算其期望价值 Q*(s, a)(类似于Expectimax算法中的机会节点)。
取最大值:选择那个使 Q*(s, a) 最大的动作,其价值就是 U*(s)(类似于最大化节点)。
到这里, 我们不要忘记核心目标是找到求解贝尔曼方程的方法,从而找到最优策略。这通常通过动态规划算法实现,我们将在下一讲学习具体的算法,如值迭代 (Value Iteration) 和策略迭代 (Policy Iteration)。
除此之外, 还可以通过强化学习的方法解决MDP问题。它们的核心区别是环境是否已知, 这是区分传统 MDP 解决方法(如动态规划)和强化学习方法的关键点。
如果 MDP 的所有要素(S,A,T,R,γ)都是已知的:
- 这种情况下,我们称之为基于模型的(Model-Based) 方法。我们可以使用动态规划(Dynamic Programming) 等方法直接计算出最优策略,例如通过价值迭代(Value Iteration)或策略迭代(Policy Iteration)。
如果 MDP 的转移概率 P 和/或奖励函数 R 是未知的:
这在现实世界中非常常见。例如,我们不知道机器人执行“向北”指令后,具体会以多大概率到达哪个新位置。智能体必须通过与环境的实际交互(试错)来学习。
强化学习正是为了解决这类问题而生的。它是一套无模型(Model-Free) 或试图学习模型的算法。智能体在未知的环境中,通过不断地尝试、观察结果(下一个状态和奖励),逐步地学习和改进自己的策略。
常见的 RL 算法:
- Q-Learning 和 SARSA 这类基于价值的算法,通过估计每个“状态-动作”对的价值来学习策略。
- 策略梯度(Policy Gradient) 方法,直接对策略函数进行优化。
- 深度强化学习(Deep Reinforcement Learning, DRL),如 DQN、A3C 等,将深度学习与强化学习结合,使其能够处理高维度的状态空间(例如,直接从游戏屏幕的像素学习)。