强化学习

在许多如棋牌博弈、机器人控制等序列决策场景中,智能体(Agent)需要与环境(Environment)进行动态交互,并通过交互获得的数据来学习其决策策略。这些动态决策场景十分广泛,包括博弈游戏、无人机空战、交通灯控制、无人驾驶以及智能电网等。

什么是强化学习?


一、强化学习基本概念

强化学习(Reinforcement Learning, RL)从动物学习过程中汲取灵感,强调在与环境的不断交互和试错中学习,通过获取经验来优化行为。

强化学习过程的四个基本要素:

  1. 智能体 (Agent): 学习者和决策者。
  2. 环境 (Environment): 智能体外部的一切,与智能体交互。
  3. 动作 (Action): 智能体可以执行的操作。
  4. 奖励 (Reward): 环境对智能体动作的即时反馈信号,用于评估动作的好坏。
  5. 状态 (State): 对环境某个时刻的描述,是智能体决策的依据。
    • (PPT中环境模型和交互样本是要素,这里结合通用表述调整为Agent, Environment, Action, Reward, State)

1. 马尔可夫性质 (Markov Property)

一个状态如果具有马尔可夫性质,意味着给定当前状态后,未来状态的概率分布仅与当前状态有关,而与过去的状态(即该过程的历史状态)无关。

P[St+1∣St]=P[St+1∣S1,S2,…,St]P[S_{t+1} | S_t] = P[S_{t+1} | S_1, S_2, \dots, S_t]

或者如PPT中更一般的形式:

P{St+h=s′∣St=st,St−1=st−1,…,S0=s0}=P{St+h=s′∣St=st},∀h>0P\{S_{t+h}=s'|S_t=s_t, S_{t-1}=s_{t-1}, \dots, S_0=s_0\} = P\{S_{t+h}=s'|S_t=s_t\}, \forall h > 0

  • 当前状态包含了历史中的所有相关信息。
  • 一旦当前状态已知,就可以忽略其余的历史状态信息。

2. 马尔可夫决策过程 (Markov Decision Process, MDP)

MDP 是对强化学习问题进行形式化描述的框架。一个MDP通常由一个五元组 ⟨S,A,P,R,γ⟩\langle S, A, P, R, \gamma \rangle 定义:

  • 状态空间 SS (State Space): 所有可能状态的集合。

  • 动作空间 AA (Action Space): 所有可能动作的集合。

  • 状态转移函数 PP (Transition Function): P(s′∣s,a)=P{St+1=s′∣St=s,At=a}P(s'|s,a) = P\{S_{t+1}=s'|S_t=s, A_t=a\},表示在状态 ss 执行动作 aa 后,转移到状态 s′s' 的概率。

  • 奖励函数 RR (Reward Function): R(s,a,s′)R(s,a,s') 表示在状态 ss 执行动作 aa 转移到状态 s′s' 后获得的即时奖励。PPT中表示为 Rt=R(St,At,St+1)R_t = R(S_t, A_t, S_{t+1})。有时也定义为 R(s,a)=E[Rt+1∣St=s,At=a]R(s,a) = E[R_{t+1}|S_t=s, A_t=a]。

  • 折扣因子 γ\gamma (Discount Factor): γ∈[0,1]\gamma \in [0,1],用于衡量未来奖励在当前时刻的价值。

3. 策略 (Policy)

策略 π\pi 是智能体在给定状态下选择动作的方式,即从状态到动作的映射。

  • 随机性策略 (Stochastic Policy) π(a∣s)\pi(a|s): 输出在状态 ss 下选择动作 aa 的概率。满足 ∑a∈Aπ(a∣s)=1\sum_{a \in A} \pi(a|s) = 1。
  • 确定性策略 (Deterministic Policy) a=π(s)a = \pi(s): 输出在状态 ss 下选择的唯一确定动作。

策略的具体形式:

  • 表格策略 (Tabular Policy): 对于每一个状态 ss,直接存储采取动作 aa 的概率 π(a∣s)\pi(a|s) 或确定的动作 π(s)\pi(s)。
  • 参数化策略 (Parameterized Policy): 使用带有参数 θ\theta 的函数来表示策略,例如神经网络。
    • 确定性: a=πθ(s)≜π(s;θ)a = \pi_\theta(s) \triangleq \pi(s;\theta)
    • 随机性: πθ(a∣s)≜π(a∣s;θ)\pi_\theta(a|s) \triangleq \pi(a|s;\theta)

4. 回报 (Return)

回报 GtG_t 是从时间步 tt 开始的所有未来折扣奖励的总和:

Gt=Rt+1+γRt+2+γ2Rt+3+⋯=∑k=0∞γkRt+k+1G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}

  • 折扣因子 γ\gamma 使得未来的奖励在当前看来价值有所衰减。
  • 强化学习的目标是最大化期望累积回报。

5. 价值函数 (Value Function)

价值函数用于评估一个状态或状态-动作对的好坏程度,即从该状态或状态-动作对开始,遵循特定策略所能获得的期望回报。

  • 状态价值函数 (State-value function) Vπ(s)V_\pi(s): 从状态 ss 开始,遵循策略 π\pi 的期望回报。 Vπ(s)≜Eπ[Gt∣St=s]V_\pi(s) \triangleq E_\pi[G_t | S_t=s]

  • 动作价值函数 (Action-value function) Qπ(s,a)Q_\pi(s,a): 在状态 ss 执行动作 aa后,继续遵循策略 π\pi 的期望回报。

    Qπ(s,a)≜Eπ[Gt∣St=s,At=a]Q_\pi(s,a) \triangleq E_\pi[G_t | S_t=s, A_t=a]

Vπ(s)V_\pi(s) 和 Qπ(s,a)Q_\pi(s,a) 之间的关系:

Vπ(s)=∑a∈Aπ(a∣s)Qπ(s,a)V_\pi(s) = \sum_{a \in A} \pi(a|s) Q_\pi(s,a)

Qπ(s,a)=∑s′∈SP(s′∣s,a)[R(s,a,s′)+γVπ(s′)]Q_\pi(s,a) = \sum_{s' \in S} P(s'|s,a) [R(s,a,s') + \gamma V_\pi(s')]

(PPT中的写法: Qπ(s,a)=Rsa+γ∑s′∈SPss′aVπ(s′)Q_\pi(s,a) = \mathcal{R}_s^a + \gamma \sum_{s' \in S} P_{ss'}^a V_\pi(s'),其中 Rsa\mathcal{R}_s^a 是期望立即奖励)

6. 最优价值函数 (Optimal Value Function)

最优价值函数是在所有可能的策略中能达到的最大期望回报。

  • 最优状态价值函数 V∗(s)V^*(s): V∗(s)=max⁡πVπ(s),∀s∈SV^*(s) = \max_{\pi} V_\pi(s), \forall s \in S
  • 最优动作价值函数 Q∗(s,a)Q^*(s,a): Q∗(s,a)=max⁡πQπ(s,a)Q^*(s,a) = \max_{\pi} Q_\pi(s,a)

最优策略 π∗(a∣s)\pi^*(a|s): 任何使得 Q∗(s,a)Q^*(s,a) 达到最大的动作都是最优动作。

π∗(a∣s)={1if a=arg⁡max⁡a′∈AQ∗(s,a′)0otherwise\pi^*(a|s) = \begin{cases} 1 & \text{if } a = \arg\max_{a' \in A} Q^*(s,a') \\ 0 & \text{otherwise} \end{cases} (对于确定性最优策略)

7. 贝尔曼方程 (Bellman Equations)

贝尔曼方程是价值函数必须满足的一组自洽性方程,它们将一个状态(或状态-动作对)的价值与其后继状态的价值联系起来。

描述了在给定策略 π\pi 下,价值函数与其后继价值函数之间的关系。

  • 状态价值函数 Vπ(s)V_\pi(s):

    Vπ(s)=Eπ[Rt+1+γVπ(St+1)∣St=s]V_\pi(s) = E_\pi[R_{t+1} + \gamma V_\pi(S_{t+1}) | S_t=s] Vπ(s)=∑a∈Aπ(a∣s)∑s′∈SP(s′∣s,a)[R(s,a,s′)+γVπ(s′)]V_\pi(s) = \sum_{a \in A} \pi(a|s) \sum_{s' \in S} P(s'|s,a) [R(s,a,s') + \gamma V_\pi(s')]

    (PPT中: Vπ(s)=∑a∈Aπ(a∣s)(Rsa+γ∑s′∈SPss′aVπ(s′))V_\pi(s) = \sum_{a \in A} \pi(a|s) (\mathcal{R}_s^a + \gamma \sum_{s' \in S} P_{ss'}^a V_\pi(s')))

  • 动作价值函数 Qπ(s,a)Q_\pi(s,a):

    Qπ(s,a)=Eπ[Rt+1+γQπ(St+1,At+1)∣St=s,At=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)=∑s′∈SP(s′∣s,a)[R(s,a,s′)+γ∑a′∈Aπ(a′∣s′)Qπ(s′,a′)]Q_\pi(s,a) = \sum_{s' \in S} P(s'|s,a) [R(s,a,s') + \gamma \sum_{a' \in A} \pi(a'|s') Q_\pi(s',a')]

    PPT中: Qπ(s,a)=Rsa+γ∑s′∈SPss′a∑a′∈Aπ(a′∣s′)Qπ(s′,a′)Q_\pi(s,a) = \mathcal{R}_s^a + \gamma \sum_{s' \in S} P_{ss'}^a \sum_{a' \in A} \pi(a'|s')Q_\pi(s',a')

    注意PPT中 Qπ(s,a)Q_\pi(s,a) 的贝尔曼方程有一页是 Qπ(s,a)=Rsa+γ∑s′∈SPss′aVπ(s′)Q_\pi(s,a) = \mathcal{R}_s^a + \gamma \sum_{s' \in S} P_{ss'}^a V_\pi(s'),另一页是展开形式

本节小结:强化学习基本概念
  • 强化学习基本要素: 智能体 (Agent), 环境 (Environment), 状态 (State), 动作 (Action), 奖励 (Reward)。
  • 马尔可夫决策过程 (MDP):
    • 五元组: ⟨S,A,P,R,γ⟩\langle S, A, P, R, \gamma \rangle。
    • 策略函数: 确定性 π(s)\pi(s) 或随机性 π(a∣s)\pi(a|s)。
    • 累计折扣回报: Gt=∑k=0∞γkRt+k+1G_t = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}。
    • 状态值函数: Vπ(s)=Eπ[Gt∣St=s]V_\pi(s) = E_\pi[G_t | S_t=s]。
    • 动作值函数: Qπ(s,a)=Eπ[Gt∣St=s,At=a]Q_\pi(s,a) = E_\pi[G_t | S_t=s, A_t=a]。
  • 贝尔曼方程:
    • 状态值函数 (VπV_\pi): Vπ(s)=∑aπ(a∣s)∑s′P(s′∣s,a)[R(s,a,s′)+γVπ(s′)]V_\pi(s) = \sum_a \pi(a|s) \sum_{s'} P(s'|s,a) [R(s,a,s') + \gamma V_\pi(s')]。
    • 动作值函数 (QπQ_\pi): Qπ(s,a)=∑s′P(s′∣s,a)[R(s,a,s′)+γ∑a′π(a′∣s′)Qπ(s′,a′)]Q_\pi(s,a) = \sum_{s'} P(s'|s,a) [R(s,a,s') + \gamma \sum_{a'} \pi(a'|s') Q_\pi(s',a')]。
    • 最优状态值函数 (V∗V^*): V∗(s)=max⁡a∑s′P(s′∣s,a)[R(s,a,s′)+γV∗(s′)]V^*(s) = \max_a \sum_{s'} P(s'|s,a) [R(s,a,s') + \gamma V^*(s')]。
    • 最优动作值函数 (Q∗Q^*): Q∗(s,a)=∑s′P(s′∣s,a)[R(s,a,s′)+γmax⁡a′Q∗(s′,a′)]Q^*(s,a) = \sum_{s'} P(s'|s,a) [R(s,a,s') + \gamma \max_{a'} Q^*(s',a')]。

二、表格型强化学习

当状态空间 SS 和动作空间 AA 都是有限的时,我们可以用表格(如Q表)来存储价值函数或策略。这类方法适用于状态和动作数量较少的场景。

Q表更新方法分类:

Q表通常初始化为全零或随机值,然后通过智能体与环境的交互不断更新。当Q表中的值收敛时,对应的策略即为最优策略。

  • 有环境模型的求解方法 (Model-based): 需要知道环境的状态转移函数 PP 和奖励函数 RR。
    • 常用算法:动态规划 (DP),包括策略迭代和值迭代。
  • 无环境模型的求解方法 (Model-free): 无需显式知道环境的 PP 和 RR。通过智能体与环境交互产生的样本数据来更新Q值。
    • 常用算法:蒙特卡洛方法 (MC),时序差分方法 (TD)。

1. 动态规划 (Dynamic Programming, DP)

动态规划是一类在已知环境模型(MDP的 PP 和 RR)的情况下,求解最优策略的方法。它利用价值函数的贝尔曼方程进行计算。

1.1 策略评估 (Policy Evaluation)

1.2 策略提升 (Policy Improvement)

1.3 策略迭代 (Policy Iteration)

1.4 值迭代 (Value Iteration)

动态规划算法总结
求解问题使用贝尔曼方程类型算法名称
预测 (求解价值函数)贝尔曼期望方程策略评估
控制 (求解最优策略)贝尔曼期望方程 + 贪心提升策略迭代
控制 (求解最优策略)贝尔曼最优方程值迭代

DP算法的迭代复杂度对于 NN 个状态和 MM 个动作的MDP,每次迭代通常是 O(MN2)O(MN^2) 或 O(M2N)O(M^2N) (取决于实现和 PP 的稀疏性)。

2. 蒙特卡洛方法 (Monte Carlo, MC)

蒙特卡洛方法是无模型的,它通过从环境中采样完整的经验轨迹 (episodes) 来学习价值函数和策略,不需要知道环境的动态特性 PP 和 RR。

2.1 蒙特卡洛策略评估

2.2 蒙特卡洛控制 (MC Control)

为了找到最优策略,MC方法同样采用广义策略迭代 (GPI) 的思想:交替进行策略评估和策略提升。

  • 策略评估: 使用MC方法估计当前策略 π\pi 的 Qπ(s,a)Q_\pi(s,a)。
  • 策略提升: 基于估计的 Qπ(s,a)Q_\pi(s,a),使用 ϵ\epsilon-贪心策略来改进 π\pi。

MC控制算法(首次访问,ϵ\epsilon-贪心):

  1. 初始化 Q(s,a)Q(s,a) 和 π(s)\pi(s) (例如,ϵ\epsilon-贪心于 QQ)。

  2. 对每个回合 (episode):

    a. 使用当前策略 π\pi 生成一个完整的轨迹:S0,A0,R1,S1,A1,R2,…,STS_0, A_0, R_1, S_1, A_1, R_2, \dots, S_T.

    b. 对于轨迹中的每个时间步 t=0,1,…,T−1t=0, 1, \dots, T-1:

    计算从该步开始的回报 Gt=∑k=0T−1−tγkRt+k+1G_t = \sum_{k=0}^{T-1-t} \gamma^k R_{t+k+1}。

    如果 (St,At)(S_t, A_t) 是首次出现在从时间0到 tt 的序列中:

    将 GtG_t 添加到 Returns(St,At)Returns(S_t, A_t) 列表中。

    更新 Q(St,At)=Average(Returns(St,At))Q(S_t, A_t) = \text{Average}(Returns(S_t, A_t))。

    更新策略 π(St)\pi(S_t) 使其对 Q(St,⋅)Q(S_t, \cdot) 是 ϵ\epsilon-贪心的。

MC方法的优缺点:

  • 优点:
    • 无模型,不需环境动态。
    • 可从实际或模拟经验中学习。
    • 适用于非马尔可夫环境(因为它不依赖于单步转移)。
    • 评估某个状态的价值与其他状态无关。
  • 缺点:
    • 只能用于有明确结束的回合制任务 (episodic tasks)。
    • 策略评估需要等到整个回合结束后才能进行,学习效率可能较低。
    • 如果采样回合数不足,容易收敛到次优策略。
    • 回报的方差可能较大。

3. 时序差分学习 (Temporal Difference, TD)

TD学习是强化学习中一种核心且新颖的思想,它结合了DP和MC方法的优点。TD方法像MC一样从经验中学习,无需环境模型;像DP一样,它也使用自举 (bootstrapping),即用当前估计的价值函数来更新自身。

TD vs. MC vs. DP:

  • DP: 需要完整模型,进行期望更新。
  • MC: 无需模型,使用完整样本回报进行更新,方差大,偏差小(对于VπV_\pi的估计)。
  • TD: 无需模型,使用单步实际奖励和估计的下一状态价值进行更新,方差小,有偏(因为依赖于V(St+1)V(S_{t+1})的估计)。

偏差 (Bias) 与方差 (Variance) 权衡:

  • MC: GtG_t 是 Vπ(St)V_\pi(S_t) 的无偏估计,但由于依赖于一个完整轨迹中的所有随机奖励和动作,其方差较大。
  • TD(0): TD目标 Rt+1+γV(St+1)R_{t+1} + \gamma V(S_{t+1}) 是 Vπ(St)V_\pi(S_t) 的有偏估计(因为 V(St+1)V(S_{t+1}) 本身是估计值),但由于只依赖于一个实际奖励 Rt+1R_{t+1} 和一个估计值 V(St+1)V(S_{t+1}),其方差通常比MC小。

3.1 n-步TD学习 (n-step TD Learning)

n-步TD是MC和TD(0)之间的一个折中。它向前看 nn 步的实际奖励,然后使用第 nn 步之后状态的估计价值。

  • n-步回报 Gt(n)G_t^{(n)}: Gt(n)=Rt+1+γRt+2+⋯+γn−1Rt+n+γnV(St+n)G_t^{(n)} = R_{t+1} + \gamma R_{t+2} + \dots + \gamma^{n-1} R_{t+n} + \gamma^n V(S_{t+n})
  • n-步TD更新: V(St)←V(St)+α[Gt(n)−V(St)]V(S_t) \leftarrow V(S_t) + \alpha [G_t^{(n)} - V(S_t)] 当 n=1n=1 时,是TD(0)。当 n→∞n \rightarrow \infty (或 nn 达到回合结束),则近似于MC。

3.2 TD(λ\lambda)

TD(λ\lambda) 结合了所有不同 nn 步回报的优点,通过对它们进行加权平均。

  • λ\lambda-回报 GtλG_t^\lambda: Gtλ=(1−λ)∑n=1∞λn−1Gt(n)G_t^\lambda = (1-\lambda) \sum_{n=1}^{\infty} \lambda^{n-1} G_t^{(n)} 其中 λ∈[0,1]\lambda \in [0,1]。当 λ=0\lambda=0 时,是TD(0)回报。当 λ=1\lambda=1 时,是MC回报。
  • 前向视角TD(λ\lambda)更新: V(St)←V(St)+α[Gtλ−V(St)]V(S_t) \leftarrow V(S_t) + \alpha [G_t^\lambda - V(S_t)] 前向视角在概念上简单,但计算上需要在回合结束后才能进行。实际中常用资格迹 (eligibility traces) 实现后向视角TD(λ\lambda),可以在线更新。

3.3 SARSA (State-Action-Reward-State-Action)

SARSA是一种同策略 (on-policy) TD控制算法。它学习动作价值函数 Q(s,a)Q(s,a)。

“同策略”意味着用于生成行为的策略与正在评估和改进的策略是同一个。

SARSA更新规则:

基于转移 (St,At,Rt+1,St+1,At+1)(S_t, A_t, R_{t+1}, S_{t+1}, A_{t+1}): Q(St,At)←Q(St,At)+α[Rt+1+γQ(St+1,At+1)−Q(St,At)]Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) - Q(S_t, A_t)]

智能体在状态 StS_t 选择动作 AtA_t,观察到奖励 Rt+1R_{t+1} 和下一状态 St+1S_{t+1},然后在 St+1S_{t+1} 根据当前策略选择动作 At+1A_{t+1},之后用 Q(St+1,At+1)Q(S_{t+1}, A_{t+1}) 来更新 Q(St,At)Q(S_t, A_t)。

SARSA算法流程 (ϵ\epsilon-贪心策略):

  1. 初始化 Q(s,a)Q(s,a) 对所有 s,as,a (例如,为0),ϵ>0\epsilon > 0。
  2. 对每个回合: a. 初始化 SS。 b. 使用 QQ 和 ϵ\epsilon-贪心策略从 SS 选择动作 AA。 c. 只要 SS 不是终止状态: i. 执行动作 AA,观察 R,S′R, S'。 ii. 使用 QQ 和 ϵ\epsilon-贪心策略从 S′S' 选择动作 A′A'。 iii. 更新 Q(S,A)←Q(S,A)+α[R+γQ(S′,A′)−Q(S,A)]Q(S,A) \leftarrow Q(S,A) + \alpha [R + \gamma Q(S',A') - Q(S,A)]。 iv. S←S′S \leftarrow S', A←A′A \leftarrow A'。

3.4 Q-Learning

Q-Learning是一种异策略 (off-policy) TD控制算法。它也学习动作价值函数 Q(s,a)Q(s,a)。

“异策略”意味着用于生成行为的策略(行为策略)可以不同于正在评估和改进的策略(目标策略)。Q-Learning的目标策略是贪心策略,而其行为策略通常是 ϵ\epsilon-贪心策略以保证探索。

Q-Learning更新规则:

基于转移 (St,At,Rt+1,St+1)(S_t, A_t, R_{t+1}, S_{t+1}): Q(St,At)←Q(St,At)+α[Rt+1+γmax⁡a′Q(St+1,a′)−Q(St,At)]Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [R_{t+1} + \gamma \max_{a'} Q(S_{t+1}, a') - Q(S_t, A_t)]

注意,更新中使用的 max⁡a′Q(St+1,a′)\max_{a'} Q(S_{t+1}, a') 是基于目标策略(贪心策略)在下一状态 St+1S_{t+1} 所能获得的最好价值,而实际在 St+1S_{t+1} 采取的动作(由行为策略决定)并不直接用于这个更新目标。

Q-Learning算法流程 (ϵ\epsilon-贪心行为策略):

  1. 初始化 Q(s,a)Q(s,a) 对所有 s,as,a (例如,为0),ϵ>0\epsilon > 0。
  2. 对每个回合: a. 初始化 SS。 b. 只要 SS 不是终止状态: i. 使用 QQ 和 ϵ\epsilon-贪心策略从 SS 选择动作 AA (行为策略)。 ii. 执行动作 AA,观察 R,S′R, S'。 iii. 更新 Q(S,A)←Q(S,A)+α[R+γmax⁡a′Q(S′,a′)−Q(S,A)]Q(S,A) \leftarrow Q(S,A) + \alpha [R + \gamma \max_{a'} Q(S',a') - Q(S,A)] (目标策略是贪心)。 iv. S←S′S \leftarrow S'。
表格型强化学习算法小结
  • 动态规划 (DP):
    • 基于模型,使用期望更新。
    • 策略评估:计算给定策略的价值函数。
    • 策略提升:根据价值函数改进策略。
    • 策略迭代/值迭代:找到最优策略和价值函数。
  • 蒙特卡洛方法 (MC):
    • 无模型,使用完整回合的样本回报更新。
    • 首次访问/每次访问MC。
    • 高方差,零偏差(对于VπV_\pi)。
  • 时序差分学习 (TD):
    • 无模型,使用单步或多步的实际奖励和后续状态的估计价值(自举)更新。
    • TD(0), n-step TD, TD(λ\lambda)。
    • SARSA (同策略),Q-Learning (异策略)。
    • 通常比MC方差小,但有偏。

三、深度强化学习 (Deep Reinforcement Learning, DRL)

表格型强化学习方法在状态和动作空间较小的问题上表现良好。然而,当状态或动作空间非常大,甚至是连续的时候(例如,从图像输入学习,或控制机器人手臂),表格方法面临“维度灾难”,无法存储和有效学习Q表或策略表。

深度强化学习 (DRL) 的出现: DRL将深度学习(特别是深度神经网络DNN)与强化学习相结合。DNN作为函数逼近器,可以用来表示:

  • 价值函数 (例如, Q(s,a;θ)Q(s,a;\theta))
  • 策略函数 (例如, π(a∣s;θ)\pi(a|s;\theta))
  • 甚至环境模型

这使得RL能够处理高维输入(如图像、文本)和复杂的、大规模的状态/动作空间。

1. 基于值函数的DRL (Value-Based DRL)

这类算法的核心是学习一个动作价值函数 Q(s,a;θ)Q(s,a;\theta)(Q网络),然后通过最大化Q值来得到策略。

1.1 Naïve DQN (Deep Q-Network)

最直接的想法是将Q-Learning中的Q表替换为一个神经网络 Q(s,a;θ)Q(s,a;\theta)。

损失函数: 最小化均方贝尔曼误差 (MSBE):

L(θ)=E(s,a,r,s′)∼D[(y−Q(s,a;θ))2]L(\theta) = E_{(s,a,r,s') \sim \mathcal{D}} \left[ (y - Q(s,a;\theta))^2 \right] 其中,TD目标 y=r+γmax⁡a′Q(s′,a′;θ)y = r + \gamma \max_{a'} Q(s',a';\theta)。 梯度更新:θ←θ−α∇θL(θ)\theta \leftarrow \theta - \alpha \nabla_\theta L(\theta)。

在线Naïve DQN存在的问题:

  1. 样本相关性: 连续的样本 (st,at,rt+1,st+1)(s_t, a_t, r_{t+1}, s_{t+1}) 和 (st+1,at+1,rt+2,st+2)(s_{t+1}, a_{t+1}, r_{t+2}, s_{t+2}) 高度相关,违反了许多监督学习算法的独立同分布 (i.i.d) 假设,导致训练不稳定。
  2. 目标非平稳性: 在计算TD目标 yy 时, Q(s′,a′;θ)Q(s',a';\theta) 自身也在随着 θ\theta 的更新而改变。这意味着我们追逐一个移动的目标,可能导致训练震荡或发散。这被称为半梯度 (semi-gradient) 问题,因为目标 yy 依赖于参数 θ\theta,但在计算梯度时我们通常忽略这一点。

1.2 经典DQN (Mnih et al., 2013, 2015)

为了解决Naïve DQN的问题,经典DQN引入了两个关键技术:

经典DQN的损失函数:

L(θ)=E(s,a,r,s′)∼U(B)[(r+γmax⁡a′Q(s′,a′;θ−)−Q(s,a;θ))2]L(\theta) = E_{(s,a,r,s') \sim U(\mathcal{B})} \left[ (r + \gamma \max_{a'} Q(s',a';\theta^-) - Q(s,a;\theta))^2 \right]

1.3 DQN的改进

2. 基于策略的DRL (Policy-Based DRL)

这类算法直接参数化策略 π(a∣s;θ)\pi(a|s;\theta),并通过优化某个性能指标 J(θ)J(\theta) (通常是期望累积回报) 来学习策略参数 θ\theta。

2.1 REINFORCE (Monte Carlo Policy Gradient)

REINFORCE是最早也是最简单的策略梯度算法之一。它使用蒙特卡洛方法估计 Qπθ(St,At)Q^{\pi_\theta}(S_t,A_t),即使用整个回合的实际回报 GtG_t。

更新规则:

θ←θ+α∇θlog⁡πθ(At∣St)Gt\theta \leftarrow \theta + \alpha \nabla_\theta \log \pi_\theta(A_t|S_t) G_t (通常在一个回合结束后,对该回合内所有步的梯度进行累加或平均)

REINFORCE算法流程:

  1. 初始化策略参数 θ\theta。
  2. 重复: a. 使用当前策略 πθ\pi_\theta 生成一个完整的经验轨迹:S0,A0,R1,…,ST−1,AT−1,RTS_0, A_0, R_1, \dots, S_{T-1}, A_{T-1}, R_T。 b. 对于轨迹中的每个时间步 t=0,…,T−1t=0, \dots, T-1: i. 计算从该步开始的回报 Gt=∑k=tT−1γk−tRk+1G_t = \sum_{k=t}^{T-1} \gamma^{k-t} R_{k+1}。 ii. 更新参数:θ←θ+αγt∇θlog⁡πθ(At∣St)Gt\theta \leftarrow \theta + \alpha \gamma^t \nabla_\theta \log \pi_\theta(A_t|S_t) G_t (有时 γt\gamma^t 因子被省略或学习率吸收)。

REINFORCE的缺点:

  • 高方差: GtG_t 作为 Qπθ(St,At)Q^{\pi_\theta}(S_t,A_t) 的估计,其方差非常大,导致学习过程缓慢且不稳定。
  • 同策略: 必须使用当前策略采样,数据利用率低。

3. 基于演员-评论家 (Actor-Critic, AC) 的DRL

Actor-Critic方法结合了基于值函数和基于策略方法的优点。它维护两个网络:

  • 演员 (Actor): 策略网络 π(a∣s;θπ)\pi(a|s;\theta_\pi),负责选择动作。
  • 评论家 (Critic): 价值网络 V(s;θv)V(s;\theta_v) 或 Q(s,a;θq)Q(s,a;\theta_q),负责评估演员选择的动作的好坏。

基本思想:

  1. 演员 根据当前策略 πθ\pi_\theta 选择动作 AtA_t。

  2. 评论家 评估这个动作,例如计算TD误差:δt=Rt+1+γV(St+1;θv)−V(St;θv)\delta_t = R_{t+1} + \gamma V(S_{t+1};\theta_v) - V(S_t;\theta_v) (如果评论家是 VV 网络)。

  3. 演员 根据评论家的评估(如TD误差)更新其策略参数 θπ\theta_\pi:

    θπ←θπ+απ∇θπlog⁡π(At∣St;θπ)δt\theta_\pi \leftarrow \theta_\pi + \alpha_\pi \nabla_{\theta_\pi} \log \pi(A_t|S_t;\theta_\pi) \delta_t

  4. 评论家 也根据TD学习规则更新其价值参数 θv\theta_v: θv←θv+αvδt∇θvV(St;θv)\theta_v \leftarrow \theta_v + \alpha_v \delta_t \nabla_{\theta_v} V(S_t;\theta_v)

3.1 优势演员-评论家 (Advantage Actor-Critic, A2C)

A2C是一种常用的AC变体,其中评论家学习状态价值函数 V(s)V(s),并使用优势函数 A(s,a)=Q(s,a)−V(s)A(s,a) = Q(s,a) - V(s) 来指导演员的学习。

优势函数可以用TD误差来估计: A(St,At)≈Rt+1+γV(St+1)−V(St)A(S_t, A_t) \approx R_{t+1} + \gamma V(S_{t+1}) - V(S_t)。

  • 演员更新 (策略梯度): ∇θπJ(θπ)≈∇θπlog⁡π(At∣St;θπ)[Rt+1+γV(St+1;θv)−V(St;θv)]\nabla_{\theta_\pi} J(\theta_\pi) \approx \nabla_{\theta_\pi} \log \pi(A_t|S_t;\theta_\pi) [R_{t+1} + \gamma V(S_{t+1};\theta_v) - V(S_t;\theta_v)]
  • 评论家更新 (最小化 VV 的预测误差): L(θv)=(Rt+1+γV(St+1;θv)−V(St;θv))2L(\theta_v) = (R_{t+1} + \gamma V(S_{t+1};\theta_v) - V(S_t;\theta_v))^2

A3C (Asynchronous Advantage Actor-Critic):

A3C是A2C的一个重要变种,它使用多个并行的actor-learner在环境的不同副本中异步地收集经验和更新全局参数。这有助于打破样本相关性并加速学习。

AC算法的神经网络架构:

  • 方案一: 两个独立的神经网络分别拟合Actor (策略) 和 Critic (价值)。
    • 优点:简单,训练可能更稳定。
    • 缺点:训练效率可能较低。
  • 方案二: Actor和Critic共享前面几层的特征提取网络,最后有各自的输出层。
    • 优点:参数量少,训练效率可能更高。
    • 缺点:策略和价值可能需要不同的特征,共享可能导致冲突,训练稳定性可能稍差。
深度强化学习小结
  • 基于值的DRL:
    • DQN: 核心思想是使用神经网络逼近Q函数。
    • 关键技术: 经验回放、目标网络。
    • 改进: Double DQN (减少过高估计), Dueling DQN (分解V和A), Prioritized Experience Replay (优先处理重要样本), Rainbow DQN (集大成者)。
  • 基于策略的DRL:
    • REINFORCE: 蒙特卡洛策略梯度,方差大。
    • 基线: 引入基线 (如状态价值函数) 减小方差。
  • 基于Actor-Critic的DRL:
    • Actor (策略网络) + Critic (价值网络)。
    • A2C/A3C: 使用优势函数指导策略学习。
    • 结合了值方法和策略方法的优点,通常具有较好的稳定性和样本效率。

四、多智能体强化学习 (Multi-Agent Reinforcement Learning, MARL)

当环境中存在多个智能体同时学习和交互时,问题就从单智能体强化学习 (SARL) 扩展到了多智能体强化学习 (MARL)。

SARL vs. MARL:

  • SARL:
    • 单个智能体与环境交互。
    • 环境状态转移和奖励主要由环境本身决定。
    • 智能体决策相对独立。
    • 环境通常被视为“静态”的(从智能体学习的角度)。
  • MARL:
    • 多个智能体同时与环境(以及彼此)交互。
    • 一个智能体的动作不仅影响环境,也可能影响其他智能体的状态、观察和奖励。
    • 智能体的决策是相互依赖的。
    • 环境是“非平稳”的:当一个智能体改变其策略时,对于其他智能体来说,环境的动态特性也随之改变。
    • 每个智能体可能有自己的奖励函数,或者共享团队奖励。

MARL面临的困境:

  • 环境的非平稳性 (Non-stationarity): 其他智能体的策略变化使得当前智能体感知的环境动态不稳定。
  • 部分可观测性 (Partial Observability): 智能体通常只能观察到环境的局部信息。
  • 维度灾难 (Curse of Dimensionality): 联合状态空间和联合动作空间随智能体数量指数增长。
  • 策略协同与通信 (Strategy Coordination and Communication): 在合作任务中,智能体需要协同策略,有时需要显式通信。
  • 博弈与对抗 (Game Theory and Adversarial Behavior): 在竞争性环境中,智能体行为可能是对抗性的。
  • 信任分配 (Credit Assignment): 在团队奖励下,难以判断个体智能体的贡献。

MARL算法分类思路:

  • 独立学习 (Independent Learners, IL): 每个智能体独立使用SARL算法学习,将其他智能体视为环境的一部分。例如,IQL (Independent Q-Learning)。
  • 通信机制 (Communication): 允许智能体之间传递信息以辅助决策。
  • 协同学习 (Coordination): 设计机制使智能体能够协同行动,即使只有局部观察。
  • 智能体建模 (Agent Modeling): 智能体尝试推理或学习其他智能体的策略或目标。

MARL场景分类:

  • 合作型场景 (Cooperative): 所有智能体共享一个团队目标,最大化共同奖励。
  • 竞争性场景 (Competitive): 智能体目标冲突,通常是零和博弈(一个赢则另一个输)。
  • 混合场景 (Mixed/General-sum): 智能体之间既有合作也有竞争。

1. 基于策略的MARL —— MADDPG

MADDPG (Multi-Agent Deep Deterministic Policy Gradient) 是一种适用于混合合作竞争场景的算法,它采用了中心化训练,分布式执行 (Centralized Training with Decentralized Execution, CTDE) 的框架。

  • 中心化训练: 在训练阶段,每个智能体的评论家 (Critic) 可以访问所有智能体的全局状态和动作信息,从而更好地评估当前联合动作的价值,缓解非平稳性问题。
  • 分布式执行: 在执行阶段,每个智能体的演员 (Actor) 仅根据自己的局部观察来选择动作。 每个智能体 ii 学习一个确定性策略 μi(oi;θi)\mu_i(o_i;\theta_i) 和一个中心化的Q函数 Qi(x,a1,…,aN;ϕi)Q_i(x, a_1, \dots, a_N;\phi_i),其中 xx 是全局状态,aja_j 是智能体 jj 的动作。

2. 基于值函数的MARL —— VDN

VDN (Value Decomposition Networks) 是一种适用于合作型MARL的算法,旨在解决信任分配问题。

  • 核心思想: 将团队的联合Q值函数 QtotQ_{tot} 分解为每个智能体局部Q值函数 QiQ_i 的和: Qtot(τ,u)=∑i=1NQi(τi,ui)Q_{tot}(\mathbf{\tau}, \mathbf{u}) = \sum_{i=1}^N Q_i(\tau_i, u_i) 其中 τ\mathbf{\tau} 是联合观察,u\mathbf{u} 是联合动作,τi,ui\tau_i, u_i 是智能体 ii 的局部观察和动作。
  • 优点:
    • 简化了联合Q函数的学习。
    • 通过加性分解,隐式地将团队奖励分配给各个智能体。
    • 也遵循CTDE框架:训练时使用 QtotQ_{tot},执行时每个智能体根据自己的 QiQ_i 贪心选择动作。
  • Mixing Network: VDN使用一个简单的求和作为混合网络。后续的QMIX等算法使用了更复杂的非线性混合网络,同时保证了IGM (Individual-Global-Max) 原则,即全局最优动作可以通过每个智能体的局部最优动作得到。
多智能体强化学习小结
  • MARL定义: 多个智能体在共享环境中交互学习。
  • MARL困境: 非平稳性、部分可观测性、维度灾难、协同/通信、信任分配等。
  • MARL算法分类: 独立学习、通信、协同、智能体建模。
  • MARL场景: 合作、竞争、混合。
  • 代表性算法:
    • MADDPG (基于策略,CTDE,适用于混合场景)。
    • VDN (基于值函数,值分解,CTDE,适用于合作场景)。

课后作业

答案(仅供参考)

(1)

Q(3,left)=R(s,a,s′)+γmax⁡a′Q(s′,a′)=6.2Q(3, left) = \mathcal R(s, a,s') + \gamma\max_{a'}Q(s',a') = 6.2

(2)

Q(s,a)←Q(s,a)+α[r+γ⋅max⁡a′Q(s′,a′)−Q(s,a)]Q(s, a) \leftarrow Q(s, a) + \alpha \left[ r + \gamma \cdot \max_{a'} Q(s', a') - Q(s, a) \right]

代入计算可得:

Q(1,right)=3.48Q(1, \text{right}) = 3.48

Q(2,up)=5.88Q(2, \text{up}) = 5.88

Q(5,right)=8.4Q(5, \text{right}) = 8.4