一、简介
强化学习算法主要可以分为两类:第一类是model free方法,能够免于对环境建模,直接通过和环境交互来学习到一个价值函数或者策略函数;第二类是model based 方法,需要通过和环境交互来对环境进行建模,然后再利用这个模型做出动作规划或者策略选择。相对来说,两种方法互有优劣,model free算法由于其简单实现和高渐进性能表现(asymptotic performance),在众多实验场景和游戏环境上已经取得了很大的成果,但是由于model free类方法是采样效率(sample efficiency)极低,导致需要大量和环境的交互。相对来说,model based算法对环境进行建模,拟合环境的动力学模型(dynamics model),采样效率较高。
这个对环境的建模的模型model,其实是显式的包含对于环境或者任务的知识(knowledge)的一个表征模型,一般来说两类包含的比较多:分别是转移模型(transition model)或者动力模型(dynamics model):St+1=Fs(St,At) ,以及奖励模型(reward model):Rt+1=F(St,At) 。一旦这个模型建模出来,就可以正常的融入和环境的交互以及策略的学习中,具体如下图所示:
图1 模型融入环境交互和策略学习示意图
在ICML2020的一篇tutorial[1]中,用这张图来对比model free和model based方法的区别:
具体来说,基于模型的强化学习方法,在内部可以分为两个阶段,怎么学和怎么用。如果模型已知,也就是如何用,总体上有两种方法:第一种policy based method,额外学出一个policy model去找到当前最好的action。第二种model predictive control(MPC),不去找一个依赖于当前状态的策略,每次需要决定action的时候,基于dynamics model 去逐步预测模拟和选择。(无论是哪种方法,都是靠model根据当前的state和action去预测下一步转移的state,这也是我们学这个model去代替真实交互的初衷,关键是拿到了预测的state之后如何去control)。
图2 model free和model based方法的区别
二、方法分类
假设已经拿到了初步训练好的world dynamics model,我们就可以根据model进行交互来对policy进行训练。根据训练方法的不同,model based RL主要可以分为四种方法:
- Dyna-style methods
- Analytical gradient
- Planning
- Model-based value expansion
Dyna类的方法的特点是可以将Model free的方法和world model结合,world model可以提供大量的模拟数据给model free的算法进行对policy的学习,属于一种显式的策略训练方法;Analytical类的方法的特点是利用了模型产生数据的可微性(differentiability),直接对trajectory的return进行优化来对策略进行训练;Planning类的方法是不显式的对策略进行训练,而是基于world model用简单的规划方法得到一系列动作,能够快速的迁移到相似的任务场景上;Model-based value expansion类的方法的特点是通过对动作价值或者状态价值更好的估计来减小world model和真实环境中的误差,能够控制模型的使用来平衡偏差和方差。
接下来我们从Dyna-style methods开始介绍。