当前位置: 首页 > news >正文

基于“蘑菇书”的强化学习知识点(二):强化学习中基于策略(Policy-Based)和基于价值(Value-Based)方法的区别

强化学习中基于策略(Policy-Based)和基于价值(Value-Based)方法的区别

    • 摘要
      • 强化学习中基于策略(Policy-Based)和基于价值(Value-Based)方法的区别
      • 1. 定义与核心思想
        • (1) 基于策略的方法(Policy-Based Methods)
        • (2) 基于价值的方法(Value-Based Methods)
      • 2. 核心区别
      • 3. 具体示例
        • 场景:CartPole游戏
        • (1) 基于价值的方法示例(如DQN)
        • (2) 基于策略的方法示例(如REINFORCE或PPO)
      • 4. 优缺点对比
      • 5. 典型算法
      • 6. 关键总结
      • 示例总结

摘要

本系列知识点讲解基于蘑菇书EasyRL中的内容进行详细的疑难点分析!具体内容请阅读蘑菇书EasyRL!


对应蘑菇书EasyRL——1.4.4.1基于价值的智能体与基于策略的智能体


强化学习中基于策略(Policy-Based)和基于价值(Value-Based)方法的区别

在强化学习中,基于策略的方法基于价值的方法是两类核心的算法设计思路。它们的核心差异在于优化目标动作选择方式。以下是详细对比及具体示例:


1. 定义与核心思想

(1) 基于策略的方法(Policy-Based Methods)
  • 定义:直接学习策略函数(即状态到动作的映射),通过优化策略参数来最大化长期累积奖励。
  • 核心思想
    策略函数可以是确定性的(如 a = π ( s ) a = \pi(s) a=π(s))或概率性的(如 π ( a ∣ s ) = P ( a ∣ s ) \pi(a|s) = P(a|s) π(as)=P(as))。算法通过梯度上升调整策略参数,使高奖励的动作概率增加。
  • 数学表示
    π θ ( a ∣ s ) \pi_\theta(a|s) πθ(as) 表示参数为 θ \theta θ 的策略函数,目标是最大化期望回报 J ( θ ) = E π θ [ G t ] J(\theta) = \mathbb{E}_{\pi_\theta}[G_t] J(θ)=Eπθ[Gt]
(2) 基于价值的方法(Value-Based Methods)
  • 定义:学习价值函数(如状态值函数 V ( s ) V(s) V(s) 或动作值函数 Q ( s , a ) Q(s,a) Q(s,a)),通过价值函数间接选择动作。
  • 核心思想
    通过贝尔曼方程迭代更新价值函数,最终策略由价值函数导出(例如选择具有最高 Q ( s , a ) Q(s,a) Q(s,a) 的动作)。
  • 数学表示
    贝尔曼方程: Q ( s , a ) = E [ R + γ max ⁡ a ′ Q ( s ′ , a ′ ) ] Q(s,a) = \mathbb{E}[R + \gamma \max_{a'} Q(s',a')] Q(s,a)=E[R+γmaxaQ(s,a)]

2. 核心区别

特征基于策略的方法基于价值的方法
优化目标直接优化策略参数 θ \theta θ优化价值函数(如 Q ( s , a ) Q(s,a) Q(s,a) V ( s ) V(s) V(s)
策略表示显式定义策略 π ( a ∣ s ) \pi(a | s) π(as)隐式策略(如贪婪策略: a = arg ⁡ max ⁡ a Q ( s , a ) a = \arg\max_a Q(s,a) a=argmaxaQ(s,a)
动作空间适应性天然支持连续动作空间(如机器人控制)通常需离散化动作空间(如DQN)
探索能力通过策略的随机性自然探索(如概率选择动作)需额外机制(如ε-greedy)促进探索
收敛性更稳定但可能收敛到局部最优可能存在震荡或不收敛(尤其是函数逼近时)
策略更新频率通常按回合(on-policy)更新可在线更新(off-policy,如Q-learning)

3. 具体示例

场景:CartPole游戏
  • 目标:控制小车左右移动,保持杆子竖直不倒。
  • 动作空间:离散(左/右)或连续(力的大小)。
(1) 基于价值的方法示例(如DQN)
  • 步骤
    1. 学习动作值函数 Q ( s , a ) Q(s,a) Q(s,a),预测每个动作的长期价值。
    2. 选择使 Q ( s , a ) Q(s,a) Q(s,a) 最大的动作(例如,向左或向右)。
  • 局限性
    如果动作空间连续(如施加0.1N或0.5N的力),需离散化处理,导致维度灾难。
  • 代码片段逻辑
    action = argmax(q_network(state))  # 选择Q值最大的动作
    
(2) 基于策略的方法示例(如REINFORCE或PPO)
  • 步骤
    1. 直接输出动作的概率分布(例如,向左概率70%,向右30%)。
    2. 通过策略梯度上升,增加高回报动作的概率。
  • 优势
    可直接输出连续动作(如力的大小为0.3N),无需离散化。
  • 代码片段逻辑
    mean, std = policy_network(state)  # 输出高斯分布的均值和方差
    action = sample(mean, std)         # 从分布中采样连续动作
    

4. 优缺点对比

方法类型优点缺点
基于策略1. 支持连续动作空间
2. 探索能力强
3. 策略表达灵活
1. 高方差
2. 样本效率低
3. 训练不稳定
基于价值1. 样本效率高(可off-policy)
2. 训练稳定
1. 依赖价值函数估计精度
2. 难以处理连续动作

5. 典型算法

  • 基于策略的方法
    • REINFORCE(蒙特卡洛策略梯度)
    • PPO(Proximal Policy Optimization)
    • TRPO(Trust Region Policy Optimization)
  • 基于价值的方法
    • Q-learning
    • DQN(Deep Q-Network)
    • SARSA

6. 关键总结

  • 基于策略的方法
    直接操作策略,适合复杂动作空间(如机器人控制、游戏AI),但训练可能不稳定。
  • 基于价值的方法
    依赖价值函数,适合离散动作空间(如Atari游戏),但对函数逼近误差敏感。
  • 混合方法(Actor-Critic)
    结合两者优点,用价值函数辅助策略更新(如A3C、DDPG)。

示例总结

  • 迷宫导航(基于价值)
    学习每个位置的Q值,选择最大Q值的路径。
  • 机械臂控制(基于策略)
    直接输出关节扭矩的连续值,通过策略梯度优化扭矩参数。

两者在解决不同类型问题时各具优势,实际应用中常结合使用(如Actor-Critic架构)。

http://www.lryc.cn/news/530990.html

相关文章:

  • 民法学学习笔记(个人向) Part.2
  • 物业管理系统源码驱动社区管理革新提升用户满意度与服务效率
  • 租房管理系统助力数字化转型提升租赁服务质量与用户体验
  • Ollama教程:轻松上手本地大语言模型部署
  • Baklib推动数字化内容管理解决方案助力企业数字化转型
  • DeepSeek-R1 论文. Reinforcement Learning 通过强化学习激励大型语言模型的推理能力
  • DOM 操作入门:HTML 元素操作与页面事件处理
  • 使用 HTTP::Server::Simple 实现轻量级 HTTP 服务器
  • C++滑动窗口技术深度解析:核心原理、高效实现与高阶应用实践
  • 基于构件的软件开发方法
  • 网站快速收录:如何设置robots.txt文件?
  • OpenGL学习笔记(六):Transformations 变换(变换矩阵、坐标系统、GLM库应用)
  • 8.攻防世界Web_php_wrong_nginx_config
  • 【优先算法】专题——位运算
  • qt.qpa.plugin: Could not find the Qt platform plugin “dxcb“ in ““
  • 1-刷力扣问题记录
  • 物联网 STM32【源代码形式-使用以太网】连接OneNet IOT从云产品开发到底层MQTT实现,APP控制 【保姆级零基础搭建】
  • 【单层神经网络】基于MXNet的线性回归实现(底层实现)
  • unity中的动画混合树
  • 《基于deepseek R1开源大模型的电子数据取证技术发展研究》
  • Potplayer常用快捷键
  • C++ Primer 自定义数据结构
  • 35.Word:公积金管理中心文员小谢【37】
  • 北京钟鼓楼:立春“鞭春牛”,钟鼓迎春来
  • 股票入门知识
  • Java自定义IO密集型和CPU密集型线程池
  • Git的安装步骤详解(复杂的安装界面该如何勾选?)
  • 文本预处理
  • SQLAlchemy 2.0的简单使用教程
  • 基于RAG的知识库问答系统