该文是简单的知识点梳理,不能作为学习资料,请谅解
================强化学习和监督学习,无监督学习的联系=====
强化学习可以看作是一种特殊的监督学习,样本是s和a,标签是r。然而,标签r是很特殊的:r并不能称为我们判断动作a好坏的依据。因此,我们引入了未来价值的概念V(s)和Q(s,a),以此作为新的标签。但同时,V(s)和Q(s,a)并不是固定的,他们随策略而变化。
因此,就有了一般的强化学习的方法。1,固定策略,计算出该策略下的V(s)或Q(s,a),作为标签。2根据标签V(s)或Q(s,a)训练策略。3,1和2步反复迭代,得出最优策略。
=================强化学习的分类====================
强化学习可以分为两类:有模型的,以及无模型的
有模型的强化学习是指我们拥有环境的完美知识,即s(我们知道所有的状态),r(所有状态对应的回报),p(s|a)(我们知道对于任意的状态s,采取任意动作a后,我们所在的新的状态的概率 p(s|a) )
无模型的强化学习是指我们对于环境一无所知,即我们不知道s,r和p(s|a)
一般来说,对于智能体而言,动作空间a是已知的, γ 作为人类设定的超参数
=================有模型的学习=========================
有策略迭代和值迭代两种方法。
策略迭代的思路是:对于模型已知的问题,可以计算出给定策略的所有状态的未来价值V(s)。因此先1初始化一个策略,然后2计算每个状态的未来价值V(s),再3根据每个状态的未来价值V(s)修改策略。之后第2,3步骤反复进行,直到策略收敛到最优策略。
值得注意的是,使用策略迭代得到的未来价值函数V(s),是真实的。
值迭代的思路是:同样对于模型已知的问题,值迭代用到了这个事实,即对于任何状态,最优策略一定会往未来价值最高的状态移动。因此,值迭代的步骤是:1初始化各个状态的未来价值函数,2对于任意状态s,选择附近未来价值最大的状态 s‘ 作为动作的目标(a:s-> s‘ ),并根据V( s‘ )的值更新V( s ),3反复进行步骤2,直到各个状态的未来价值变化速度很小之后,得到最优策略。
值得注意的是,值迭代得到的未来价值函数V(s)是不真实的,是高估的。
=================无模型的学习========================
无模型学习有两种基本方法:蒙特卡罗方法和TD方法
蒙特卡罗方法
对于无模型的学习,智能体没有环境的知识,因此探索环境的必须的。无模型的蒙特卡罗方法,总体上讲就是加入了探索的动态规划方法。
首先1初始化策略(或者值函数),并使用该策略探索环境,生成若干条动作序列。2对于动作序列中的各个状态s,可以计算在该策略下对应的未来价值V(s)。如果探索是充分的,即我们得到的序列反复覆盖了任意状态s,就可以认为V(s)的均值是V(s)的较好的估计。3根据各个状态的V(s)更新策略(或跟新值函数)。4反复进行第2,3步骤。
如果状态空间是连续的,估计V(s)是无助于我们获得策略的(我们不能通过遍历所有动作的V值来选择最优的动作)。因此,我们需要估计动作值函数Q(s,a),估计的方法同上。
实际中,我们并不需要等到获得足够多的样本后(反复覆盖所有的状态-动作对,这是不现实的),再更新策略。
总体上,蒙特卡罗方法使用探索得到的序列,计算相应的值函数。与有模型的动态规划算法相同,蒙特卡罗方法既可以使用策略迭代也可以使用值迭代方法。
TD方法(Temporal-Difference)
TD方法用到了这个事实: