4 马尔可夫决策过程-下
category
type
status
slug
date
summary
tags
password
icon
希望是件美好的事,也许是人间至善。
—《肖申克的救赎》
🏰代码及环境配置:请参考 环境配置和代码运行!
4.8 蒙特卡罗方法求解MDP
4.8.1 蒙特卡罗方法定义
蒙特卡罗方法(Monte-Carlo methods)是一种基于随机抽样的计算方法,它通过模拟随机过程来解决数学、物理和工程中的各种问题。这种方法的核心思想是利用随机数(或伪随机数)来近似那些难以用解析方法求解的问题。在蒙特卡罗方法中,通过大量随机样本的生成和统计分析,可以估计出复杂系统的数量特征,如积分值、概率分布等。
蒙特卡罗方法的基本步骤包括:
- 定义问题的数学模型,包括输入随机变量的概率分布。
- 生成输入随机变量的随机样本。
- 对每个样本,计算其对应的输出结果。
- 统计所有样本的输出结果,得到问题的近似解。
- 评估近似解的精度,如通过标准差、置信区间等统计量。
一个简单的例子是用蒙特卡洛方法来计算圆的面积。例如,在下图 所示的正方形内部随机产生若干个点,细数落在圆中点的个数,圆的面积与正方形面积之比就等于圆中点的个数与正方形中点的个数之比。如果我们随机产生的点的个数越多,计算得到圆的面积就越接近于真实的圆的面积。
4.8.2 蒙特卡罗方法在MDP中的应用
在马尔可夫决策过程(MDP)中,蒙特卡罗方法被用于求解策略评估和策略提升问题。蒙特卡罗方法在MDP中的应用主要体现在以下几个方面:
- 策略评估:在给定一个策略的情况下,使用蒙特卡罗方法估计该策略的价值函数。这通常通过模拟多个完整的episode(从初始状态到终止状态的完整路径)来实现,每个episode的回报(return)被用来更新状态的价值估计。蒙特卡罗方法可以采用首次访问(first-visit)或每次访问(every-visit)策略来进行价值估计。
- 策略提升:在策略提升阶段,蒙特卡罗方法被用于发现最优策略。这通常涉及到探索-利用权衡,即在探索新的动作以发现更好的策略和利用已知信息选择当前最优动作之间进行平衡。蒙特卡罗方法可以通过ε-贪心策略或其他探索机制来实现这一目标。
- 无模型学习(Model-Free Learning):蒙特卡罗方法不需要MDP的转移概率模型,它直接从与环境的交互中学习。这种方法特别适用于那些状态空间和动作空间很大,或者转移概率难以建模的情况。
- 增量学习和收敛性:蒙特卡罗方法可以增量地更新价值估计,随着模拟episode数量的增加,价值估计会逐渐收敛到真实值。这种方法的收敛性可以通过大数定律来保证。
- 方差缩减技术:为了提高蒙特卡罗方法的效率,可以采用多种方差缩减技术,如控制变量法、条件蒙特卡罗方法和重要性采样等。这些技术通过减少样本估计的方差,加速了学习过程。
综上所述,蒙特卡罗方法为解决MDP中的策略评估和策略改进问题提供了一种有效的工具,尤其适用于那些模型未知或难以建模的复杂决策问题。通过随机抽样和统计分析,蒙特卡罗方法能够在不需要精确转移概率的情况下,从实际经验中学习并发现最优策略。
4.8.3 蒙特卡罗策略评估
- 策略评估目标
在强化学习中,蒙特卡罗策略评估的目标是在给定一个确定性策略的情况下,估计该策略下的状态价值函数。状态价值函数表示从特定状态开始,遵循策略,所期望获得的累积折扣回报的期望值。策略评估不涉及策略的改进,其核心是预测在当前策略下的性能,为后续的策略改进提供依据。
- 策略评估过程
蒙特卡罗策略评估过程涉及以下步骤:
- 初始化:为每个状态初始化价值估计和访问次数。
- 模拟:根据策略模拟一系列完整的episode,每个episode从初始状态开始,经过一系列状态-动作对,直到达到终止状态。
- 回报计算:对于每个episode,计算从某一状态开始到终止状态的累积折扣回报。
- 价值更新:根据样本平均回报更新状态的价值估计。具体来说,可以采用首次访问或每次访问方法来更新价值估计。
在模拟过程中,每步的决策都是根据当前策略确定的,而环境的响应(即下一个状态和奖励)则是根据环境的转移概率随机生成的。通过足够多的模拟,我们可以收集到关于状态价值的统计数据,并据此估计策略下的状态价值函数。
- 首次访问与每次访问方法
蒙特卡罗策略评估中的两种主要方法是首次访问(First-Visit)和每次访问(Every-Visit)。
- 首次访问方法:在这种方法中,只有当状态在episode中首次被访问时,其对应的回报才被用来更新状态的价值估计。这种方法的优点是每次更新都是基于新的信息,因此可以更快地收敛。然而,它可能不如每次访问方法那样稳定,因为它忽略了状态被多次访问时的信息。
- 每次访问方法:与首次访问方法不同,每次访问方法在每次状态被访问时,无论它是首次还是多次访问,都会更新其价值估计。这意味着每个状态的价值估计是基于所有访问的回报的平均值。虽然这种方法的计算量更大,但它通常能提供更稳定和准确的价值估计,尤其是在样本数量较少时。
在实际应用中,选择哪种方法取决于具体问题的特点和计算资源的限制。首次访问方法通常更适用于样本数量较多的情况,而每次访问方法则适用于样本数量较少的情况。此外,每次访问方法由于其稳定性和准确性,通常更受青睐。然而,首次访问方法由于其计算效率,对于需要快速估计的场景也是一个不错的选择。
4.8.4 蒙特卡罗策略提升
- 策略提升目标
蒙特卡罗策略提升的目标是找到最优策略,以最大化智能体的期望累积折扣回报。与策略评估不同,策略提升不仅需要评估给定策略的性能,还需要通过改进策略来提高其性能。在蒙特卡罗方法中,策略提升通常涉及到探索新的动作以发现更好的策略,同时利用已知信息选择当前最优动作。
- 探索机制
探索机制是蒙特卡罗策略提升中的关键组成部分,它确保智能体能够充分探索状态-动作空间,以发现更优的策略。探索机制通常包括以下几种方法:
- 随机探索:在每一步中,智能体以一定的概率随机选择一个动作,而不是总是选择当前最优动作。这种方法简单易实现,但可能导致探索效率低下。
- 系统探索:智能体根据某种策略系统地探索状态-动作空间,例如,通过确定哪些状态-动作对尚未被充分探索,然后优先探索这些对。
- 基于模型的探索:智能体利用对环境的模型知识来指导探索过程,例如,通过预测哪些动作可能导致高回报的状态转移。
在实际应用中,探索机制的选择取决于具体问题的特点和智能体的能力。例如,在状态-动作空间较大或模型未知的情况下,随机探索可能更为合适;而在模型已知且能够预测状态转移的情况下,基于模型的探索可能更为有效。
- ϵ-贪婪策略
ϵ-贪婪策略是一种常用的探索机制,它在探索和利用之间提供了一种平衡。在ϵ-贪婪策略中,智能体以1-ϵ的概率选择当前最优动作,以ϵ的概率随机选择一个动作。ϵ是一个介于0和1之间的参数,它控制了探索和利用之间的权衡。
- ϵ的设定:ϵ的值通常随着学习过程逐渐减小,以确保智能体在初期进行更多的探索,随着学习的进行逐渐转向利用。例如,ϵ可以从1开始,逐渐减小到0.1或更小。
- 动作选择:在每个状态下,智能体根据当前的动作价值估计来选择动作。如果当前状态下所有动作的价值估计都相近,ϵ-贪婪策略将倾向于探索;如果某个动作的价值估计明显高于其他动作,智能体将倾向于利用。
- 收敛性:随着模拟episode数量的增加,ϵ-贪婪策略下的智能体将逐渐收敛到最优策略。这是因为,随着样本数量的增加,动作价值估计的不确定性将逐渐减小,智能体将更有可能选择最优动作。
其中:
- 是在状态下选择动作的概率。
- 是一个介于 0 和1之间的小数,表示探索的概率。
- 是动作空间的大小, 即在状态下可供选择的动作总数。
- 是状态下执行动作的期望回报(即值)。
- 是选择使得值最大的动作 。
在实际应用中,ϵ-贪婪策略的性能受到ϵ值设定的影响。一个合适的ϵ值能够确保智能体在探索和利用之间取得良好的平衡,从而有效地学习最优策略。此外,ϵ-贪婪策略的实现简单,易于与其他蒙特卡罗方法结合使用,使其成为解决MDP问题的一种流行选择。
4.9 蒙特卡罗方法的实现
4.9.1 增量蒙特卡洛更新
增量蒙特卡洛更新是一种策略评估方法,它通过逐步积累经验来增量地改进状态价值的估计。这种方法的核心在于,它不需要存储完整的episode信息,而是在每个episode结束后立即更新价值估计,这样可以节省大量的存储空间,同时加快学习过程。
增量更新的关键在于如何高效地利用每个episode中的回报信息。在首次访问蒙特卡洛方法中,只有当状态在episode中首次被访问时,其对应的回报才会被用来更新价值估计。这种方法的优点是计算简单,易于实现,但它可能会因为忽略多次访问的信息而导致估计的方差较大。
为了解决这个问题,每次访问蒙特卡洛方法被提出。在这种方法中,每次状态被访问时,无论它是首次还是多次访问,都会更新其价值估计。这种方法可以提供更稳定和准确的价值估计,但它需要更多的计算资源,因为它需要在每次状态访问时都进行更新。
增量蒙特卡洛更新的另一个关键点是如何平衡探索和利用。在实际应用中,通常使用ϵ-贪心策略来实现这一目标。ϵ-贪心策略允许智能体以一定的概率ϵ随机选择动作,以探索未知的状态-动作对,同时以1-ϵ的概率选择当前最优动作,以利用已知的信息。通过调整ϵ值,可以在探索和利用之间取得平衡。
在实际实现中,增量蒙特卡洛更新通常采用以下步骤:
- 初始化状态的价值估计和访问次数。
- 对于每个episode,根据策略进行模拟,直到达到终止状态。
- 从终止状态开始,逆向计算累积折扣回报。
- 对于每个被访问的状态,更新其价值估计和访问次数。
- 重复步骤2-4,直到价值估计收敛或达到预定的模拟次数。
通过这种方法,可以逐步改进状态价值的估计,同时保持对策略的持续探索和利用。
4.9.2 蒙特卡罗树搜索(MCTS)
蒙特卡罗树搜索(MCTS)是一种结合了蒙特卡洛方法和树搜索策略的决策算法,它在处理具有大量状态和动作的MDP问题时表现出色。MCTS通过构建一棵树来表示可能的决策路径,并使用蒙特卡洛模拟来评估这些路径的潜在价值。
MCTS的基本步骤包括:
- 选择(Selection):从根节点开始,根据树策略选择最有前途的子节点,直到达到一个未被扩展的节点。
- 扩展(Expansion):在当前节点添加一个新的子节点,这个节点代表了一个新的状态-动作对。
- 模拟(Simulation):从新节点开始,进行一次或多次蒙特卡洛模拟,直到达到终止状态,以估计该节点的价值。
- 反向传播(Backpropagation):将模拟得到的回报反向传播回树中,更新沿途节点的价值估计。
算法伪代码如下:
- 上限置信区间算法(UCB)
MCTS的关键在于如何选择节点和如何进行模拟。在选择阶段,UCB(Upper Confidence Bound)公式被用来决定在搜索树中选择哪个节点进行扩展。UCB公式结合了利用(exploitation)和探索(exploration)两个方面,以平衡在已知好的动作和未知动作之间的选择。UCB公式的一般形式是:
其中:
- 是在状态下采取动作的平均奖励(或价值估计)。
- 是状态被访问的总次数。
- 是在状态下采取动作的次数。
- 是一个大于0的常数,用于控制探索的程度,较大的值会增加探索的倾向。
- 是自然对数。
该公式的第一项表示当前对动作在状态下的价值估计,反映了利用的部分。第二项 表示对该动作的不确定性的量化,反映了探索的部分。当一个动作被访问的次数 较少时,这一项会较大,使得该动作更可能被选中以进行探索。
在MCTS中,通常选择具有最高UCB值的动作进行扩展,这样可以确保算法既不会完全忽略那些尚未充分探索的有潜力的动作,也不会过度地探索那些已经证明不太有价值的动作。通过这种方式,MCTS能够在有限的搜索次数内有效地探索状态空间,并找到最优或近似最优的策略。
- 模拟策略
在模拟阶段,MCTS可以使用各种策略来进行。在棋类游戏中,通常使用快速走子策略来进行模拟,这种策略虽然简单,但能够有效地评估大量可能的走法。在其他类型的MDP问题中,模拟策略可能需要根据具体问题进行设计。
4.10 蒙特卡罗方法的优缺点
4.10.1 蒙特卡罗方法的优势
蒙特卡罗方法在解决马尔可夫决策过程(MDP)问题时具有多项优势,使其成为研究和实践中的有力工具。
无需精确模型:蒙特卡罗方法不依赖于环境的精确转移概率模型,这意味着即使在环境动态未知或难以建模的情况下,也能够有效地学习和找到最优策略。这一特性在实际应用中极具价值,因为很多现实世界的问题难以用数学模型精确描述。
直接从经验中学习:蒙特卡罗方法通过模拟与环境的交互来直接学习策略,这使得它能够处理那些状态空间和动作空间非常大的问题。通过实际的试错,智能体可以学习到哪些动作在特定状态下能够带来最大的回报。
适用性广泛:蒙特卡罗方法适用于各种类型的MDP问题,包括有限和无限的、离散和连续的、确定性和随机的环境。这种广泛的适用性使得蒙特卡罗方法可以应用于从简单的赌博机问题到复杂的自动驾驶车辆决策等多个领域。
增量学习和收敛性:蒙特卡罗方法支持增量学习,智能体可以在与环境交互的过程中不断更新其对策略价值的估计。随着模拟次数的增加,价值估计会逐渐收敛到真实值,这为学习过程提供了理论保证。
方差缩减技术:为了提高学习效率,蒙特卡罗方法可以结合多种方差缩减技术,如重要性采样、控制变量法等。这些技术通过减少样本估计的方差,加速了学习过程,提高了估计的准确性。
易于实现和并行化:蒙特卡罗方法的算法相对简单,易于编程实现。此外,由于每个模拟episode都是独立的,蒙特卡罗方法可以很容易地并行化,从而利用现代计算资源大幅度提高学习效率。
4.10.2 蒙特卡罗方法的局限性
尽管蒙特卡罗方法在MDP问题中有许多优势,但它也有一些局限性,这些局限性在特定情况下可能会影响其性能。
高方差:蒙特卡罗方法的一个主要缺点是高方差。由于其估计是基于随机样本的,特别是在样本数量较少时,价值估计可能会有较大的波动。这可能导致策略改进过程中的不稳定性,需要更多的模拟来减少方差,从而增加了计算成本。
计算成本:对于复杂的MDP问题,蒙特卡罗方法可能需要大量的模拟才能获得准确的价值估计。这在状态空间和动作空间很大时尤其明显,可能导致训练时间过长,无法满足实时或近实时决策的需求。
探索与利用的权衡:蒙特卡罗方法需要在探索新的动作和利用已知信息之间进行权衡。如果探索不足,智能体可能会陷入局部最优;如果利用过度,智能体可能会错过更好的策略。找到合适的探索机制是实现有效学习的关键,但这在实践中可能是一个挑战。
对初始策略的依赖:在策略改进阶段,蒙特卡罗方法的性能可能依赖于初始策略的选择。一个不佳的初始策略可能导致学习过程缓慢,甚至无法收敛到最优策略。
难以处理连续动作空间:虽然蒙特卡罗方法可以应用于连续动作空间的问题,但由于其基于离散样本的本质,这可能导致在连续空间中的探索效率低下。在这种情况下,可能需要更复杂的采样策略来有效地探索连续动作空间。
综上所述,蒙特卡罗方法在解决MDP问题时提供了一种强大的工具,尤其适用于模型未知或复杂的环境中。然而,其高方差和计算成本等局限性也需要通过精心设计和方差缩减技术来克服。在实际应用中,选择合适的蒙特卡罗变体和参数调整策略对于实现高效学习至关重要。
4.11 参考文献
上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...