许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  基于模型的强化学习与Dyna2算法

基于模型的强化学习与Dyna2算法

阅读数 133
点赞 0
article_banner

在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Policy Based RL),本篇我们讨论最后一种强化学习流派,基于模型的强化学习(Model Based RL),以及基于模型的强化学习算法框架Dyna。

基于价值的强化学习模型和基于策略的强化学习模型都不是基于模型的,它们从价值函数,策略函数中直接去学习。

而基于模型的强化学习则会尝试从环境的模型去学习,一般是下面两个相互独立的模型:一个是状态转化预测模型,输入当前状态s和动作a,预测下一个状态s′。另一个是奖励预测模型,输入当前状态s和动作a,预测环境的奖励r。即模型可以描述为下面两个式子,

𝑆𝑡+1∼𝑃(𝑆𝑡+1|𝑆𝑡,𝐴𝑡)𝑅𝑡+1∼𝑃(𝑅𝑡+1|𝑆𝑡,𝐴𝑡)       S  t + 1    ∼ P  (    S  t + 1     |    S t   ,   A t    )        R  t + 1    ∼ P  (    R  t + 1     |    S t   ,   A t    )    


如果模型P,R可以准确的描述真正的环境的转化模型,那么我们就可以基于模型来预测,当有一个新的状态S和动作A到来时,我们可以直接基于模型预测得到新的状态和动作奖励,不需要和环境交互。当然如果我们的模型不好,那么基于模型预测的新状态和动作奖励可能错的离谱。

从上面的描述我们可以看出基于模型的强化学习和不基于模型的强化学习的主要区别:即基于模型的强化学习是从模型中学习,而不基于模型的强化学习是从和环境交互的经历去学习。

假设训练数据是𝑆1,𝐴1,𝑅2,𝑆2,𝐴2,𝑅2,...,𝑆𝑇   S 1 , A 1 , R 2 , S 2 , A 2 , R 2 ,..., S T  ,我们可以转换成T-1组训练样本,

𝑆1,𝐴1→𝑆2𝑆2,𝐴2→𝑆3𝑆𝑇−1,𝐴𝑇−1→𝑆𝑇𝑆1,𝐴1→𝑅2𝑆2,𝐴2→𝑅3𝑆𝑇−1,𝐴𝑇−1→𝑅𝑇        S 1   ,   A 1   →   S 2         S 1   ,   A 1   →   R 2           S 2   ,   A 2   →   S 3         S 2   ,   A 2   →   R 3           S  T − 1    ,   A  T − 1    →   S T         S  T − 1    ,   A  T − 1    →   R T      


左边的训练样本一起组成了一个分类模型或密度估计模型训练集,输入状态和动作,输出下一个状态。右边的训练样本一起组成了一个回归模型训练集,输入状态和动作,输出动作奖励值。至此我们的强化学习求解过程和传统的监督学习算法没有太多区别了,可以使用传统的监督学习算法来求解这两个模型。当然还可以更简单,即通过对训练样本进行查表法进行统计𝑃(𝑆𝑡+1|𝑆𝑡,𝐴𝑡)  P( S  t + 1   |  S t , A t ) 概率和𝑅(𝑅𝑡+1|𝑆𝑡,𝐴𝑡)  R( R  t + 1   |  S t , A t ) 平均值,这样就可以直接预测,比使用模型简单。

虽然基于模型的强化学习思路很清晰,而且还有不要和环境持续交互优化的优点,但是用于实际产品还是有很多差距的。主要是我们的模型绝大多数时候不能准确的描述真正的环境的转化模型,那么使用基于模型的强化学习算法得到的解大多数时候也不是很实用。那么是不是基于模型的强化学习就不能用了呢?也不是,我们可以将基于模型的强化学习和不基于模型的强化学习集合起来,取长补短,这样做最常见的就是Dyna算法框架。

Dyna算法框架并不是一个具体的强化学习算法,而是一类算法框架的总称。Dyna将基于模型的强化学习和不基于模型的强化学习集合起来,既从模型中学习,也从和环境交互的经历去学习,从而更新价值函数和(或)策略函数。

Dyna算法框架和不同的具体的不基于模型的强化学习一起,可以得到具体的不同算法。如果我们使用基于价值函数的Q-Learning,那么我们就得到了Dyna-Q算法。我们基于Dyna-Q来看看Dyna算法框架的一般流程。

1. 初始化价值函数𝑄(𝑠,𝑎)  Q(s,a) 、奖励模型𝑅(𝑠,𝑎)  R(s,a) 和状态模型𝑃(𝑠,𝑎)  P(s,a)

2. for i to 最大迭代次数T

A.  当前状态s,以𝜀−𝑔𝑟𝑒𝑑𝑑𝑦  ε−greddy 策略依据当前的Q函数选择动作a

B.  执行动作a,得到下一状态s'和奖励r

C.  更新价值函数Q

𝑄(𝑆,𝐴)=𝑄(𝑆,𝐴)+𝛼[𝑅+𝛾max𝑎𝑄(𝑆′,𝑎)−𝑄(𝑆,𝐴)]  Q(S,A)=Q(S,A)+α[R+γ  max a  Q(S′,a)−Q(S,A)]


D.  使用样本𝑠,𝑎→𝑠′  s,a→s′ 更新状态模型𝑃(𝑠,𝑎)  P(s,a) ,使用样本𝑠,𝑎→𝑟  s,a→r 更新奖励模型𝑅(𝑠,𝑎)  R(s,a)

E.  for j=1 to 最大次数n:

a).    随机选择一个之前出现过的状态s, 在状态s上出现过的动作中随机选择一个动作a

b).    基于模型P(S,A)得到S′, 基于模型R(S,A)得到R

c).    更新价值函数Q

𝑄(𝑆,𝐴)=𝑄(𝑆,𝐴)+𝛼[𝑅+𝛾max𝑎𝑄(𝑆′,𝑎)−𝑄(𝑆,𝐴)]  Q(S,A)=Q(S,A)+α[R+γ  max a  Q(S′,a)−Q(S,A)]


从上面的流程可以看出,Dyna框架在每个迭代轮中,会先和环境交互,并更新价值函数和(或)策略函数,接着进行n次模型的预测,同样更新价值函数和(或)策略函数。这样同时利用上了和环境交互的经历以及模型的预测。

基于模型的强化学习一般不单独使用,而是和不基于模型的强化学习结合起来,因此使用Dyna算法框架是常用的做法。对于模型部分,我们可以用查表法和监督学习法等方法,预测或者采样得到模拟的经历。而对于非模型部分,使用前面的Q-Learning系列的价值函数近似,或者基于Actor-Critic的策略函数的近似都是可以的。

转载来自:

https://www.cnblogs.com/pinard/p/10384424.html

转载于:https://www.cnblogs.com/yijuncheng/p/10514491.html


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空