函数逼近
介绍函数逼近在强化学习中的应用,包括增量方法、批量方法、线性价值函数逼近、最小二乘 Q-Learning 以及最小二乘策略迭代等内容
函数逼近
-
基本思想
- 在前面章节(DP / MC / TD)中,我们几乎都隐含假设了一件事:状态(或状态 - 动作)是有限的、可枚举的,可以用表存下来
- 一旦这个假设不成立(连续状态、高维状态、组合爆炸),表格法直接失效
- 状态空间巨大(如图像、传感器数据)、状态空间连续(如位置、速度)、状态 × 动作组合数爆炸,这导致很多状态一辈子都见不到
- 因此不能 “记忆”,只能 “泛化”,那么如何通过泛化,建立有效的方法 —— 使用参数化的函数模型(如线性模型、神经网络等)来逼近
-
函数逼近法
-
能够从已经见到的状态泛化到未见状态
-
通过 MC 或 TD 学习更新参数
-
函数逼近是统一工具,值函数和策略都能逼近
-
函数逼近器有哪些?特征的线性组合、神经网络、决策树、最近邻、傅里叶 / 小波基
-
可微函数逼近器有哪些?特征的线性组合、神经网络 ——要用梯度下降法
-
-
函数逼近在 RL 里比监督学习难得多,因为:
- 数据非独立同分布(non-i.i.d.)
- 数据分布随策略变化(非平稳)
- 目标值依赖于当前模型(bootstrap)
增量方法
-
增量方法 =在线学习,即每来一个样本,就更新一次参数
-
利用梯度下降法,找到局部最小值(以均方误差为例)
-
是损失函数
-
目标:通过梯度下降法,最小化损失函数,以优化模型参数
-
梯度下降的原始定义
- :损失函数对参数的梯度
- 负号:沿着下降最快的方向
- :学习率
-
对单个状态 ,定义瞬时损失:
-
对它求梯度:
-
使用链式法则:
-
整理符号:
-
为了抵消平方项,添加系数
-
其中, 即表示模型对参数 的梯度,表示模型参数变化时,预测值的变化量
-
也可以直观理解为:误差 × 对参数的敏感度 × 学习率
-
-
随机梯度下降(SGD)
-
采样梯度,收敛于全局最优值
-
真实环境中我们拿不到期望,只能采样
-
-
线性价值函数逼近
-
使用特征向量表示状态
-
代入梯度公式:所有非线性都藏在特征里,模型本身是线性的
-
代入梯度更新公式:更新值 = 学习率 × 预测误差 × 特征向量
-
表查找形式:表格法 = one-hot 特征 + 线性模型
-
函数逼近不是 “另起炉灶”,而是表格法的推广
-
-
状态值函数 的函数逼近
- 可以对 进行监督学习,来构造逼近函数
-
动作值函数 的函数逼近
-
目标
-
损失函数
-
随机梯度下降
-
可以对 进行监督学习,来构造逼近函数
-
线性形式
-
批量方法
-
增量方法的问题:
- 每次更新仅依赖于当前样本或小批量样本,样本没被充分利用
- 更新噪声大
- 不稳定
-
给定经验数据集
-
则最小二乘法找到的参数 最小化平方和误差
-
如何找到最小二乘解
- 从经历中采样状态 - 值:
- 应用随机梯度下降更新:
- 收敛至最小二乘解:
-
线性最小二乘
-
给定线性函数逼近
-
当取 时,,即
-
对于 维特征向量,时间复杂度为 ;采用增量方法(Shermann-Morrison)解决,时间复杂度为
-
使用 MC/TD 估计
-
-
最小二乘 Q-Learning(LSTDQ)
-
用最小二乘解 TD 固定点,比 Q-learning 更稳定、更样本高效
-
目标:线性逼近
-
损失函数:
-
计算
-
-
最小二乘策略迭代(Least Squares Policy Iteration)
- Policy Evaluation:LSTDQ
- Policy Improvement:Greedy
function LSPI-TD(D, π₀) π′ ← π₀ repeat π ← π′ Q ← LSTDQ(π, D) // 通过最小二乘 TD-Q 方法计算 Q 函数 for all s ∈ S do π′(s) ← argmaxₐ Q(s, a) // 策略改进 end for until (π ≈ π′) // 判断策略是否收敛 return π end function