在上一篇文章中,我们了解了强化学习的基本概念:智能体(Agent)在环境中通过尝试不同的动作来获得奖励,并学会如何做出最优的决策。今天我们深入探讨强化学习中的一个重要分支——基于价值的强化学习(Value-Based Reinforcement Learning)。
什么是基于价值的强化学习
想象你是一个准备考研的学生,面临各种选择:看书、刷题、休息、娱乐等。每个选择都会带来不同的长远影响。基于价值的强化学习的核心思想就是:学会预测每个选择(“状态-动作”对)的长期价值,然后选择价值最高的动作。
具体来说,价值学习要解决两个关键问题:
- 状态价值函数 V(s):在某个状态下,未来能获得的总奖励期望是多少?
- 动作价值函数 Q(s,a):在某个状态下执行某个动作,未来能获得的总奖励期望是多少?
举个生活化的例子,假设你在玩一个简单的游戏:在一个5×5的网格世界中寻找宝藏。
状态:你当前的位置(比如坐标(2,3))
动作:上、下、左、右四个移动方向
奖励:找到宝藏+100分,每移动一步-1分,撞墙-5分
状态价值函数V(s)告诉我们:
- 如果你在离宝藏很近的位置,V(s)可能是+95(很快就能找到宝藏)
- 如果你在角落里,V(s)可能是+85(需要更多步数才能到达)
动作价值函数Q(s,a)告诉我们:
- 在位置(2,3)时,向右走的Q值可能是+95
- 在位置(2,3)时,向左走的Q值可能是+85
- 选择Q值最高的动作就是最优策略
基于价值的强化学习的最终目标很直接:找到能够获得最大累计奖励的策略。通过学习准确的价值函数,智能体就能够:
- 评估当前状态的好坏
- 比较不同动作的优劣
- 选择最有前景的动作
- 最终达到最优策略
Deep Q-Network (DQN)
传统Q-Learning的局限性
在深度强化学习出现之前,我们使用Q-Learning算法来学习动作价值函数。传统的Q-Learning使用一个表格来存储每个状态-动作对的Q值。
但是这种方法有一个致命问题:状态空间爆炸。
想象一下:
- 玩俄罗斯方块:屏幕上每个格子都有不同的状态,可能的状态数量是天文数字
- 玩围棋:19×19的棋盘有大约10^170种可能的状态
- 自动驾驶:道路状况、车辆位置、天气等组合起来的状态无穷无尽
用表格存储这些状态根本不现实!
DQN:用神经网络近似Q函数
DQN(Deep Q-Network)的核心创新就是:用深度神经网络来近似Q函数,而不是用表格存储。
DQN的基本架构如下:
输入状态 → 深度神经网络 → 输出每个动作的Q值
用公式表示就是:
目标Q值 = 当前奖励 + γ × max(下一状态的最大Q值)
实际Q值 = 神经网络当前的预测
误差 = 目标Q值 - 实际Q值
通过反向传播更新网络参数,减小误差
DQN的关键技术
经验回放(Experience Replay)
就像学习时需要复习一样,DQN会把过去的经历(状态、动作、奖励、新状态)存储起来,然后随机抽取一些来进行训练。
- 好处:避免了相邻经验过于相似导致的训练不稳定
- 类比:就像复习时不按顺序复习,而是随机复习各个知识点
目标网络(Target Network)
DQN使用两个相同结构的神经网络:
- 主网络:用于选择动作
- 目标网络:用于计算目标Q值,参数定期从主网络复制
- 好处:避免了"追着自己的尾巴跑"的问题,让训练更稳定
- 类比:就像考试时有一个标准答案,不会因为你的答案改变而改变