3.4 典型算法
在机器学习的应用中,一个可能采取的方案是人工增加训练集的大小,Dyna算法就属于这类。Dyna算法采取的是将预测模型类比地看成生成合成数据的学习方法,在下面两步之间迭代:首先是用当前的策略从与环境的交互中收集数据,用数据来训练转移概率模型;然后利用学习到的模型生成虚拟数据,并以此改进策略。可以看出,这类方法可以利用无模型方法在很多虚拟的数据上学习,而不是每次都需要在真实环境中交互。
基于模型的深度强化学习方法相对而言不那么简单直观,强化学习与深度学习的结合方式相对更复杂,设计难度更高。目前基于模型的深度强化学习方法通常用高斯过程、贝叶斯网络或概率神经网络(PNN)来构建模型,典型的如David Silver在2016年提出的Predictron模型。而Guided Policy Search(GPS)虽然在最优控制器的优化中使用了神经网络,但模型并不依赖神经网络[37]。
为了能够对环境模型进行更好的拟合,ME-TRPO(Model-Ensemble Trust-Region Policy Optimization)采取的做法是在转移概率模型部分使用集成学习方法,利用多个神经网络来进行学习;而在策略改善部分,则利用TRPO算法来更新策略[34]。SLBO(Stochastic Lower Bound Optimization)方法则是将ME-TRPO中使用的单步的L2 loss改成了两步的L2 loss,使得学习过程有了理论的保证[41]。MBMPO(Model-Based Meta-Policy-Optim zation)则是在ME-TRPO算法的基础上引入了元学习(Meta-Learning)算法的概念,将集成的每一个模型都当成一个任务来处理,可以更快地适应其他的环境,更加鲁棒[74]。
PILCO(Probabilistic Inference for Learning Control)方法,则是利用高斯过程来对环境进行建模,基于收集到的数据对f(s,a)进行拟合[17]。在策略学习上,PILCO的算法流程如Algorithm 4所示,同样采用策略梯度的方法来优化πθ。此外,还需要利用状态转移的概率模型和策略π,预测在策略π下后续的状态分布,以此来评估策略。
Algorithm 4 PILCO算法
初始化策略π
loop
执行策略π
得到(st,at,rt),收集样本
利用样本训练,学习转移概率模型f(st,at)
loop
使用π在建立的模型中进行模拟
计算损失函数
利用loss更新策略
end loop
end loop
但是,基于模型的方法还存在若干自身缺陷。首先,很多问题无法建模或者很难建模,这就使得这类方法完全无用。比如很多自然语言处理领域中的任务,有着大量不能被归纳成模型的任务。此时一般会先在环境交互中计算出初步模型,再为后续使用。但是这样的方式会面临复杂度高、很难使用的问题。目前有一些工作尝试利用预测学习来建立模型,一定程度上降低了建模的复杂度。其次,建模本身会带来误差,而且误差往往随着算法与环境的迭代交互越来越大,使得算法难以保证收敛到最优解。如果模型本身误差很大,显然后面基于模型所做的优化也难以有好的结果。最后,不同场景的属性有很大的不同,甚至物理特性就完全不同。比如一个搜索场景下的模型肯定与自然语言处理任务下的模型不同,也就是说模型不具有通用型,当场景变化时,需要重新建模。因为一系列的难点,目前深度强化学习领域内发展较好的仍然是无模型方法,后面也将重点介绍这部分的一些算法。