强化学习

在许多如棋牌博弈、机器人控制等序列决策场景中,智能体(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+1St]=P[St+1S1,S2,,St]P[S_{t+1} | S_t] = P[S_{t+1} | S_1, S_2, \dots, S_t]

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

P{St+h=sSt=st,St1=st1,,S0=s0}=P{St+h=sSt=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(ss,a)=P{St+1=sSt=s,At=a}P(s'|s,a) = P\{S_{t+1}=s'|S_t=s, A_t=a\},表示在状态 ss 执行动作 aa 后,转移到状态 ss' 的概率。

  • 奖励函数 RR (Reward Function): R(s,a,s)R(s,a,s') 表示在状态 ss 执行动作 aa 转移到状态 ss' 后获得的即时奖励。PPT中表示为 Rt=R(St,At,St+1)R_t = R(S_t, A_t, S_{t+1})。有时也定义为 R(s,a)=E[Rt+1St=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) π(as)\pi(a|s) 输出在状态 ss 下选择动作 aa 的概率。满足 aAπ(as)=1\sum_{a \in A} \pi(a|s) = 1
  • 确定性策略 (Deterministic Policy) a=π(s)a = \pi(s) 输出在状态 ss 下选择的唯一确定动作。

策略的具体形式:

  • 表格策略 (Tabular Policy): 对于每一个状态 ss,直接存储采取动作 aa 的概率 π(as)\pi(a|s) 或确定的动作 π(s)\pi(s)
  • 参数化策略 (Parameterized Policy): 使用带有参数 θ\theta 的函数来表示策略,例如神经网络。
    • 确定性: a=πθ(s)π(s;θ)a = \pi_\theta(s) \triangleq \pi(s;\theta)
    • 随机性: πθ(as)π(as;θ)\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π[GtSt=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π[GtSt=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)=aAπ(as)Qπ(s,a)V_\pi(s) = \sum_{a \in A} \pi(a|s) Q_\pi(s,a)

Qπ(s,a)=sSP(ss,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+γsSPssaVπ(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),sSV^*(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)

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

π(as)={1if a=argmaxaAQ(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)=aAπ(as)sSP(ss,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)=aAπ(as)(Rsa+γsSPssaVπ(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)=sSP(ss,a)[R(s,a,s)+γaAπ(as)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+γsSPssaaAπ(as)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+γsSPssaVπ(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) 或随机性 π(as)\pi(a|s)
    • 累计折扣回报: Gt=k=0γkRt+k+1G_t = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}
    • 状态值函数: Vπ(s)=Eπ[GtSt=s]V_\pi(s) = E_\pi[G_t | S_t=s]
    • 动作值函数: Qπ(s,a)=Eπ[GtSt=s,At=a]Q_\pi(s,a) = E_\pi[G_t | S_t=s, A_t=a]
  • 贝尔曼方程:
    • 状态值函数 (VπV_\pi): Vπ(s)=aπ(as)sP(ss,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)=sP(ss,a)[R(s,a,s)+γaπ(as)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')]
    • 最优状态值函数 (VV^*): V(s)=maxasP(ss,a)[R(s,a,s)+γV(s)]V^*(s) = \max_a \sum_{s'} P(s'|s,a) [R(s,a,s') + \gamma V^*(s')]
    • 最优动作值函数 (QQ^*): Q(s,a)=sP(ss,a)[R(s,a,s)+γmaxaQ(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): 无需显式知道环境的 PPRR。通过智能体与环境交互产生的样本数据来更新Q值。
    • 常用算法:蒙特卡洛方法 (MC)时序差分方法 (TD)

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

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

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) 来学习价值函数和策略,不需要知道环境的动态特性 PPRR

2.1 蒙特卡洛策略评估

2.2 蒙特卡洛控制 (MC Control)

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

  • 策略评估: 使用MC方法估计当前策略 π\piQπ(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,,T1t=0, 1, \dots, T-1:

    计算从该步开始的回报 Gt=k=0T1tγ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_tVπ(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++γn1Rt+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)。当 nn \rightarrow \infty (或 nn 达到回合结束),则近似于MC。

3.2 TD(λ\lambda)

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

  • λ\lambda-回报 GtλG_t^\lambda Gtλ=(1λ)n=1λn1Gt(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,SR, S'。 ii. 使用 QQϵ\epsilon-贪心策略从 SS' 选择动作 AA'。 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. SSS \leftarrow S', AAA \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+γmaxaQ(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)]

注意,更新中使用的 maxaQ(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,SR, S'。 iii. 更新 Q(S,A)Q(S,A)+α[R+γmaxaQ(S,a)Q(S,A)]Q(S,A) \leftarrow Q(S,A) + \alpha [R + \gamma \max_{a'} Q(S',a') - Q(S,A)] (目标策略是贪心)。 iv. SSS \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))
  • 策略函数 (例如, π(as;θ)\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[(yQ(s,a;θ))2]L(\theta) = E_{(s,a,r,s') \sim \mathcal{D}} \left[ (y - Q(s,a;\theta))^2 \right] 其中,TD目标 y=r+γmaxaQ(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+γmaxaQ(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)

这类算法直接参数化策略 π(as;θ)\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πθ(AtSt)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,,ST1,AT1,RTS_0, A_0, R_1, \dots, S_{T-1}, A_{T-1}, R_T。 b. 对于轨迹中的每个时间步 t=0,,T1t=0, \dots, T-1: i. 计算从该步开始的回报 Gt=k=tT1γktRk+1G_t = \sum_{k=t}^{T-1} \gamma^{k-t} R_{k+1}。 ii. 更新参数:θθ+αγtθlogπθ(AtSt)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): 策略网络 π(as;θπ)\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π(AtSt;θπ)δ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π(AtSt;θπ)[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)+γmaxaQ(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+γmaxaQ(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