Q-Learning 的详细讲解
Q-Learning 是一种经典的强化学习算法,用于解决离散状态和动作空间的强化学习问题。其目标是找到一个最优策略,使智能体能够在与环境的交互中最大化累积奖励。
核心思想
通过迭代更新动作值函数 ,使其收敛到最优值 
。最优值函数 
 满足 Bellman 最优方程:
这里:
- :当前状态 
- :当前动作 
- :下一状态 
- :即时奖励 
- :折扣因子 
智能体根据  构造策略 
,选择使 
 最大的动作。
算法步骤
- 
初始化: - 初始化 或随机值,表示每个状态-动作对的初始估计值。 
- 设置学习率 和折扣因子 。 
 
- 初始化 
- 
循环更新(直到收敛或达到最大迭代次数): - 
从环境中获取当前状态 。 
- 
使用 探索与利用策略 选择动作 : - 探索:随机选择动作(以一定概率 )。 
- 利用:选择使 最大的动作。 
 
- 探索:随机选择动作(以一定概率 
- 
执行动作 aaa,获得即时奖励 和下一状态 。 
- 
更新 : 
- 
将状态更新为 ,重复步骤 2。 
 
- 
- 
输出最终策略: 
公式解释
- 
学习率 :决定新信息对更新的影响程度,取值范围为 。 - :仅考虑最新经验,忽略历史信息。 
- :忽略最新经验,几乎不更新。 
 
- 
折扣因子 :衡量未来奖励的重要性,取值范围为 。 - :更加关注长期回报。 
- :只关心即时奖励。 
 
- 
更新规则 :利用新的经验 修正当前 ,使其逐渐逼近真实值。 
优缺点
优点
- 模型无关 :不需要知道环境的状态转移概率 。 
- 简单直观:易于理解和实现。
- 保证收敛 :在有限状态和动作空间下,适当设置 和 时, 会收敛到 。 
缺点
- 状态空间限制:难以扩展到连续或高维状态空间。
- 动作选择问题 :需要设计探索与利用的平衡机制(如 -贪婪策略)。 
- 数据效率低:每次更新只基于一个样本。
举例说明
假设一个 3x3 的网格世界,智能体可以选择四个动作:向上、向下、向左、向右。目标是从左上角移动到右下角,获得最大的累积奖励。
- 初始化 :设置所有 。 
- 运行算法 :智能体不断探索不同路径,基于即时奖励和折扣因子更新 。 
- 收敛 :最终 收敛,智能体学会最佳策略,如"向右、向下"到达目标。 
改进版本
1. SARSA(State-Action-Reward-State-Action)
- 
更新规则: 
- 
与 Q-Learning 的区别:SARSA 在更新时使用智能体实际选择的动作 ,而不是使用最大化的 。 
2. Deep Q-Learning (DQN)
- 使用神经网络逼近 ,解决高维状态空间问题。 
- 引入 经验回放 和 目标网络 提高稳定性。
应用场景
- 机器人路径规划:如迷宫求解、机器人避障。
- 游戏 AI:学习游戏中的最优策略。
- 推荐系统:优化用户推荐序列。
- 动态资源分配:如网络带宽、云计算资源分配。