【强化学习基础(4)】强化学习中的泛化:函数近似与深度强化学习
文章目录核心观点一、为什么需要泛化1.1 表格表示的局限性1.2 泛化的必要性1.3 函数近似的优势二、函数近似基础2.1 线性函数近似2.2 近似直接效用估计2.3 泛化的效果2.4 函数近似的效果三、近似时序差分学习3.1 TD学习的函数近似3.2 收敛性保证3.3 灾难性遗忘3.4 经验回放四、深度强化学习4.1 为什么需要深度神经网络4.2 深度神经网络作为函数近似器4.3 深度强化学习的挑战五、奖励函数设计5.1 稀疏奖励问题5.2 奖励塑形5.3 势函数方法5.4 奖励设计的平衡六、分层强化学习6.1 为什么需要分层6.2 分层结构6.3 选择状态和MDP6.4 分层学习的优势七、总结想象一下你要记住世界上所有城市的位置和价值。如果使用表格你需要为每个城市创建一个条目这显然不可能。但如果你学会了城市的价值取决于它的地理位置、人口、经济等因素你就可以用这些因素来估计任何城市的价值即使你从未去过那个城市。这就是泛化的思想。在强化学习中状态空间可能非常大。比如西洋双陆棋有10^20种可能的棋盘状态即使每秒访问1000个状态也需要10^10年才能访问所有状态。显然我们不可能访问所有状态必须学会泛化从未访问过的状态中学习理解相似状态应该有相似价值。核心观点强化学习中的泛化是通过函数近似将价值函数或Q函数表示为参数化函数使智能体能够从未访问过的状态中学习并处理巨大的状态空间。深度强化学习使用深度神经网络作为函数近似器在复杂任务中取得了突破性进展。这个观点的核心在于泛化让强化学习从记忆变为理解。在表格表示中智能体只能记住访问过的状态无法处理未访问过的状态。通过函数近似智能体可以学习状态的特征理解相似状态应该有相似价值从而泛化到新状态。深度强化学习是函数近似的自然延伸。当线性函数近似不够时深度神经网络可以提供强大的非线性函数近似能力直接从原始输入如图像学习特征表示。这使得强化学习可以处理更复杂、更高维的任务如Atari游戏、围棋、机器人控制等。一、为什么需要泛化1.1 表格表示的局限性在小的状态空间中我们可以使用表格来表示价值函数或Q函数为每个状态或状态-动作对存储一个值。这就像为每个城市创建一个条目记录它的价值。但在大的状态空间中表格表示变得不切实际。比如西洋双陆棋有10^20种状态我们不可能为每个状态创建一个条目。即使可以访问所有状态也需要天文数字的时间。1.2 泛化的必要性泛化让智能体能够从未访问过的状态中学习。通过函数近似智能体可以学习状态的特征如位置、速度、距离目标等理解具有相似特征的状态应该有相似价值从而估计未访问状态的价值。这就像你学会了靠近终点的位置价值高那么即使你从未访问过某个具体位置只要你知道它靠近终点就可以估计它的价值。这种泛化能力让强化学习可以处理巨大的状态空间。1.3 函数近似的优势函数近似将价值函数或Q函数表示为参数化函数用少量参数如20个近似大量状态值如10^20个。这使得智能体可以用更少的参数学习并且能够泛化到未访问过的状态。Tesauro的西洋双陆棋程序1992就是一个例子它只探索了游戏状态空间的极小部分但通过函数近似学会了玩整个游戏。这证明了函数近似的强大。二、函数近似基础2.1 线性函数近似最简单的函数近似是线性函数近似U ^ ( s ) θ 1 f 1 ( s ) θ 2 f 2 ( s ) . . . θ n f n ( s ) Û(s) θ₁f₁(s) θ₂f₂(s) ... θₙfₙ(s)U^(s)θ1f1(s)θ2f2(s)...θnfn(s)其中fᵢ(s)是状态s的特征θᵢ是参数。这就像用特征的加权和来估计状态价值。例如在4×3世界中我们可以使用简单的线性函数近似U ^ ( x , y ) θ 0 θ 1 x θ 2 y Û(x, y) θ₀ θ₁x θ₂yU^(x,y)θ0θ1xθ2y其中x和y是状态的坐标特征。如果(θ₀, θ₁, θ₂) (0.5, 0.2, 0.1)那么Û(1,1) 0.8。2.2 近似直接效用估计近似直接效用估计将直接效用估计与函数近似结合。智能体在状态空间中生成轨迹从给定状态到终止的奖励总和作为监督学习的训练样本。在线学习算法在每次试验后更新参数。例如如果估计U ^ ( 1 , 1 ) 0.8 Û(1,1) 0.8U^(1,1)0.8但观察到的总奖励是0.4就需要减少估计。误差函数是E t ( s ) ( U ^ θ ( s ) − u t ( s ) ) 2 / 2 E_t(s) (Û_θ(s) - u_t(s))² / 2Et(s)(U^θ(s)−ut(s))2/2其中u_t(s)是观察到的总奖励。参数更新规则基于误差函数的梯度θ i ← θ i α [ u t ( s ) − U ^ θ ( s ) ] ∂ U ^ θ ( s ) / ∂ θ i θᵢ ← θᵢ α[u_t(s) - Û_θ(s)] ∂Û_θ(s) / ∂θᵢθi←θiα[ut(s)−U^θ(s)]∂U^θ(s)/∂θi。对于线性函数近似器U ^ θ ( s ) θ 0 θ 1 x θ 2 y Û_θ(s) θ₀ θ₁x θ₂yU^θ(s)θ0θ1xθ2y更新规则是θ 0 ← θ 0 α [ u t ( s ) − U ^ θ ( s ) ] θ 1 ← θ 1 α [ u t ( s ) − U ^ θ ( s ) ] x θ 2 ← θ 2 α [ u t ( s ) − U ^ θ ( s ) ] y θ₀ ← θ₀ α[u_t(s) - Û_θ(s)]θ₁ ← θ₁ α[u_t(s) - Û_θ(s)]xθ₂ ← θ₂ α[u_t(s) - Û_θ(s)]yθ0←θ0α[ut(s)−U^θ(s)]θ1←θ1α[ut(s)−U^θ(s)]xθ2←θ2α[ut(s)−U^θ(s)]y。2.3 泛化的效果泛化的效果是改变参数θ以响应两个观察状态之间的转移也会影响其他状态的Û值。这就是泛化的核心思想通过共享参数所有状态的价值估计相互影响使得智能体可以从访问过的状态学习泛化到未访问过的状态。例如如果Û(1,1) 0.8但u(1,1) 0.4那么θ₀、θ₁、θ₂都会减少0.4α这不仅减少了(1,1)的误差也影响了所有其他状态的估计。这种共享使得函数近似可以泛化。2.4 函数近似的效果函数近似可以导致更快的学习如果假设空间是合适的。在小的4×3世界中线性函数近似的改进有限但在大的10×10世界中1奖励在(10,10)改进更明显。但如果真实效用函数不适合线性近似性能会很差。比如在10×10世界中如果奖励在(5,5)真实效用函数是金字塔状的线性近似Û(x, y) θ₀ θ₁x θ₂y会表现很差。改进线性函数近似的方法是引入状态的非线性函数作为特征。例如f_k(x, y) √((x-x_g)² (y-y_g)²)测量到目标的距离。有了这样的特征线性函数近似器可以表现良好。三、近似时序差分学习3.1 TD学习的函数近似近似时序差分学习将这些思想应用到时序差分学习器。智能体调整参数以减少连续状态之间的时序差分。对于效用函数的TD学习更新规则是θᵢ ← θᵢ α[R(s, a, s’) γ Û_θ(s’) - Û_θ(s)] ∂Û_θ(s) / ∂θᵢ。对于Q值函数的Q学习更新规则是θᵢ ← θᵢ α[R(s, a, s’) γ max_a’ Q_θ(s’, a’) - Q_θ(s, a)] ∂Q_θ(s, a) / ∂θᵢ。3.2 收敛性保证对于被动TD学习与线性函数近似器可以证明收敛到最接近真实函数的近似。但对于主动学习和非线性函数如神经网络这样的结果很难获得参数甚至可能发散。这就像线性函数近似有理论保证但非线性函数近似如神经网络的收敛性更难保证。这是深度强化学习面临的一个挑战。3.3 灾难性遗忘灾难性遗忘Catastrophic Forgetting是函数近似的一个严重问题。例如自动驾驶汽车学会了在道路中央行驶但可能后来忘记了边缘的危险导致事故。这发生是因为价值函数在安全的中央区域变得平坦线性特征可能导致汽车滑出。当智能体专注于学习某些区域时可能忘记其他区域的知识。3.4 经验回放经验回放Experience Replay是解决灾难性遗忘的方法。算法存储和回放过去的轨迹确保价值函数对于状态空间中很少访问的部分仍然准确。这就像你定期复习学过的知识防止忘记。通过回放过去的经验智能体可以保持对所有区域的知识而不仅仅是当前关注的区域。四、深度强化学习4.1 为什么需要深度神经网络探索线性函数之外的近似器有两个主要原因某些效用或Q函数不存在好的线性近似在新领域中很难找到必要的特征。这两个点最终源于同一个问题如果特征本身是U(s)或Q(s, a)那么将U或Q表示为特征的线性组合总是可能的。但找到这样的特征通常很困难。深度神经网络参考第21章作为有效的非线性近似器即使使用原始输入数据也能工作。这使得它们成为强化学习中函数近似器的自然选择导致了深度强化学习系统。4.2 深度神经网络作为函数近似器深度网络是复杂的参数化函数参数是跨层的权重。这些网络的梯度计算对于方程22-11和22-12类似于监督学习使用反向传播第21.4节。深度强化学习已经取得了显著成就第22.7节掌握了各种电子游戏击败了人类围棋世界冠军训练机器人完成复杂任务。这些成就证明了深度神经网络在强化学习中的强大能力。4.3 深度强化学习的挑战但深度强化学习也面临挑战很难达到一致的良好性能对训练数据和真实环境之间的差异很敏感商业应用仍然有限。这些都是当前研究的热点问题。深度强化学习仍然是一个活跃的研究领域需要更多的理论分析和实践改进。五、奖励函数设计5.1 稀疏奖励问题在真实世界环境中奖励通常是稀疏的。比如足球机器人需要在数十万条控制命令中识别出单一的错误动作。这就像在很长的序列中找到关键的一步非常困难。稀疏奖励导致信用分配Credit Assignment问题智能体很难知道哪些动作导致了最终的成功或失败。如果奖励只在最后给出中间的所有动作都得到零奖励智能体很难学习。5.2 奖励塑形奖励塑形Reward Shaping是来自动物训练的方法提供伪奖励来鼓励进步。例如奖励机器人触摸球或将球推向球门而不仅仅是最终得分。这就像训练小狗不仅奖励最终完成动作还奖励中间步骤如坐下、“握手”帮助小狗更快地学习。伪奖励可以加速学习但存在智能体优化伪奖励而不是真正目标的风险。5.3 势函数方法根据第17章有一种方法可以修改奖励函数而不改变最优策略。新的奖励函数是R ′ ( s , a , s ′ ) R ( s , a , s ′ ) γ Φ ( s ′ ) − Φ ( s ) R(s, a, s) R(s, a, s) γΦ(s) - Φ(s)R′(s,a,s′)R(s,a,s′)γΦ(s′)−Φ(s)其中Φ(s)是势函数。势函数可以构造为反映期望的部分状态如达到子目标或到终止状态的距离。例如对于足球机器人Φ(s)可以奖励控球和减少到对手球门的距离加速学习而不妨碍机器人在危险情况下学习防守。5.4 奖励设计的平衡奖励设计需要在加速学习和保持目标一致性之间找到平衡。太多的伪奖励可能导致智能体优化错误的目标太少的伪奖励可能导致学习太慢。好的奖励设计应该反映真正的目标、提供足够的中间反馈、不会导致次优策略。这需要领域知识和实验来找到合适的平衡。六、分层强化学习6.1 为什么需要分层分层强化学习Hierarchical Reinforcement Learning, HRL是处理长动作序列的另一种方法通过将它们分解为更小、可管理的段。这就像将复杂任务分解为简单子任务逐步完成。HRL与HTN规划方法第11章有相似之处。例如在足球中得分可以分解为子任务获得控球、传球、接球、运球、射门。每个子任务可以进一步细化为低级动作。6.2 分层结构HRL智能体从一个局部程序开始定义智能体行为的分层结构。智能体的编程语言扩展为包括未指定的选择这些选择在学习过程中被学习。例如一个简单的局部程序允许智能体在当前状态s的可执行动作集A(s)中选择任何动作。更复杂的例子是控球者玩家的局部程序如果球在我控制下选择{传球、控球、运球}否则选择{停留、移动、拦截球}。6.3 选择状态和MDP在HRL中状态是联合状态空间中的选择状态σ (s, m)其中s是物理状态m是机器状态。选择状态是机器程序计数器在智能体程序中的选择点的状态。HRL解决的MDP的元素是状态是联合状态空间中的选择状态动作c是局部程序确定的可行选择奖励函数ρ(σ, c, σ’)是选择状态σ和σ’之间物理转移的期望奖励转移模型P(σ, c, σ’)明确定义如果采取物理动作a它来自物理模型P(s’|s, a)如果发生计算转移如调用子程序转移由编程语言规则确定性地定义。6.4 分层学习的优势HRL是学习复杂行为的有效方法。在keepaway游戏中HRL显著提高了控球时间。低级别的选择对智能体的内部状态和上下文敏感这使得HRL可以学习细粒度的控制。HRL中奖励函数的设计特别有益。对于像PASS-TO这样的程序奖励可以基于到目标和对手的距离。注意传球和目标是内部构造不是客观物理世界的一部分这使得HRL可以学习抽象的行为。七、总结强化学习中的泛化是通过函数近似将价值函数或Q函数表示为参数化函数使智能体能够从未访问过的状态中学习。它的核心在于从记忆变为理解。函数近似包括线性函数近似和非线性函数近似如深度神经网络。线性函数近似简单但有理论保证非线性函数近似强大但收敛性更难保证。深度强化学习使用深度神经网络作为函数近似器在复杂任务中取得了突破性进展。但它也面临挑战灾难性遗忘、收敛性保证、对数据差异的敏感性等。奖励函数设计和分层强化学习是处理稀疏奖励和长动作序列的重要方法。奖励塑形可以加速学习但需要保持目标一致性。分层强化学习可以将复杂任务分解为简单子任务提高学习效率。记住泛化让强化学习可以处理巨大的状态空间但需要合适的函数近似器和特征设计。通过理解函数近似、深度强化学习、奖励设计和分层强化学习的原理我们可以更好地应用强化学习来解决实际问题。参考《人工智能现代方法第四版》