决策/规划问题-单车决策
此处提供了一个针对“决策/规划问题-单车决策”的上手示例,示例采用经典强化学习算法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 网络的参数 𝜃 复制到目标网络的参数 𝜃′。
- 重复:
- 重复上述步骤,直到达到最大训练步数或其他终止条件。