强化学习(ReinforcementLearning)简介
它主要包含四个元素,环境状态,行动,策略,奖励,强化学习的目标就是获得最多的累计奖励。RL考虑的是智能体(Agent)与环境(Environment)的交互问题,其中的agent可以理解为学习的主体,它一般是咱们设计的强化学习模型或者智能体,这个智能体在开始的状态试图采取某些行动去操纵环境,它的行动从一个状态到另一个状态完成一次初始的试探,环境会给予一定的奖励,这个模型根据奖励的反馈作出下一次行动(这个行动就是当前这个模型根据反馈学来的,或者说这就是一种策略),经过不断的行动、反馈、再行动,进而学到环境状态的特征规律。一句话概括:RL的目标是找到一个最优策略,使智能体获得尽可能多的来自环境的奖励。
学习开始时往往采用随机策略进行实验得到一系列的状态、动作和奖励样本,算法根据样本改进策略,最大化奖励。由于奖励越来越大的特性,这种算法被称作增强学习。
Markovdecisionprocesses
马尔可夫性:系统的下一个状态仅与当前状态有关,而与历史状态无关。
此处的状态是指完全可观察的全部的环境状态
回报(Return)
值函数(ValueFunction)
强化学习的目标是学习到一个策略来最大化期望,即希望智能体执行一系列的动作来获得尽可能多的平均回报。为评估一个策略的期望回报,需要定义值函数.
根据马尔可夫特性,二者有如下关系:
贝尔曼方程(Bellmanequation)
计算状态值函数的目的是为了构建学习算法从数据中得到最优策略,每个策略对应着一个状态值函数,最优策略对应着最优状态值函数。
基于值函数的学习方法
由于值函数是对策略的评估,为不断优化直至选出最优策略,一种可行的方式是依据值函数选取策略更新的方式。常见的策略有两种:
分类
马尔科夫链过程
基于模型的强化学习方法(动态规划)的前提是知道环境的状态转移概率,但在实际问题中,状态转移的信息往往无法获知,由此需要数据驱动的无模型(model-free)的方法。
蒙特卡罗(MonteCarlo)方法
在无模型时,一种自然的想法是通过随机采样的经验平均来估计期望值,此即蒙特卡罗法。其过程可以总结如下:
在动态规划中,为保证算法的收敛性,算法会逐个扫描状态空间中的状态,计算值函数时用到了当前状态的所有后继状态的值函数。而蒙特卡罗利用经验平均估计状态的值函数,此处的经验是指一次试验,而一次试验要等到终止状态出现才结束,因此学习速度慢,效率不高。下图较直观展示了二者的不同。
动态规划:
在蒙特卡罗中,如果采用确定性策略,每次试验的轨迹都是一样的,因此无法进一步改进策略。为了使更多状态-动作对参与到交互过程中,即平衡探索和利用,常用ε-greedy策略来产生动作,以保证每个状态-动作对都有机会作为初始状态,在评估状态-动作值函数时,需要对每次试验中所有状态-动作对进行估计。
时序差分方法(TemporalDifference)
由于蒙特卡罗需要获得完整轨迹,才能进行策略评估并更新,效率较低。时序差分法结合了动态规划和蒙特卡罗,即模拟一段轨迹(一步或者几步),然后利用贝尔曼方程进行自迭代更新,如下图所示:
对该方法的通俗理解:你需要从A点出发,经过B点后到C点,你有两个路段(A-B,B-C)的估计用时,在一次实验中,经过A-B路段后得到一个准确用时,根据这个准确用时和B-C路段的估计用时即可得到新的全路段估计用时(即更新)。
上述例子体现了TD学习的主要原则:不必等到实验结束再沿着实验路径进行更新。
区别
蒙特卡罗使用的是值函数最原始的定义,即利用所有奖赏的累积和来估计值函数;动态规划和时序差分则利用一步预测方法来计算当前状态值函数,不同的是,动态规划利用模型计算后继状态,时序差分利用实验得到后继状态。
*************************************************************
强化学习的算法简介
(1)通过价值选行为:
Qlearning,Sarsa,DeepQNetwork
(2)直接选行为:
PolicyGradients
(3)想象环境,并从中学习:
ModelbasedRL
强化学习方法汇总--强化学习算法分类
分类一:
(1)不理解环境(Model-FreeRL)
代表方法--Qlearning,Sarsa,PolicyGradients
例如机器人在现实世界的探索只能按部就班一步一步等待现实世界的反馈,决定下一次的行动
(2)理解环境(Model-BasedRL)
为现实世界建模,Model-Based比Model-Free多出了一个虚拟环境,它采用的方式依然是Model-FreeRL中的方法Qlearning,Sarsa,PolicyGradients,它的优势就是可以通过想象预判接下来要发生的所有情况,然后根据所有情况中最好的一种进行采取下一步的策略,例如AlphaGo
分类二:
(1)基于概率(Policy-BasedRL)
是强化学习最直接的一种,它能通过感官分析所处的环境,直接输出下一步所采取的行动的概率,然后根据概率采取行动,所以每种行动都有可能被选中,只是可能性不同。
代表方法--PolicyGradients...
(2)基于价值(Value-BasedRL)
它输出所有动作的价值,然后根据最高价值来选择动作
代表方法--Qlearning,Sarsa...
相比Policy-BasedRL的方法,Value-BasedRL更为坚定,毫不留情,就选价值最高的,而对Policy-BasedRL来说即使概率最高也不一定被选择到。
对于连续的动作基于价值的方法是无能为力的。对于连续的动作确定其分布就能选择特定动作,这也是基于概率方法的优点之一。
(3)Actor-Critic--结合Policy-BasedRL与Value-BasedRL的优点
PolicyGradients...----(Actor)基于概率作出动作
Qlearning,Sarsa...----(Critic)给出动作的价值
结合基于概率(Policy-BasedRL)--PolicyGradients...与基于价值(Value-BasedRL)--Qlearning,Sarsa...创造出更有利的方法Actor-Critic
(Actor)基于概率做出动作,(Critic)对于做出的动作给出动作的价值,这样在原有的基础上加速了学习过程。
分类三:
(1)回合更新(Monte-Carloupdate)
每回合等待游戏结束再更新
代表方法--基础版PolicyGradients,Monte-CarloLearning...
(2)单步更新(Temporal-Differenceupdate)
每回合中的每一步都进行更新,这样就可以边玩边学习
代表方法--QLearning,Sarsa,升级版PolicyGradients...
分类四:
(1)在线学习(On-Policy)
必须本人在场,并且一定是本人边玩边学习
代表方法--Sarsa,Sarsa(λ)
(2)离线学习(off-Policy)
可以选择自己玩也可以选择看着别人玩,通过看着别人玩来学习别人的行为准则,它同样是从过往经验中学习,但是这些过往的经历没有必要自己经历,任何人的经历都能被学习,或者也不必要边玩边学习,可以白天先储存下来玩耍时的记忆,等到晚上再通过离线学习来学习白天的记忆。