参考
1.强化学习传说:第五章 基于模型的强化学习
2.基于模型的强化学习比无模型的强化学习更好?错
3.区分Model-free和Model-based方法
4.基于模型的强化学习方法学习得到的模型有哪些,具体形式是什么?
概述
此前学习的大多数算法其实都是属于Model Free RL的范畴,如Q-learning、Policy Gradient以及A3C、DDPG等等。这些无模型RL算法通过智能体与环境的交换来不断试错,对价值函数或策略函数进行估计,不对环境进行建模也能找到最优的策略。
Model Based RL,即基于模型的RL,则是通过交互得到的数据去拟合一个环境的模型(如状态转移概率P、奖励函数R等等)。通过对环境进行建模,就可以使用动态规划相关的算法在每一步执行最优动作了。
区分是否基于模型,参考资料3中给出了一个比较好的方法。“如果你想查看这个强化学习算法是model-based还是model-free的,你就问你自己这个问题:在agent执行它的动作之前,它是否能对下一步的状态和回报做出预测,如果可以,那么就是model-based方法,如果不能,即为model-free方法。”
流程
如果我们希望学习环境的状态转移模型,那么大致的思路就可以这样。
通过与环境交互得到的信息(st, at, rt, st+1),去学习一个模型f(st, at)并用其来预测st+1,而后根据预测模型f(st, at)来执行每一步的最优动作。我们的目标则是希望通过学习,使得模型的输出f(st, at)与真实的st+1之间的误差最小化,那么我们借助动态规划方法得到的策略便是最优的。
整个过程可以概括为:
- 通过某种策略(如随机策略),获得大量样本(st, at, rt, st+1)
- 学习模型 f(st, at),使得误差 (f(st, at) - st+1)^2 最小化
- 利用模型 f(st, at)结合动态规划策略,选择每一步的动作,得到的新数据继续用于步骤2中的训练