之前发表的关于强化学习的文章,无论是基于策略的还是基于价值的还是两者均兼顾的强化学习方法都没有涉及到具体的模型。
1. 无模型(Model-Free)的强化学习回顾
机器人在真实环境中互动学习,然后寻找到行动策略,然后学习优化策略。
2. 基于模型(Model-Based)的强化学习简介
模型就是对真实世界的模拟,在模型中学习就是在真实世界中建模,所以学习的环境变成了模型中的‘‘卡通’’世界。
当然学习模型只是基于模型的强化学习的重要步骤,完整的学习步骤可以归纳到下图:
第一步:从与真实世界互动的经历(Experience)中建立模型。
第二步:在模型中进行学习(可以使用MDP,TD等等所有之前使用的方法) 更新价值函数和策略。
第三步:用学到的价值函数和策略与真实世界进行互动并获得更多的经历。
2.1 基于模型的强化学习优缺点
优点:
- 可以使用熟悉的监督学习方法。
- 通过模型能够使机器人能够更加深入的理解环境,而不仅局限在最大化奖励本身,换句话说就是机器人能够通过模型具备一定的推理能力。
缺点
整个过程涉及到两个学习过程,一是对模型的学习,二是对价值函数的学习,两个学习都会引入数学近似从而带来双重近似误差。
2.2 模型的数学表示
模型M实际上就是对环境,MDP2.3 通过监督学习的方式建立模型
由于训练模型的样本来自真实世界的经历,于是可以通过监督学习的方式训练模型。
监督式学习的训练集:
X —> y:
从s, a 学习 r 的过程是一个回归问题(regression problem)
从s, a 学习 s' 的过程是一个密度估计问题(density estimation problem)
模型:
可以是查表式(Table lookup Model)、线性期望模型(Linear Expectation Model)、线性高斯模型(Linear Gaussian Model)、高斯决策模型(Gaussian Process Model)、和深信度神经网络模型(Deep Belief Network Model)等
训练方法:
选择一个损失函数,比如均方差,KL 散度等,优化参数η来最小化经验损失(empirical loss)。所有监督学习相关的算法都可以用来解决上述两个问题。
2.3 基于模型的规划(Planning)
在给定的模型M
η,Rη>,规划过程就是解决这个MDPη,Rη>的过程。
我们可以使用之前所讲到的各种方法,包括价值迭代,策略迭代,树搜索等等。
3. Dyna 算法
无模型的强化学习和基于模型的强化学习可以整合在一起吗?答案是肯定的,这就是Dyna算法
Dyna算法从实际经历中学习得到模型,然后联合使用实际经历和模拟经历一边学习,一边规划更新价值和(或)策略函数:
算法流程如下:
这个算法赋予了机器人在与实际环境进行交互式时有一段时间用来思考的能力。其中的步骤:a,b,c,d,和e都是从实际经历中学习,d过程是学习价值函数,e过程是学习模型。
在f步,给以机器人一定时间(或次数)的思考。在思考环节,个体将使用模型,在之前观测过的状态空间中随机采样一个状态,同时从这个状态下曾经使用过的行为中随机选择一个行为,将两者带入模型得到新的状态和奖励,依据这个来再次更新行为价值和函数。
个人体会:这是不是有点像监督学习里的使用假数据来丰富训练数据集?
3. 总结
强化学习的过程中出现了太多的名词,价值、策略、模型、基于价值、基于策略、无模型,基于模型,Actor Critic, 其实这些名词可以通过一张图来归类和总结:
首发steemit
欢迎关注我的微信公众号“tensor_learning”,一起学习,共同进步