强化学习三大分类

发布于:2025-06-18 ⋅ 阅读:(14) ⋅ 点赞:(0)

核心目标: 教会一个智能体(比如机器人、游戏AI、推荐系统)通过试错奖励,学会在某个环境中完成特定任务的最佳策略。

核心角色:

  1. 智能体 (Agent): 学习者,比如玩游戏的小人、控制温度的空调系统。
  2. 环境 (Environment): 智能体所处的世界,比如游戏关卡、房间、股票市场。
  3. 状态 (State): 环境在某个时刻的快照,比如游戏画面、房间的温度湿度、股票的价格成交量。
  4. 动作 (Action): 智能体能做的事情,比如上下左右移动、调高温度、买入卖出股票。
  5. 奖励 (Reward): 环境给智能体动作的即时反馈,比如吃到金币+1分、撞到墙-1分、房间达到舒适温度+0.1、亏钱-10。

目标: 智能体要找到一个策略 (Policy),这个策略告诉它在每个状态下该做什么动作,使得长期累积的奖励总和最大化。就像玩游戏要通关得分最高,投资要长期收益最大。

强化学习三大分类:

当你在教一只狗狗学新动作(比如坐下)。

基于值的方法 (Value-Based Methods) - “算盘派”

在这里插入图片描述

  • 核心思想: 不直接学“做什么动作”,而是学每个状态或者每个“状态-动作对”值多少钱(值)。值越高,说明这个状态(或在这个状态做这个动作)未来能拿到的总奖励越多。
    • 状态值函数 V(s): 在这个状态s下,按当前策略走下去,预期能拿到多少总奖励。比如在游戏某个位置,V值高说明这是个好位置。
    • 动作值函数 Q(s, a):状态s下,做了动作a,然后按当前策略走下去,预期能拿到多少总奖励。比如在游戏某个位置,Q(跳跃)值高说明这时跳起来很划算。
  • 怎么学?
    • 智能体不断尝试(探索),观察奖励和状态变化。
    • 用观察到的结果(实际奖励 + 下一个状态的价值估计)来更新当前状态/动作的价值估计。这个更新规则基于贝尔曼方程,本质是说“当前位置的价值 ≈ 当前奖励 + 打折后的下一个位置价值”。
  • 最终策略: 学好了Q值表,最优策略就很简单了:在状态s下,选Q值最大的那个动作a! (贪婪策略)。
  • 经典算法:
    • Q-Learning: 最基础也最重要!学Q表。特点是“离线学习”:更新Q值时,用“假设下一步选最优动作”的价值 (max Q),而不管自己实际下一步会做什么(可能探索时做了随机动作)。
    • SARSA: 也是学Q表。特点是“在线学习”:更新Q值时,用实际采取的下一步动作对应的Q值。更保守,跟着当前策略走。
    • DQN (Deep Q-Network): 革命性算法! 当状态太复杂(比如游戏画面像素)无法用表格存Q值时,用一个神经网络代替Q表!输入状态(如图像),输出每个动作的Q值。解决了高维状态问题。关键技巧:经验回放(记住过去的经验随机抽着学,打破相关性)、目标网络(稳定学习目标)。
    • DQN变种:
      • Double DQN: 解决DQN容易高估Q值的问题(觉得啥动作都值钱),让动作选择(用主网络)和价值评估(用目标网络)分开。
      • Dueling DQN: 把Q值拆成状态值V(s)(这位置好不好)和动作优势A(s,a)(在这个位置做这动作比平均水平好多少)。让网络更聚焦学状态的好坏。
  • 适合场景: 动作空间是离散的、有限的(比如游戏手柄的按键)。像下棋(动作有限)、经典游戏(上下左右开火)。
  • 优点: 相对稳定。
  • 缺点: 只能处理离散动作;找到最优策略依赖于价值函数估计得准不准。

基于策略的方法 (Policy-Based Methods) - “直觉派”

在这里插入图片描述

  • 核心思想: 绕开“值”,直接学习策略本身! 用一个函数(比如神经网络)表示策略,输入状态s,直接输出动作a(确定性策略)或者输出每个动作的概率(随机性策略)。
  • 怎么学?
    • 目标就是让策略函数输出的动作序列能最大化长期累积奖励的期望
    • 核心是策略梯度定理:它告诉你怎么调整策略函数的参数,才能让期望累积奖励增加。简单说就是:如果某个动作(或动作方向)带来了好结果(高奖励),就增加以后选这个动作(或类似动作)的概率;反之减少。
  • 经典算法:
    • REINFORCE: 最基础的策略梯度算法。跑完一整局游戏(一条完整轨迹),计算总奖励,然后根据这个总奖励来调整策略。缺点: 奖励波动大(方差高),学得慢。
    • Actor-Critic (演员-评论家): 结合了值和策略! 是主流方法。
      • Actor (演员): 负责执行策略,输出动作。
      • Critic (评论家): 负责评价状态或动作的价值(学一个值函数V(s)或Q(s,a))。
      • 怎么协作? Critic 给 Actor 反馈:在状态s下,Actor选择的动作a到底有多好?这个反馈通常用优势函数 A(s, a) = Q(s, a) - V(s) 表示(动作a比在s状态下的平均动作好多少)。Actor就用这个优势值来更新策略(增大带来正优势的动作概率,减小带来负优势的动作概率)。Critic则通过TD误差等方法来学习更准的价值估计。
      • A3C (Asynchronous Advantage Actor-Critic): 利用多线程异步更新,效率高。
    • PPO (Proximal Policy Optimization): 目前最流行最实用的策略优化算法之一! 核心思想:更新策略时,步子别迈太大,避免新策略一下子变得和旧策略差太多导致性能崩盘。通过一个“裁剪”机制限制更新的幅度。优点: 稳定、效果好、相对容易调参。
    • DDPG (Deep Deterministic Policy Gradient): 针对连续动作空间(比如方向盘转多少度、电机输出多少扭矩)设计的Actor-Critic算法。Actor输出一个确定的连续动作值(不是概率)。需要加一些噪声来探索。
    • SAC (Soft Actor-Critic): 也是处理连续动作的先进算法。特色是引入了最大熵目标,不仅追求高奖励,还鼓励策略有一定的随机性(熵高),这样探索更充分,更容易找到全局最优解,也更鲁棒。
  • 适合场景: 动作空间是连续的(机器人控制、自动驾驶)或者即使是离散但策略本身很复杂需要直接建模。也常与Actor-Critic结合处理各种场景。
  • 优点: 能直接处理连续动作;可以学习随机策略(有时随机探索很重要,比如石头剪刀布)。
  • 缺点: 训练可能不太稳定;样本效率有时相对较低(需要更多试错);容易陷入局部最优。

基于模型的方法 (Model-Based Methods) - “预言家派”

在这里插入图片描述

  • 核心思想: 智能体不光学怎么动,还要学环境是怎么运作的! 它试图建立一个环境模型,这个模型能预测:在状态s做动作a后,下一个状态s’会是什么?能拿到多少奖励r?
  • 怎么用?
    • 有了这个“世界模拟器”,智能体就可以在脑子里做计划(Planning)!不用每次都去真实环境里撞墙试错,可以在模型里模拟各种动作序列,看哪个序列预测的累积奖励最高,然后去执行第一个动作。执行完,用真实结果更新模型,再继续计划。大大减少真实交互次数!
  • 经典思路/算法:
    • 动态规划 (DP): 最理想情况,环境模型(状态转移和奖励函数)完全已知且精确。直接用数学方法(迭代贝尔曼方程)就能算出最优策略和最优价值。现实问题很少这么完美。
    • Dyna: 结合模型和无模型学习(如Q-Learning)。 智能体一边在真实环境交互学习(更新Q值),一边用这些交互数据学习环境模型。然后用学到的模型生成大量模拟数据,也用这些模拟数据来更新Q值。提高了样本效率。
    • MBPO (Model-Based Policy Optimization): 先用数据学环境模型,然后在学到的模型上跑基于策略的方法(如PPO) 来优化策略。模型会不断用新数据更新。
    • MPC (Model Predictive Control): 工业界常用! 每一步都做:
      1. 观察当前状态。
      2. 用模型预测未来有限几步内不同动作序列的结果。
      3. 选择预测累积奖励最高的动作序列。
      4. 只执行这个序列的第一个动作。
      5. 下一步重复1-4。边走边看,灵活调整。
  • 适合场景: 真实环境交互代价高昂、危险或缓慢(比如操控真实机器人、化学实验、金融交易);或者环境本身是可精确建模/仿真的(比如一些棋类游戏、物理仿真器)。
  • 优点: 样本效率极高(省试错次数);能进行前瞻性规划;在仿真中训练安全。
  • 缺点: 模型很难学得准! 模型预测有误差,基于错误模型学的策略在真实环境会失效(“基于幻觉做决策”);构建和利用模型本身有计算开销。

对比:

特点 基于值 (Value-Based) 基于策略 (Policy-Based) 基于模型 (Model-Based)
核心 (V/Q值) 直接学策略 (Policy) 环境模型 (预测 s’ 和 r)
输出策略 间接 (选值最大的动作) 直接 (输出动作或概率) 直接或间接 (在模型上规划)
动作空间 适合离散动作 离散和连续动作都行 离散和连续动作都行
稳定性 相对稳定 可能不稳定 (策略梯度) 依赖模型精度 (模型不准策略就崩)
样本效率 中等 通常较低 (尤其REINFORCE) 非常高 (能用模型模拟)
规划能力 无显式规划 无显式规划 有显式规划 (在模型里模拟未来)
经典算法 Q-Learning, SARSA, DQN及其变种 REINFORCE, Actor-Critic, PPO, DDPG, SAC Dyna, MBPO, MPC
比喻 算盘派 (精打细算每个位置/动作值不值钱) 直觉派 (凭感觉和经验直接出招) 预言家派 (先搞懂世界规则,再推演最优解)

简单选择指南:

  • 如果你的问题动作是离散的(按键选择),状态不太复杂,试试Q-Learning/DQN
  • 如果你的问题动作是连续的(控制机械臂、开车),或者需要随机策略,首选PPO、SAC这类策略梯度/Actor-Critic方法。
  • 如果你有精确的环境模型或者交互代价极高(真机器人、高风险),或者能在好的仿真器里训练,基于模型的方法 (MBPO, MPC) 是首选,效率极高。
  • Actor-Critic (PPO, SAC) 是当前非常通用和强大的主流选择。

网站公告

今日签到

点亮在社区的每一天
去签到