强化学习笔记-免模型预测

免模型预测

有模型强化学习和免模型强化学习

在有模型强化学习中,智能体尝试先学习环境模型,该模型可以是环境的动态或奖励函数。换句话说,给定一对状态-动作,它可以预测下一个状态或产生的奖励。利用这个环境模型,智能体可以计划最佳的行动策略,例如通过模拟可能的未来状态来预测哪个动作会导致最大的累积奖励。模型强化学习的优点是可以在不与真实环境交互的情况下进行学习,因此可以节省实验的成本。但缺点是,这种模型往往难以精确表现环境或者由于复杂度太高而难以学习和计算。
相比之下,免模型强化学习则直接学习在特定状态下执行特定动作的价值或优化策略。它直接从与环境的交互中学习,不需要建立任何预测环境动态的模型,即环境的状态转移概率是未知的。其优点是学习更为直接简单,并且不需要学习可能复杂的环境模型。然而,缺点是在学习过程中需要与真实环境进行大量的交互。除了动态规划之外,基础的强化学习算法都是免模型的。

强化学习方法优点缺点示例
有模型强化学习可以节省实验成本,因为学习可以在不与真实环境交互的情况下进行;可以计划最佳的行动策略,利用模型预测未来的状态和奖励,从而指导决策。模型往往难以精确表现环境或者难以学习和计算;当模型的复杂度变高时,计算成本会急剧增加。使用模型预测未来奖励值,例如基于模型的策略迭代方法、基于模型的价值迭代方法等,如在机器人仿真中使用有模型强化学习进行路径规划。
免模型强化学习直接从与环境交互的过程中学习,避免了建模的过程,从而降低学习的复杂度;不需要先认识环境,可直接学习特定动作的价值或优化策略。在学习过程中需要与真实环境大量交互,需要消耗时间和金钱等资源;没有明确的环境模型,仅能通过直接尝试来学习,因此样本效率低下。基于价值函数的方法,例如Q-learning、SARSA等免模型算法,在很多领域都得到了应用,例如机器人控制和棋类游戏等。

蒙特卡洛模拟

蒙特卡罗模拟是一种使用随机数和概率统计方法来解决复杂问题的模型建立和分析的过程。
蒙特卡罗模拟可以理解为运用大量随机事件进行多次试验,通过统计实验结果来分析大量数据或者确定物理或化学过程的真实性。在解决实际问题时,将需要获得很多观察数据,并通过这些数据找到模型参数或实现一些预测。

蒙特卡洛方法的思路是我们可以采样大量的轨迹,对于每个轨迹计算对应状态的回报然后取平均近似,称之为经验平均回报( empirical mean return)。根据大数定律,只要采样的轨迹数量足够多,计算出的经验平均回报就能趋近于实际的状态价值函数。当然,蒙特卡洛方法有一定的局限性,即只适用于有终止状态的马尔可夫决策过程。
根据不同的更新时机和样本使用情况,我们可以将蒙特卡洛方法进一步分类为首次蒙特卡洛方法和每次蒙特卡洛方法。

首次访问蒙特卡洛方法(first-visit Monte Carlo, FVMC)

首次蒙特卡洛方法是一种在第一次访问某一状态时进行价值函数更新的蒙特卡罗方法。具体来说,它利用一个 episode 中某一状态首次出现时的回报值作为该状态的估计值,并将该值与之前的估计值进行平均。这样可以得到更准确的状态估计值。因此,首次蒙特卡洛方法需要保证每个状态只被计算一次,以确保估计值的准确性。
请添加图片描述

每次访问蒙特卡洛方法(every-visit Monte Carlo, EVMC)

每次蒙特卡罗方法是一种在每次访问某一状态时进行价值函数更新的蒙特卡罗方法。具体来说,它利用所有 episode 中某一状态的回报值计算该状态的估计值,并将该值与之前的估计值进行平均。每次蒙特卡罗方法会对同一个状态进行多次更新,这样会增加估计的方差,但也能够让我们获得更多的数据进行分析。
实际更新价值函数的递进更新的方式:

旧估计值 + 步长 x 目标值 - 步长 x 旧估计值
新估计值

时序差分估计

时序差分估计(Temporal Difference Learning)能够在仅在线下进行补偿的情况下进行及时学习。
时序差分估计算法会将当前状态的估计值 V ( s t ) V(s_t) V(st)更新为当前状态的实际收益值与下一状态 s t + 1 s_{t+1} st+1的估计值的加权平均值。具体来说,时序差分估计算法通过以下更新规则动态调整状态值函数:
V ( s t ) ← V ( s t ) + α ( r t + 1 + γ V ( s t + 1 ) − V ( s t ) ) V(s_t) ← V(s_t) + α(r_{t+1} + γV(s_{t+1}) − V(s_t)) V(st)V(st)+α(rt+1+γV(st+1)V(st))
其中:
V ( s t ) V(s_t) V(st) 表示在状态 s t s_t st 的状态估计值。
r t + 1 r_{t+1} rt+1表示在 s t + 1 s_{t+1} st+1 状态获得的奖励。
γ 是折扣因子,代表当前状态对未来奖励的重要性。
α 是学习率,控制每次更新的幅度大小。
在每个时间步骤 t 上,该更新规则会根据当前状态以及后续状态的实际回报计算一个估计值,并将该估计值用于更新当前状态的价值函数估计。
在这个更新过程中使用了当前奖励和后继状态的估计,这是类似于蒙特卡罗方法的;但同时也利用了贝尔曼方程的思想,将下一状态的值函数作为现有状态值函数的一部分估计来更新现有状态的值函数。此外,时序差分还结合了自举( bootsprat)的思想,即未来状态的价值是通过现有的估计 r t + 1 + γ V ( s t + 1 ) r_{t+1} + γV(s_{t+1}) rt+1+γV(st+1)(也叫做时序差分目标)进行计算的,即使用一个状态的估计值来更新该状态的估计值,没有再利用后续状态信息的计算方法。

  • 24
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

star_w10086

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值