一、深度Q网络(Deep Q-Network,DQN)介绍
1、背景与动机
深度Q网络(DQN)是深度强化学习领域的里程碑算法,由DeepMind于2013年提出。它首次在 Atari 2600 游戏上实现了超越人类的表现,解决了传统Q学习在高维状态空间中的应用难题。DQN在机器人路径规划领域展现出巨大潜力,能够帮助机器人在复杂环境中找到最优路径。
传统Q学习在状态空间维度较高时面临以下挑战:
- Q表无法存储高维状态的所有可能情况
- 特征提取需要手动设计,泛化能力差
- 更新过程容易导致Q值估计不稳定
DQN通过引入深度神经网络作为Q函数的近似器,并采用经验回放和目标网络等技术,有效解决了上述问题。
2、核心思想
DQN的核心思想是使用深度神经网络来近似Q函数,即:
Q
∗
(
s
,
a
)
≈
Q
(
s
,
a
;
θ
)
Q^*(s, a) \approx Q(s, a; \theta)
Q∗(s,a)≈Q(s,a;θ)
其中,
s
s
s 表示状态,
a
a
a 表示动作,
θ
\theta
θ 表示神经网络的参数。
目标是找到一组参数 θ ∗ \theta^* θ∗,使得网络输出的Q值与实际的Q值尽可能接近。通过不断与环境交互收集数据,使用梯度下降法优化网络参数。
3、算法流程
DQN的算法流程可以概括为以下步骤:
-
初始化:
- 初始化Q网络参数 θ \theta θ
- 初始化目标网络参数 θ − \theta^- θ− 并与Q网络参数同步
- 初始化经验回放缓冲区 D D D
-
与环境交互:
- 在当前状态 s s s 下,根据 ϵ \epsilon ϵ-贪婪策略选择动作 a a a
- 执行动作 a a a,观察奖励 r r r 和下一个状态 s ′ s' s′
- 将经验 ( s , a , r , s ′ ) (s, a, r, s') (s,a,r,s′) 存入经验回放缓冲区 D D D
-
采样与更新:
- 从经验回放中随机采样一批数据 { ( s i , a i , r i , s i ′ ) } \{(s_i, a_i, r_i, s_i')\} {(si,ai,ri,si′)}
- 计算目标Q值:
y i = { r i if s i ′ is terminal r i + γ max a ′ Q ( s i ′ , a ′ ; θ − ) otherwise y_i = \begin{cases} r_i & \text{if } s_i' \text{ is terminal} \\ r_i + \gamma \max_{a'} Q(s_i', a'; \theta^-) & \text{otherwise} \end{cases} yi={riri+γmaxa′Q(si′,a′;θ−)if si′ is terminalotherwise
其中, γ \gamma γ 是折扣因子( 0 ≤ γ ≤ 1 0 \leq \gamma \leq 1 0≤γ≤1) - 计算当前Q值: Q ( s i , a i ; θ ) Q(s_i, a_i; \theta) Q(si,ai;θ)
- 计算损失函数:
L ( θ ) = 1 N ∑ i = 1 N ( y i − Q ( s i , a i ; θ ) ) 2 L(\theta) = \frac{1}{N} \sum_{i=1}^{N} (y_i - Q(s_i, a_i; \theta))^2 L(θ)=N1i=1∑N(yi−Q(si,ai;θ))2 - 使用梯度下降法更新Q网络参数 θ \theta θ
-
同步目标网络:
- 每隔一定步数(如C步),将Q网络参数 θ \theta θ 同步到目标网络 θ − \theta^- θ−
-
重复:
- 重复上述过程直到收敛
4、关键技术
1. 经验回放(Experience Replay)
经验回放通过存储代理与环境交互的经验,并随机采样小批量数据进行更新,解决了以下问题:
- 数据相关性:传统Q学习使用相关数据更新,容易导致估计偏差
- 数据利用效率:每个经验只使用一次,数据利用率低
经验回放的数学表达为:
D
=
{
e
1
,
e
2
,
…
,
e
N
}
,
e
i
=
(
s
i
,
a
i
,
r
i
,
s
i
′
)
D = \{e_1, e_2, \dots, e_N\}, \quad e_i = (s_i, a_i, r_i, s_i')
D={e1,e2,…,eN},ei=(si,ai,ri,si′)
每次更新时,从
D
D
D 中随机采样小批量数据
B
⊆
D
B \subseteq D
B⊆D。
2. 目标网络(Target Network)
目标网络通过维持一个固定的网络来计算目标Q值,避免了Q值估计的不稳定。目标网络的参数
θ
−
\theta^-
θ− 每隔一定步数与Q网络参数
θ
\theta
θ 同步:
θ
−
←
θ
every C steps
\theta^- \leftarrow \theta \quad \text{every C steps}
θ−←θevery C steps
3. ϵ \epsilon ϵ-贪婪策略
ϵ
\epsilon
ϵ-贪婪策略在探索与利用之间取得平衡:
a
=
{
random action
with probability
ϵ
arg
max
a
Q
(
s
,
a
;
θ
)
with probability
1
−
ϵ
a = \begin{cases} \text{random action} & \text{with probability } \epsilon \\ \arg\max_a Q(s, a; \theta) & \text{with probability } 1-\epsilon \end{cases}
a={random actionargmaxaQ(s,a;θ)with probability ϵwith probability 1−ϵ
其中,
ϵ
\epsilon
ϵ 随时间逐渐衰减,从初始值(如1.0)逐渐降低到较小值(如0.1)。
5、数学推导
1. Q学习更新公式
Q学习的目标是找到最优策略下的Q值:
Q
∗
(
s
,
a
)
=
E
r
[
r
+
γ
max
a
′
Q
∗
(
s
′
,
a
′
)
]
Q^*(s, a) = \mathbb{E}_r[r + \gamma \max_{a'} Q^*(s', a')]
Q∗(s,a)=Er[r+γa′maxQ∗(s