我们之前的讲解分为两部分,一个是直接从经验数据中学习值函数,一个是基于策略函数方法,直接从经验数据学习策略。而这节中主要介绍如何从经验数据直接学习模型,通过这个产生一系列模拟数据,在基于这些数据学习最优值函数或者最优策略。
学习和规划是强化学习的两大类方法。学习针对的是环境模型未知的情况下,智能体通过与环境交互,从产生的真实数据直接学习值函数或者策略。由于没有拟合环境模型,所以要想对环境有更加准确的感知,就需要与环境不断的交互,产生大量的数据。而这个交互需要的数据少则几万次,多的话就是几百万的量级,如此多的交互使得无模型强化学习率很低,难以应用到实际物理世界。但是此类算法有一个很好的性质,渐进收敛。也就是说经过无数次的交互,无模型的强化学习总可以得到最优解。
规划指的是智能体不与环境发生交互,而是想办法构建一个环境模型,利用其构建的环境模型产生模拟数据,依此求解值函数或者策略。规划数据基于模型的方法。此类方法可以通过监督学习来拟合模型,模型一旦拟合出来,智能体就可以根据模型来推断智能体从未访问过的状态行为。智能体与环境之间交互次数急剧减少。可见,基于模型的方法效率很高。但是因为在拟合模型会引入偏差,再加上值函数逼近带来的二次误差,所以此方法不能保证渐进收敛。
Dyna
Dyna同时集成了基于模型的规划和无模型的学习。先与环境交互,产生经验数据,第二步通过学习经验数据,构建环境模型。第三步利用模型,产生模拟数据,求取值函数,对行为进行优化。第四步采用优化后的动作与现实环境交互。
模型拟合
已知一个MDP模型可以表示为M=<S,A,P,R>。假定状态空间S和行为空间A已知。则模型M可以进一步简化。M=<Pη,Rη>,其中Pη为状态转换函数,Rη为回报函数,通过上式将M表示为η相关的函数。
St+1∼Pη(St+1∣St,At)Rt+1∼Rη(Rt+1∣St,At)
通常假定,状态转移函数和回报函数条件独立
P(st+1,rt+1∣st,at)=P(st+1∣st,at)P(rt+1∣st,at)
监督式学习的构建模型
从经验数据中学习模型,假设监督式的训练
s1,a1−>r2,s2s2,a2−>r3,s3
训练集的每一行都是一个状态转换数据。求取状态转换函数Pη的问题是一个密度估计问题。求取回报函数Rη的问题是一个回归问题。选择一个损失函数表示预测值和真实值的差距。采用相应的优化方法。
所有监督学习相关算法都可以用来解决上述两个问题,根据使用算法的不同,可以有如下的模型,查表模型,线性期望模型,线性高斯模型和高斯决策模型和神经网络模型。
需要注意的是学习模型并不是以轨迹为最小的学习单位,而是以时间步作为最小学习单位,一次学习一个状态转换。
利用模型进行优化
理解模型拟合, 规划就简单啦,规划的过程相当于解决一个MDP的个过程。即给定一个模型M求解这个模型,找到基于该模型的最优价值函数,确定给定的状态s下的最优动作a.
模型存储转移概率Pη和回报函数Rη。手机规划过程中,模型不是把这个概率值传递迭代,而是将模型看成环境。利用这个虚拟环境产生状态转换。
有了这些虚拟数据,就可以使用无模型的强化学习方法来学习值函数和策略。
相应算法有Dyna-Q算法、Dyna-Q+算法、Dyna-2算法