文章目录
-
- 核心观点
- 一、什么是被动强化学习?
-
- [1.1 被动学习的定义](#1.1 被动学习的定义)
- [1.2 被动学习的目标](#1.2 被动学习的目标)
- [1.3 被动学习的例子](#1.3 被动学习的例子)
- 二、直接效用估计
-
- [2.1 直接效用估计的思想](#2.1 直接效用估计的思想)
- [2.2 直接效用估计的过程](#2.2 直接效用估计的过程)
- [2.3 直接效用估计的局限性](#2.3 直接效用估计的局限性)
- 三、自适应动态规划
-
- [3.1 自适应动态规划的思想](#3.1 自适应动态规划的思想)
- [3.2 学习转移模型](#3.2 学习转移模型)
- [3.3 使用动态规划求解](#3.3 使用动态规划求解)
- [3.4 自适应动态规划的优势和局限](#3.4 自适应动态规划的优势和局限)
- 四、时序差分学习
-
- [4.1 时序差分学习的思想](#4.1 时序差分学习的思想)
- [4.2 时序差分更新规则](#4.2 时序差分更新规则)
- [4.3 时序差分学习的优势](#4.3 时序差分学习的优势)
- [4.4 时序差分学习的收敛性](#4.4 时序差分学习的收敛性)
- 五、三种方法的比较
-
- [5.1 学习效率](#5.1 学习效率)
- [5.2 计算成本](#5.2 计算成本)
- [5.3 适用场景](#5.3 适用场景)
- [5.4 实际应用](#5.4 实际应用)
- 六、被动学习的实际意义
-
- [6.1 为主动学习打基础](#6.1 为主动学习打基础)
- [6.2 理解环境](#6.2 理解环境)
- [6.3 评估策略](#6.3 评估策略)
- 七、总结
核心观点
被动强化学习是智能体在固定策略下,通过观察环境反馈学习状态价值函数的过程。它不需要主动选择动作,只需要跟随既定策略,观察结果,然后更新对状态价值的估计。
想象一下,你是一个新手司机,跟着教练学习开车。教练告诉你"按照这个路线开",你不需要决定走哪条路,只需要按照指示开车,观察路况,学习"这条路好不好走"。
这个观点的核心在于:被动学习是主动学习的基础。在被动强化学习中,智能体有一个固定的策略来决定其行为,它不需要决定"应该做什么",只需要学习"当前状态有多好"。这就像你按照既定的路线开车,不需要决定走哪条路,只需要观察路况,学习"这条路好不好走"。
被动强化学习是理解强化学习的重要基础。通过被动学习,智能体可以学会评估状态的价值,为后续的主动学习(选择最优动作)打下基础。从直接效用估计到自适应动态规划,再到时序差分学习,被动强化学习提供了多种学习方法,每种方法都有其适用场景和优缺点。
一、什么是被动强化学习?
1.1 被动学习的定义
被动强化学习(Passive Reinforcement Learning)是指智能体有一个固定的策略π(s),它按照这个策略行动,学习状态的价值函数U(s)。价值函数表示"从状态s开始,按照策略π,期望能获得多少累积奖励"。
在被动学习中,智能体不知道环境的转移模型P(s'|s, a)和奖励函数R(s, a, s')。它只能通过观察来学习:执行动作,观察结果状态和奖励,然后更新对状态价值的估计。
这就像你按照既定路线开车,不知道路况如何,只能通过实际开车来观察"这条路好不好走"。你不需要决定走哪条路(策略已定),只需要学习"当前路况的价值"。
1.2 被动学习的目标
被动学习的目标是学习效用函数U^π(s),定义为从状态s开始,按照策略π,期望的折扣奖励总和。数学上,这可以表示为: U π ( s ) = E [ Σ t = 0 ∞ γ t R ( S t , π ( S t ) , S t + 1 ) ] U^π(s) = E[Σ_{t=0}^∞ γ^t R(S_t, π(S_t), S_{t+1})] Uπ(s)=E[Σt=0∞γtR(St,π(St),St+1)],其中γ是折扣因子,R是奖励函数。
这个公式的意思是:从状态s开始,按照策略π行动,每一步都会获得奖励,但未来的奖励会打折扣(γ^t),价值函数就是所有折扣奖励的期望值。折扣因子γ通常小于1,表示"未来的奖励不如现在的奖励重要"。
1.3 被动学习的例子
为了更好地理解被动学习,我们来看一个简单的例子:4×3世界。这是一个网格世界,智能体从某个位置开始,按照固定策略移动,目标是到达终点(+1奖励)或陷阱(-1惩罚)。每一步移动都有小的负奖励(-0.04),鼓励智能体尽快到达终点。
在这个例子中,智能体有一个固定的策略(比如"总是向上或向右移动"),它按照这个策略行动,观察每次移动的结果(新状态和奖励),然后学习"每个位置的价值是多少"。通过多次尝试,智能体逐步学会"靠近终点的位置价值高,靠近陷阱的位置价值低"。
二、直接效用估计
2.1 直接效用估计的思想
直接效用估计(Direct Utility Estimation)是最简单的方法:直接将状态的效用定义为从该状态开始的期望总奖励(reward-to-go)。每次试验(trial)为每个访问的状态提供一个数值样本。
这就像你多次走同一条路线,每次都记录"从这条路开始,最终获得了多少奖励",然后取平均值。如果这条路通向好地方,平均值就高;如果通向坏地方,平均值就低。
2.2 直接效用估计的过程
直接效用估计的过程很简单:智能体按照固定策略执行多次试验,每次试验都记录从每个访问状态开始的总奖励,然后在试验结束后,计算每个状态的平均奖励作为效用估计。
例如,在一次试验中,智能体从状态(1,1)开始,经过(1,2)、(1,3)、(2,3)、(3,3),最终到达(4,3)获得+1奖励。那么状态(1,1)的样本就是这次试验中获得的总奖励(考虑折扣后)。通过多次试验,计算所有样本的平均值,就得到了状态(1,1)的效用估计。
2.3 直接效用估计的局限性
直接效用估计虽然简单,但有一个关键问题:它忽略了状态之间的依赖关系。实际上,状态的效用依赖于后续状态的效用。根据贝尔曼方程,U^π(s) = Σ_{s'} P(s'|s, π(s))[R(s, π(s), s') + γU^π(s')],这意味着状态的效用不仅取决于当前奖励,还取决于后续状态的效用。
直接效用估计忽略了这种依赖关系,将每个状态独立处理,就像假设"这条路的价值只取决于这条路本身,不取决于它通向哪里"。这导致学习效率低,需要更多的试验才能收敛,因为它在搜索一个比必要更大的假设空间。
三、自适应动态规划
3.1 自适应动态规划的思想
自适应动态规划(Adaptive Dynamic Programming, ADP)是一种更聪明的方法:智能体学习状态的转移模型,然后使用动态规划来解决相应的马尔可夫决策过程(MDP),从而利用状态效用之间的约束。
这就像你不仅记录"这条路通向哪里",还学习"从这条路走,会以什么概率到达哪些地方",然后使用这些信息来计算"这条路的价值"。这样可以利用状态之间的依赖关系,提高学习效率。
3.2 学习转移模型
在完全可观察的环境中,学习转移模型很简单:这是一个监督学习任务,输入是状态-动作对(s, a),输出是后续状态s'。转移模型P(s'|s, a)可以用表格形式表示,通过累积计数直接估计。
例如,在状态(3,3)执行"向右"动作,观察4次,其中2次到达(3,2),2次到达(4,3),那么P((3,2)|(3,3), Right) = 1/2,P((4,3)|(3,3), Right) = 1/2。通过不断观察和计数,智能体逐步学会环境的转移模型。
3.3 使用动态规划求解
一旦学会了转移模型和奖励函数,就可以将它们代入贝尔曼方程,求解每个状态的效用。对于固定策略,这些贝尔曼方程形成一个线性方程组,可以用线性代数包求解。
另一种方法是"修改的策略迭代":每次模型更新后,使用简化的价值迭代过程更新效用估计。这种方法通常更快,因为模型的变化通常很小,之前的效用估计可以作为好的初始值。
3.4 自适应动态规划的优势和局限
自适应动态规划的优势是:它利用状态之间的约束关系,学习效率高,收敛快。通过学会转移模型,智能体可以"思考"所有可能的结果,而不仅仅是观察到的结果。
但自适应动态规划也有局限性:它受限于学习转移模型的能力。对于大的状态空间(比如西洋双陆棋有10^20个未知数),学习完整的转移模型变得不切实际。而且,每次模型更新都需要重新计算效用,计算成本较高。
四、时序差分学习
4.1 时序差分学习的思想
时序差分学习(Temporal Difference Learning, TD)是另一种方法:它不直接求解贝尔曼方程,而是使用观察到的转移来更新观察到的状态的效用,强制它们满足约束方程。
这就像你每次走一步,就立即更新"上一步的价值估计",让它与"这一步的价值估计"保持一致。你不需要等到试验结束,也不需要学习完整的转移模型,只需要在每一步都进行小的调整。
4.2 时序差分更新规则
时序差分学习的更新规则是: U π ( s ) ← U π ( s ) + α [ R ( s , π ( s ) , s ′ ) + γ U π ( s ′ ) − U π ( s ) ] U^π(s) ← U^π(s) + α[R(s, π(s), s') + γU^π(s') - U^π(s)] Uπ(s)←Uπ(s)+α[R(s,π(s),s′)+γUπ(s′)−Uπ(s)],其中α是学习率参数。这个公式的意思是:将状态的效用估计向"当前奖励加上后续状态折扣效用"的方向调整。
这个更新规则中的项R(s, π(s), s') + γU^π(s') - U^π(s)被称为"时序差分误差"(TD error),表示"当前估计与观察到的结果之间的差异"。更新旨在减少这个误差,让估计更准确。
4.3 时序差分学习的优势
时序差分学习的优势是:它简单,每次观察只需要少量计算,不需要转移模型。它可以在线学习,每走一步就更新一次,不需要等到试验结束。这使得它特别适合实时学习场景。
时序差分学习与自适应动态规划有密切关系:两者都旨在实现效用估计的局部一致性。区别在于:时序差分只基于观察到的后续状态进行调整(方程22-3),而自适应动态规划基于所有可能的后续状态进行调整,按概率加权(方程22-2)。当时序差分对许多转移进行平均时,这种差异会减小。
另一个关键区别是:时序差分每次观察的转移只进行一次调整,而自适应动态规划进行尽可能多的调整,以保持效用估计U和转移模型P之间的一致性。这使得自适应动态规划学习更快,但计算成本更高。
4.4 时序差分学习的收敛性
如果学习率α是访问状态次数的递减函数(如图22-4所示),U^π(s)将收敛到正确值。这意味着:状态被访问得越多,学习率越小,更新越谨慎,最终收敛到真实值。
时序差分学习的学习曲线显示:在4×3世界问题中,经过大约100次试验,效用估计就能收敛到接近真实值。对于很少被访问的状态(如(2,1)和(3,2)),它们分别在第14次和第23次试验才被"发现"连接到+1退出状态,说明探索的重要性。
五、三种方法的比较
5.1 学习效率
直接效用估计的学习效率最低,因为它忽略了状态之间的依赖关系,需要更多的试验才能收敛。自适应动态规划的学习效率最高,因为它利用状态之间的约束关系,可以快速收敛。时序差分学习的学习效率介于两者之间,它不需要完整的转移模型,但仍然利用状态之间的依赖关系。
5.2 计算成本
直接效用估计的计算成本最低,只需要记录和平均奖励。时序差分学习的计算成本较低,每次观察只需要一次更新。自适应动态规划的计算成本最高,需要学习转移模型,并在每次模型更新后重新计算效用。
5.3 适用场景
直接效用估计适合状态空间小、状态之间依赖关系弱的场景。自适应动态规划适合状态空间中等、可以学习转移模型的场景。时序差分学习适合状态空间大、无法学习完整转移模型的场景,或者需要在线学习的场景。
5.4 实际应用
在实际应用中,时序差分学习是最常用的方法,因为它平衡了学习效率和计算成本。它不需要完整的转移模型,可以在线学习,适合大规模、复杂的环境。自适应动态规划适合可以学习转移模型、需要快速收敛的场景。直接效用估计很少单独使用,通常作为其他方法的基准。
六、被动学习的实际意义
6.1 为主动学习打基础
被动学习是主动学习的基础。通过被动学习,智能体学会了"评估状态",知道了"哪些状态好,哪些状态不好"。这是后续主动学习(选择最优动作)的基础。只有知道了状态的价值,智能体才能选择能到达高价值状态的动作。
6.2 理解环境
被动学习帮助智能体理解环境。通过观察和更新,智能体逐步学会环境的转移模型(在自适应动态规划中)或状态价值(在时序差分学习中)。这种理解是后续决策的基础。
6.3 评估策略
被动学习可以用来评估策略。给定一个策略,智能体可以通过被动学习来评估"这个策略有多好"。这对于策略改进和策略搜索非常重要。
七、总结
被动强化学习是智能体在固定策略下,通过观察环境反馈学习状态价值函数的过程。它的核心在于:智能体不需要决定"应该做什么",只需要学习"当前状态有多好"。
被动强化学习有三种主要方法:直接效用估计(简单但效率低)、自适应动态规划(高效但需要转移模型)、时序差分学习(平衡效率和成本)。每种方法都有其适用场景和优缺点。
记住:被动学习是主动学习的基础。只有学会了评估状态,智能体才能选择最优动作。通过理解被动学习的原理和方法,我们可以更好地应用强化学习来解决实际问题。
参考:《人工智能:现代方法(第四版)》