强化学习(Reinforcement Learning, RL)详解
什么是强化学习?
强化学习(Reinforcement Learning, RL) 是一种机器学习方法,其中智能体(Agent)通过与环境(Environment)交互,学习如何采取行动以最大化某种累积奖励。强化学习的核心思想是让智能体在试错(trial-and-error)过程中不断调整策略,最终学会最优策略。
强化学习特别适用于那些环境动态变化、模型未知、或者无法直接获取最优解的任务,如机器人控制、自动驾驶、游戏 AI、金融交易等。
与其他机器学习方法的对比:
- 监督学习(Supervised Learning):有标注数据,目标是最小化预测误差。
- 无监督学习(Unsupervised Learning):无标注数据,目标是发现数据的结构。
- 强化学习(Reinforcement Learning):通过 试错学习最优策略,目标是最大化长期奖励。
强化学习的基本组成部分
强化学习系统主要由以下 5 个核心部分组成:
1)环境(Environment)
环境是智能体与之交互的世界,它定义了状态空间、动作空间、奖励规则以及状态转移的动态。环境可以是物理世界(如机器人控制)、虚拟世界(如游戏)或数学模型(如金融市场)。
2)智能体(Agent)
智能体是执行动作的主体,它在环境中观察状态,并根据策略决定要采取的行动。智能体的目标是通过学习找到最优策略,以最大化长期回报。
3)状态(State, s)
状态是环境在某一时刻的描述,它可以是离散的(如网格世界中的位置)或连续的(如机器人关节角度)。智能体通过观察状态来做决策。
4)动作(Action, a)
动作是智能体可以执行的操作集合,例如在迷宫中移动(上、下、左、右)、调整温度、控制游戏角色等。
5)奖励(Reward, r)
奖励是环境提供的反馈信号,它指引智能体的学习方向。奖励可以是:
- 正奖励(+):鼓励某些行为,例如游戏胜利或机器人成功抓取物品。
- 负奖励(−):惩罚某些行为,例如撞墙、失败或能量消耗过多。
强化学习的关键概念
1)策略(Policy, π)
策略是智能体在每个状态下选择动作的规则,记作:a=π(s)
策略可以是:
- 确定性策略:在相同状态下总是执行相同的动作。
- 随机策略:在相同状态下以一定概率选择不同动作。
2)状态-价值函数(State-Value Function, V)
状态价值函数 V(s) 表示智能体从状态 s 开始,按照策略 π 采取行动后能获得的期望累积奖励:
3)状态-动作值函数(Q-Value, Q)
Q 值函数 Q(s,a) 表示智能体在状态 s 执行动作 a 后,按照策略 π 继续行动所能获得的期望累积奖励:
Q 值在 Q-learning 算法中非常重要,智能体通常通过学习 Q 值来优化策略。
4)贝尔曼方程(Bellman Equation)
贝尔曼方程描述了状态价值函数和 Q 值之间的递归关系:
贝尔曼方程是强化学习算法(如 Q-learning, SARSA)的核心基础。
强化学习的过程
强化学习的目的是训练策略函数,使其在各种状态下,都能做出正确的决策(动作),以简捷的达到最终的目标。 强化学习的学习方式,是智能体与环境不断交互进行学习。
交互过程参考下图:
其中, St 是 t 时刻的状态, at 是 t 时刻的动作, rt 是环境给予动作的奖励。
值函数
研究人员利用奖励累积的概念定义了值函数,用以描述一个状态或动作与最终目标的接近程度,或者说是对于达到最终目标的贡献的大小。
强化学习的主要算法分类
强化学习算法可以分为三大类:
1)基于值迭代的方法(Value-based Methods)
目标:学习状态值函数 V(s) 或 Q 值函数 Q(s,a),然后通过贪心策略选择最佳动作。
代表算法:
- Q-learning(最著名的强化学习算法)
- SARSA(基于策略的 Q-learning 变体)
- Deep Q-Network (DQN)(结合深度学习的 Q-learning)
2)基于策略的方法(Policy-based Methods)
目标:直接学习策略 π,不显式存储 Q 值。
代表算法:
- 策略梯度(Policy Gradient, PG)
- 深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)
- 近端策略优化(Proximal Policy Optimization, PPO)
- 优势演员-评论家(Advantage Actor-Critic, A2C/A3C)
3)基于模型的方法(Model-based Methods)
目标:学习环境的状态转移模型,然后进行规划,以减少试错次数。
代表算法:
- Dyna-Q(结合 Q-learning 和环境建模)
- AlphaGo(使用蒙特卡洛树搜索)
参考
1、知乎-强化学习及值函数入门
2、知乎-Q-Learning算法入门–强化学习