在了解了强化学习的 基本理论 后,就不难发现,在解决实际问题中,最重要的是要找到合适的 价值函数。 于是基于时序差分学习的思想,又有以下几个常用的价值函数:
Q-Learning
Q-Learning 在更新时,并不在意下一时刻实际会做什么动作,而是假设下一时刻一定会选择能带来 最大 值 的动作。
其中,代表质量(Quality),代表在当前状态下,选择动作的质量有多高。
算法步骤:
-
初始化:设置学习率 α、折扣因子 γ、探索率 ϵ,并初始化 Q(s,a) 表。
-
循环每一个回合(Episode):
-
使用策略(如 ϵ-greedy)根据当前的 Q 值表选择动作 a。
-
执行动作 a,观测回报 r 和转移后的新状态 s′。
-
更新 Q 值(直接取 s′ 状态下最大的 Q 值):。
-
更新状态:。
-
如果 s 是终止状态,则跳出该回合循环。
-
优点:通过异策略(Off-policy)下的最大化算子,具备卓越的 全局寻优能力 与样本重用率,理论上能收敛至确定性的最优决策方案。
缺点:在训练阶段对环境噪声较为敏感,容易产生 价值过估计(Overestimation) 现象,且由于无视探索风险,在复杂环境中的初期训练表现较差。
SARSA
SARSA 的名称来源于其决策序列:。它在更新当前状态的 Q 值时,使用的是下一时刻 实际采取 的动作。
算法步骤:
-
初始化:设置学习率 α、折扣因子 γ、探索率 ϵ,并初始化 Q(s,a) 表(通常设为 0 或随机值)。
-
循环每一个回合(Episode):
-
使用策略(如 ϵ-greedy)根据当前的 Q 值表选择动作 a。
-
执行动作 a,观测回报 r 和转移后的新状态 s′。
-
使用相同的策略(如 ϵ-greedy)在状态 s′ 下选择下一个动作 a′。
-
更新 Q 值:。
-
更新状态和动作:。
-
如果 s 是终止状态,则跳出该回合循环。
-
优点:采用同策略(On-policy)更新机制,能将探索过程中的 随机风险 纳入价值评估,具有较高的训练稳定性与在线学习安全性。
缺点:受限于对当前探索策略的依赖,其收敛结果通常为 次优策略,且无法直接利用历史数据或异构经验,样本效率较低。
Deep Q-Network(DQN)
DQN (Deep Q-Network) 的核心思想是将深度学习的强大特征提取能力与 Q-Learning 的决策能力结合。它通过神经网络来拟合价值函数 ,从而解决了传统方法无法处理高维状态空间(如原始图像像素)的问题。
算法步骤:
-
初始化:
-
初始化 经验回放池 ,用于存储历史经验 。
-
初始化 当前 Q 网络 ,赋予随机权重 。
-
初始化 目标 Q 网络 ,使其权重 (每隔一定步数更新一次)。
-
设置学习率、折扣因子、探索率。
-
-
循环每一个回合(Episode):
-
动作选择:使用 ϵ-greedy 策略。以 的概率随机选动作,以 的概率根据 当前 Q 网络 选择使 Q 值最大的动作 。
-
执行与存储:在环境中执行动作,观测回报和转移后的新状态 。将经验存入经验回放池 。
-
样本采样:从中随机抽取一个 小批量(Mini-batch) 的经验样本。
-
计算目标值:对于每个样本,计算目标 Q 值。若是终止状态,则;否则:
(注:此处使用 目标网络 来计算下一状态的最大价值) -
更新网络:计算与当前网络输出之间的均方误差(Loss),通过梯度下降更新。
-
同步网络:每隔步,将当前网络的参数同步给目标网络: 。
-
迭代:更新状态,直到回合结束。
-
优点:
-
处理高维状态:能够直接以图像、音频等原始感知数据作为输入,具备极强的泛化能力。
-
训练稳定性高:通过 经验回放 打破了训练数据之间的相关性,通过 目标网络 缓解了更新过程中的震荡和不稳定性。
例如,赛车正在过一个长左转弯,连续几秒钟看到的全是”左转”画面。如果没有经验回放池,AI 会产生严重的偏见,以为人生只有左转,甚至忘了怎么走直线,导致训练直接跑偏。同时,如果没有经验回放池,AI 在练习时,会根据当下的水平去给自己定目标。这就像赛车手一边开车,一边自己挪动路边的减速桩(目标):我进步一点,目标就动一点。这会导致 AI 陷入”追逐自己影子”的死循环,车头剧烈晃动(震荡),永远练不稳。 -
样本利用率高:属于离道策略(Off-policy),可以反复利用历史经验进行学习。
在 SARSA 中,一旦你掉进陷阱并学了一次,这个样本就被扔掉了。但在 DQN 中,那个”掉进陷阱”的样本会保存在经验池中。即使网络已经进化了很多,它依然可以反复抽取出这个样本进行”复习”,确保自己永远记住那个教训。
缺点:
-
仅限离散动作:原生 DQN 无法直接处理连续动作空间(如控制赛车转弯的精确角度),同时,这也是Q-Learning和SARSA的缺点。
-
Q 值过估计:由于公式中使用了 操作,DQN 往往会倾向于高估某些动作的价值(该问题后来被 Double DQN 优化)。
-
超参数敏感:神经网络的架构、学习率以及目标网络的更新频率对最终收敛效果影响巨大。