决策/规划问题-单车决策

此处提供了一个针对“决策/规划问题-单车决策”的上手示例,示例采用经典强化学习算法DQN进行训练,实现自动驾驶车载高速公路(highway)环境上的决策任务。项目已上传至:https://github.com/TOPSlearningcenter/Singleagent_decision

以下给出了模型介绍,点击右侧在线运行代码。

模型介绍

1. 模型概述:

DQN 基于 Q-learning算法进行改进,是一种值函数方法,用于估计状态-动作对(state-action pair)的期望未来奖励。Q-learning 使用 Q 值函数 Q(s,a) 来表示在状态 s 下执行动作 a 能获得的预期累积奖励。DQN 使用一个深度神经网络(Q 网络)来逼近 Q 值函数。神经网络的输入是状态 𝑠 ,输出是所有可能动作的 Q 值 𝑄(𝑠,𝑎;𝜃),其中 𝜃 是神经网络的参数。为了稳定训练过程,DQN 引入了两个关键技术:

(1)经验回放(Experience Replay):智能体在与环境交互的过程中,会生成大量的经验数据(状态、动作、奖励、下一个状态)。这些数据被存储在一个固定大小的回放缓冲区中。在训练过程中,DQN 会随机抽取一个小批量的经验进行训练。这种做法打破了经验之间的时间相关性,提高了训练的稳定性。

(2)目标网络(Target Network):DQN 维护两个神经网络:当前 Q 网络(用于选择动作和更新 Q 值)和目标 Q 网络(用于计算目标 Q 值)。目标 Q 网络的参数每隔一定步数从当前 Q 网络复制而来,避免了网络参数频繁更新带来的不稳定性。

2. 具体实现:

  • 初始化:
    • 初始化当前 Q 网络和目标 Q 网络,并随机初始化它们的参数。
    • 初始化经验回放缓冲区为空。
  • 与环境交互:
    • 在每个时间步 𝑡 ,智能体根据当前 Q 网络的输出和 ε-greedy 策略选择动作。即,以 ε 的概率选择一个随机动作(探索),以 1 − 𝜖 的概率选择当前 Q 网络输出的最大 Q 值对应的动作(利用)。
    • 执行动作 𝑎 ,获得奖励 𝑟 和下一个状态 𝑠′。
    • 将经验(𝑠, 𝑎, 𝑟, 𝑠′)存储到回放缓冲区。
  • 经验回放:
    • 从回放缓冲区中随机抽取一个小批量的经验(𝑠, 𝑎, 𝑟, 𝑠′) 进行训练。
    • 对于每个经验,计算目标 Q 值 𝑦
    • 其中,𝑄(𝑠′,𝑎′;𝜃′)是目标网络给出的 Q 值,𝜃′表示目标网络的参数。
  • 更新 Q 网络:
    • 使用梯度下降法最小化当前 Q 网络输出的 Q 值与目标 Q 值之间的均方误差(MSE)
    • 计算损失并更新当前 Q 网络的参数𝜃。
  • 更新目标网络:
    • 每隔一定步数,将当前 Q 网络的参数 𝜃 复制到目标网络的参数 𝜃′。
  • 重复:
    • 重复上述步骤,直到达到最大训练步数或其他终止条件。