Q学习(Q-Learning)算法的原理与价值迭代过程
字数 1010 2025-11-08 10:02:38
Q学习(Q-Learning)算法的原理与价值迭代过程
题目描述
Q学习是一种经典的免模型强化学习算法,用于解决马尔可夫决策过程(MDP)问题。其核心目标是学习一个动作价值函数Q(s, a),表示在状态s下执行动作a后,遵循当前策略所能获得的累积期望奖励。Q学习通过与环境交互逐步优化Q函数,最终得到最优策略,而无需已知环境的动态特性(如状态转移概率)。
解题过程
- 问题建模
- 将问题抽象为MDP:定义状态空间S、动作空间A、即时奖励函数R(s, a)和折扣因子γ(通常取0.9~0.99)。
- 目标:学习最优Q函数Q*(s, a),满足贝尔曼最优方程:
\[ Q^*(s, a) = \mathbb{E}\left[ R(s, a) + \gamma \max_{a'} Q^*(s', a') \right] \]
其中s'为执行动作a后的新状态。
-
算法初始化
- 初始化Q表:构建一个|S|×|A|的表格,所有Q(s, a)值初始化为0或随机小数。
- 设置超参数:学习率α(如0.1)、探索率ε(如0.1)、训练回合数。
-
时序差分更新
- 从初始状态开始,在每一步交互中:
- 动作选择:以ε概率随机选择动作(探索),否则选择当前Q表中最优动作(利用)。
- 执行动作:在状态s执行动作a,观测奖励r和新状态s'。
- Q值更新:根据时序差分误差调整Q值:
- 从初始状态开始,在每一步交互中:
\[ Q(s, a) \leftarrow Q(s, a) + \alpha \left[ r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right] \]
其中$r + \gamma \max_{a'} Q(s', a')$为TD目标,表示当前估计的累积奖励;差值(TD误差)用于修正Q值的偏差。
- 策略优化与收敛
- 通过大量训练,Q表逐渐逼近真实Q*函数。
- 最终策略直接取每个状态下使Q值最大的动作:\(\pi^*(s) = \arg\max_a Q(s, a)\)。
- 收敛性保障:在满足所有状态-动作对无限次访问的条件下,Q学习能以概率1收敛到最优解。
关键点说明
- 免模型特性:算法仅需与环境交互获取(s, a, r, s')样本,无需已知状态转移概率。
- 探索-利用权衡:ε-贪婪策略平衡对新动作的探索与当前最优动作的利用。
- 离线学习:即使动作选择策略不是最优,Q学习仍能学习最优价值(异策略学习)。