书接上回,《【强化学习】Q-learning训练AI走迷宫》
(去年的)本节讲述在相同的环境下,使用DQN来走迷宫。(假设我们已经了解相关基础。)
一. 概念重温
1.1 什么是DQN?
让我们从颗粒度上对齐一下:不良少年走迷宫 Deep Q Network

1.2 DQN比Q-learning好在哪儿?
在Q-learning中,我们使用一个Q值表(Q-table)来存储智能体在每个状态下采取不同动作的Q值。Q值表示在特定状态下采取某个动作的预期累积奖励。智能体通过不断地与环境交互和更新Q值表来学习最优策略。
但是在DQN中,我们使用一个神经网络来近似Q值函数,而不是直接存储Q值表。

可以这么理解:DQN的优势 == 神经网络的优势:
1. 状态表示
- Q-learning:状态必须是离散的,Q值表的大小与状态和动作的数量成正比,适用于小型和离散的状态空间。
- DQN:状态可以是高维和连续的,因为神经网络可以处理复杂的输入。通过神经网络的泛化能力,DQN可以在大型和连续的状态空间中工作。
这是否意味着,原本我们固定的10*10迷宫可以进一步扩展成1000*1000的随机迷宫呢?
2. 存储需求
- Q-learning:需要为每个状态-动作对存储一个Q值,因此在大状态空间中,存储需求会迅速增长。
- DQN:神经网络参数的数量与状态和动作空间无关,只与网络的结构有关,因此在大状态空间中更为高效。
3. 训练过程
- Q-learning:
- 更新Q值表是直接的,但