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

【强化学习】值函数近似——曲线拟合

文章目录

    • 1. 为什么要引入函数近似?
    • 2. 核心概念:价值函数近似
      • 曲线拟合 (Curve Fitting)
    • 3. 函数近似的两大优势
    • 4. 代价

1. 为什么要引入函数近似?

在之前的内容(如 Q-learning, Sarsa)中,我们通常假设状态价值V ( s ) V(s)V(s)或动作价值Q ( s , a ) Q(s, a)Q(s,a)是存储在一个**表格(Table)**中的。

  • 表格型表示 (Tabular Representation):类似于一个查找表(Lookup Table)。
    • 例如:Q QQ-table 的行代表状态s ss,列代表动作a aa,表格中的每个格子存储具体的数值。
    • 程序实现:通常使用数组、矩阵或张量。

🚫 表格型方法的局限性:

  1. 无法处理大规模/连续空间
  • 如果状态空间(State Space)非常大(例如围棋的状态数),或者是连续的(例如机器人关节的角度、速度),表格无法列举所有可能的状态。

  • 即使使用离散化(网格法),网格太密会导致计算量爆炸(维数灾难),太疏又会丢失精度。

  1. 缺乏泛化能力
  • 在表格法中,你必须亲自访问并更新每一个状态-动作对,才能知道它的值
  • 未被访问过的状态,其值永远不会更新。但在现实中,我们希望在学过类似状态后,能推断出未见过的状态的值。

2. 核心概念:价值函数近似

为了解决上述问题,我们不再用表格记录每个点的具体数值,而是用一个函数来拟合这些值。
定义:使用一个带参数w ww的函数v ^ ( s , w ) \hat{v}(s, w)v^(s,w)来近似真实的状态价值v π ( s ) v_\pi(s)vπ(s)

  • v ^ \hat{v}v^:估计值
  • s ss:状态
  • w ww:权重/参数

曲线拟合 (Curve Fitting)

  • 假设有n nn个状态S 1 , S 2 , . . . , S n S_1, S_2, ..., S_nS1,S2,...,Sn,它们对应的真实价值是图上的一系列离散点。
  • 表格法:相当于要记录n nn个点的( x , y ) (x, y)(x,y)坐标,需要大量内存。
  • 函数近似法:
    • 试图画一条直线(或曲线)穿过这些点。
    • 一旦确定了直线的方程(例如y = a x + b y = ax + by=ax+b),我们只需要存储a aab bb这两个参数,就能算出任意s ss对应的价值。
    • 参数数量远小于状态数量(例如 2 个参数 vs 100万个状态),极大地节省了内存。

🧮 数学形式 (线性近似)
最简单的形式是线性函数近似:

v ^ ( s , w ) = ϕ ( s ) T w \hat{v}(s, w) = \phi(s)^T wv^(s,w)=ϕ(s)Tw

  • ϕ ( s ) \phi(s)ϕ(s)- 特征向量 :描述状态s ss特征的向量(例如:[状态数值, 1])。
  • w ww- 权重向量 :我们需要学习和存储的参数。

注:也可以使用非线性函数(如神经网络)来拟合,这属于 Deep RL 的范畴,但基本原理相同:调整w ww使得v ^ \hat{v}v^尽可能接近真实价值。

3. 函数近似的两大优势

✅ 1. 节省存储 (Storage Efficiency)

  • 对比:
    • 表格法:需要存储空间∝ \propto状态数量 (N NN)。
    • 函数法:需要存储空间∝ \propto参数数量维度 (d i m ( w ) dim(w)dim(w))。
  • 当状态无限多时,我们只需要存储有限的几个参数w ww即可。

✅ 2. 泛化能力 (Generalization)

这是函数近似最强大的地方。

  • 表格法:更新状态S 2 S_2S2的值,只会改变S 2 S_2S2的记录,S 1 S_1S1S 3 S_3S3的值完全不受影响。
  • 函数法:
    • 更新状态S 2 S_2S2的值,实际上是在调整参数w ww(例如改变了直线的斜率)。
    • 牵一发而动全身:因为w ww变了,整个函数曲线都会发生变化。
    • 结果:即使我们从未访问过S 1 S_1S1S 3 S_3S3,因为它们在S 2 S_2S2附近(或共享相同的参数w ww),它们的估计值也会根据S 2 S_2S2的经验自动得到修正。这使得智能体能够对未见过的状态做出预测。

4. 代价

天下没有免费的午餐。函数近似的代价是精度 (Precision)。

  • 一条直线可能无法完美穿过所有离散的点。
  • v ^ ( s , w ) \hat{v}(s, w)v^(s,w)只是一个近似值 (Approximation),通常不等于真实的v π ( s ) v_\pi(s)vπ(s),会存在误差。
  • 可以通过提高函数的复杂度(如使用高阶多项式、深度神经网络)来提高精度,但这会增加计算量和过拟合的风险。
http://www.cnnetsun.cn/news/88583.html

相关文章:

  • Qwen-Image微调实战:让模型认识新车
  • 路由策略与策略路由
  • 软件测试面试题及答案,2026春招必看版
  • 基于飞桨实现图像分类:从LeNet到ResNet
  • 基于单片机的智能窗帘控制系统设计(光照+遥控)【附代码】
  • LobeChat插件系统开发指南:拓展你的AI应用边界
  • 基于单片机的智能燃气泄漏报警与关闭系统设计【附代码】
  • 基于单片机的智能水位控制系统设计(水箱+自动补水)【附代码】
  • LobeChat本地安装详细步骤指南
  • 《12个月服务期!黑龙江炉渣外运处置项目公开招标》
  • 2025年国产电脑操作系统推荐:银河麒麟为何成为党政机关首选?
  • Flutter 2025 国际化与本地化工程:从多语言到文化适配,打造真正全球化的应用
  • 事务拦截器TransactionInterceptor
  • Qwen3-VL-30B 4bit量化版发布:单卡部署突破
  • FLUX.1-ControlNet自定义控制模式全解
  • Windows server 2019 离线安装docker容器
  • springboot基于uniapp的有机农产品商城电商平台_4747f8w7-小程序
  • 用Dify构建文生视频工作流:从输入到输出
  • 基于Android的高校教室预约管理平台系统(源码+lw+部署文档+讲解等)
  • 开源不输商用!LobeChat媲美ChatGPT的用户体验实测
  • 十三、Kafka基础环境实战
  • EmotiVoice 安装与环境配置指南
  • LobeChat能否实现AI专利检索?技术创新辅助工具开发
  • vue基于spring boot的乡村民宿预订周边旅游管理系统
  • 网安零基础必冲!upload-labs 文件上传漏洞保姆级通关教程
  • vue基于Springboot框架 新能源充电桩报修管理系统
  • v3基于SpringBoot的酒店管理系统
  • Git安装Windows版本并配置清华镜像用于TensorFlow贡献开发
  • Langchain-Chatchat 0.3.1 Windows本地部署指南
  • 私有云ACK:企业智能化转型的安全基座与算力引擎