假设我们要构建一个智能体(Agent),在谈论策略(Policy)或动作(Action)之前,首先需要解决一个本质问题:我们究竟如何量化“目标”,又如何让机器理解这种量化?

这不仅仅是数学上的定义,更是人机交互的一种哲学隐喻——Reward(奖励)正是这种交互的介质。

奖励与轨迹:人机交互的唯一介质

在这个框架下,我倾向于将 Reward 视为人类与 Agent 沟通的唯一语言。我们通过设计 Reward 函数来引导 Agent 的行为。这里存在一个常被忽视的认知:在强化学习的语境下,“没有奖励”本身往往就意味着一种“惩罚”(时间流逝的惩罚),反之亦然。这种二元对立在数学处理上是统一的。

为了描述 Agent 的一连串行为,我们引入了 Trajectory(轨迹) 的概念。它是一条由状态和动作交织而成的链条:

面对这样一个序列,我首先面临的问题是:如何评估这条轨迹的优劣?这就引出了 Return(回报) 的概念。最直观的想法是将轨迹上所有的 Reward 相加。但在工程实践中,如果任务是无限进行的(Continuing Task),无穷多的正数相加会导致级数发散,这让数学特性的分析变得极其困难。

为了解决这个问题,同时也为了在逻辑上体现“由近及远”的时间偏好,我们需要引入折扣因子 (Discount Factor),定义折扣回报(Discounted Return)为:

这里的 是一个处于 之间的数。经过深入思考,我发现 其实控制了 Agent 的“视野”:

  • 时,Agent 变得极度短视,只在乎当前的

  • 时,Agent 变得高瞻远瞩,愿意为了长远的未来牺牲当下的收益。

为了统一处理有限的 Episode(回合制) 和无限的 Continuing(连续制) 任务,我在处理数据结构时通常会采用一个小技巧:对于回合制任务,想象在终止状态之后,Agent 进入了一个特殊的“吸收状态”(Absorbing State),它只会不断地回到自身,且获得的 Reward 永远为 0。这样一来,所有的任务都可以被视为无限长的序列,方便了公式的统一推导。

必要的假设:马尔可夫性质

在构建数学模型时,我们需要一个能够承载这些元素的容器,这就是 MDP(马尔可夫决策过程)。它包含了一个集合

其中的核心在于马尔可夫性质(Markov Property)。通俗地说,就是“历史无关性”:

未来的状态仅取决于当前的状态和动作,而与过去的历史无关。

老实说,第一次接触这个概念时我非常排斥。直觉上,我们总觉得“以史为鉴”是重要的。但在建模中,如果不得不考虑所有历史信息,状态空间将呈指数级爆炸,导致计算完全不可行。

因此,接受马尔可夫性质其实是一种为了计算可行性而做出的妥协。幸运的是,在大多数物理现实中,如果我们定义的“状态”足够完善(例如包含位置、速度、加速度),那么当前状态确实已经包含了预测未来所需的所有信息。

贝尔曼方程:递归的本质

有了 MDP 和回报的定义,我们终于可以触碰强化学习的核心——Bellman Equation(贝尔曼方程)

我们定义状态价值函数 为从状态 出发能获得的期望回报。如果我们直接展开求和公式,计算会非常繁琐。但如果我们利用递归的思想,就会发现一个优雅的结构:

这个方程揭示了价值的本质:当前状态的价值,等于即时奖励加上未来状态价值的折扣期望。

Note

在推导贝尔曼方程的过程中,必须要理解概率论中的 全期望公式(Law of Total Expectation)

求解:从方程到矩阵

基于上述理解,我们可以把贝尔曼方程写成更具体的形式:

仔细观察,这本质上是一个线性方程组。如果我们把所有状态的价值排列成一个列向量 ,那么对于全体状态空间,可以写成矩阵形式:

其中 是状态转移矩阵。看到这个形式,我的第一反应是:这完全就是线性代数里的 。我们可以直接通过矩阵运算求解:

结果与权衡 (Trade-offs)

虽然数学上给出了闭式解(Closed-form solution),但在实际工程中,直接求逆矩阵的代价是不可接受的

矩阵求逆的时间复杂度通常是

  • 如果状态空间 是 1000,计算尚可接受。

  • 但对于围棋()或复杂的机器人控制任务,这种方法即刻失效。

这就是为什么在后续的算法演进中,我们需要引入动态规划(Dynamic Programming)、蒙特卡洛(Monte Carlo)或时序差分(Temporal Difference)等迭代方法——它们本质上都是在避开昂贵的矩阵求逆,试图以更低的算力成本逼近这个 值。

写在最后

我们费尽周折计算 是为了什么?答案很简单:决策。如果我们知道了所有状态的价值,这就是一张“藏宝图”,我们只需要在每一个路口贪婪地选择通向高价值状态的动作即可。但这建立在已知环境模型() 的假设之上。如果在未知环境中,我们该怎么办?这将是无模型(Model-Free)强化学习要解决的问题。