强化学习数学基础学习(三)
前言
这次是蒙特卡洛方法
正文
蒙特卡洛方法(Monte Carlo,MC)
在强化学习(Reinforcement Learning, RL)中,蒙特卡洛方法是一类基于采样的学习方法,主要用于解决那些状态空间或动作空间过大,以至于无法使用动态规划方法的问题。蒙特卡洛方法通过模拟大量的随机经验(即,遵循某种策略与环境互动的序列),来估计价值函数。
换句话说,求解rl问题的时候,我们要么需要模型,要么需要数据,这次的mc就是基于数据的无模型方法(这个实际上可以可以分为蒙特卡洛方法和时序差分学习)
所以我们能列出:
蒙特卡洛方法的特点
- 全回报(Episodic):通常用于具有明确开始和结束的情境(即,episodic tasks)。
-
不需要知道环境的转移概率和奖励分布:蒙特卡洛方法是一种model-free的强化学习方法,这意味着它不需要事先知道环境的动态特性,即不需要知道状态转移概率和奖励分布。
-
通过大数据量的样本采样来进行估计:这种方法依赖于从实际的经验(即,episode)中收集大量的样本数据。通过这些样本,可以估计出价值函数或策略。
-
本质上是大数定律的应用:蒙特卡洛方法基于大数定律,该定律指出,当独立同分布的随机变量样本数量足够大时,样本均值会趋近于这些随机变量的真实期望值。在这里,每个episode可以看作是一个随机样本,而通过大量episode的平均回报来估计状态的价值。
-
将策略迭代中依赖于model的部分替换为model-free:在传统的动态规划(DP)方法中,需要知道环境模型来进行策略迭代。蒙特卡洛方法则通过采样来绕过这一需求,使得强化学习可以在没有环境模型的情况下进行。
蒙特卡洛算法步骤
-
初始化:
- 设置初始的价值函数V(s) 对于所有状态 s。
- 设置一个策略 π,可以是随机的或基于某些启发式的。
-
互动与采样:
- 使用策略 π 与环境互动,生成多个完整的episode(即,从开始状态到终止状态的序列)。
- 对于每个episode,记录状态、动作、奖励和后续状态。
-
回报计算:
- 对于每个episode,计算从每个状态开始到episode结束的回报 Gt。
- Gt 可以是简单回报(只考虑最终奖励),或者是折现回报(考虑未来奖励的折现和)。
-
更新价值函数:
- 对于episode中的每个状态 st,更新价值函数 V(st)。
- 更新规则通常是:
V(st)←V(st)+α(Gt−V(st))
- 其中 α 是学习率。
MC Exploring Starts
MC Exploring Starts 是蒙特卡洛强化学习中的一个概念,它是一种解决策略评估问题的方法,特别是在没有明确探索策略的情况下。这个方法的名称来源于它假设在每个episode的开始,智能体都以非零概率选择所有可能的动作,即“探索性起始”(Exploring Starts)。
基本思想
-
探索性起始:假设在每个episode的开始,智能体随机选择一个动作,而不是遵循某个特定的策略。这意味着所有状态-动作对都有机会被选中,从而确保了充分的探索。
-
策略评估:MC Exploring Starts 的目标是评估给定策略的价值函数,即计算在该策略下每个状态或状态-动作对的期望回报。
工作原理
-
初始化:为每个状态或状态-动作对初始化一个回报的计数器和一个回报的总和。
-
生成episodes:使用探索性起始生成多个episodes。在每个episode中,智能体从初始状态开始,根据当前策略和探索性起始的条件选择动作,直到达到终止状态。
-
记录回报:对于每个episode,记录从每个状态或状态-动作对开始的回报。
-
更新价值:当一个episode结束时,使用该episode中的回报来更新对应状态或状态-动作对的价值估计。具体来说,对于每个访问过的状态或状态-动作对,将其回报加到回报的总和中,并将计数器加一。然后,将回报的总和除以计数器得到平均回报,这作为该状态或状态-动作对的价值估计。
优势
- 不需要明确的探索策略:由于假设了探索性起始,因此不需要额外的探索机制,如ε-greedy策略。
局限
-
实际应用中的限制:在实际应用中,确保探索性起始可能是不现实的,因为这意味着智能体必须在每个episode的开始完全随机地选择动作,这在某些环境中可能是不安全的或不合适的。
-
收敛性:MC Exploring Starts 要求所有状态-动作对都有非零概率被选中,这对于确保算法的收敛性是必要的。如果某些状态-动作对从未被探索,那么它们的价值将无法被准确估计。
MC Exploring Starts 是蒙特卡洛方法的一个理想化版本,它为理解蒙特卡洛算法提供了一个理论框架,但在实际应用中,通常会采用其他探索策略来确保对所有可能的状态-动作对的探索。
MC ε-Greedy
MC ε-Greedy 是一种结合了蒙特卡洛(Monte Carlo, MC)方法和ε-Greedy 探索策略的强化学习算法。它主要用于解决强化学习中的策略评估和策略改进问题。
MC ε-Greedy 算法步骤
-
初始化:
- 对于所有的状态s和动作a,初始化一个计数器N(s, a)来记录(s, a)对被选中的次数,以及一个累加器Q(s, a)来记录在状态s下采取动作a所获得的总回报。
- 设置一个参数ε(通常是一个较小的正数,如0.1),用于控制探索和利用的比例。
-
生成Episodes:
- 对于每个episode,从初始状态开始,使用ε-Greedy策略选择动作:
- 以ε的概率随机选择一个动作。
- 以1-ε的概率选择当前估计的最优动作(即Q值最大的动作)。
- 执行选定的动作,观察环境反馈的下一个状态和奖励,直到达到终止状态。
- 对于每个episode,从初始状态开始,使用ε-Greedy策略选择动作:
-
记录回报:
- 对于每个episode,记录从开始到结束的每一步的状态、动作和奖励。
-
更新价值函数:
- 当一个episode结束后,使用该episode中的经验来更新动作值函数Q(s, a)。
- 对于episode中出现的每个(s, a)对,计算从该(s, a)对开始直到episode结束的回报G。
- 更新Q(s, a)的值为:Q(s, a) = Q(s, a) + (G - Q(s, a)) / N(s, a)。
- 同时,更新N(s, a)的计数:N(s, a) = N(s, a) + 1。
-
策略改进:
- 在每个状态s下,根据更新的Q值来选择最优动作,即贪婪地选择Q(s, a)最大的动作。
- 随着Q值的更新,策略也会逐渐改进。
尾声
这个挺好理解的