本系列强化学习内容来源自对David Silver课程的学习 课程连接http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching.htmlhtml
以前接触过RL(Reinforcement Learning) 而且在组会学习轮讲里讲过一次Policy Gradient,可是因为基础概念不清,虽然当时懂了 但随后很快就忘。。虽然如今写这个系列有些晚(没有好好跟上知识潮流o(╥﹏╥)o),但但愿可以系统的从新学一遍RL,达到遇到问题可以自动想RL的解决方法的程度。。web
目录机器学习
1. 基础概念函数
1.1 强化学习为什么重要学习
1.2 agent和environmentspa
1.3 agent的组成和分类翻译
2. Markov Decision Process(MDP)3d
2.1 Markov Reward Process(MRP)htm
2.2 Markov Decision Process(MDP)blog
2.3 Optimal Policy求最优解
2.4 Partial Observable Markov Decision Process(POMDP)
1、 基础概念
强化学习为什么重要?
由于它的原理 在全部学科中都有应用(下图左),DeepMind与哈佛大学最新研究也证实,人脑中存在“分布强化学习”,奖励为多巴胺(表示surprise的信号)。而且,RL和监督/无监督学习一块儿构成机器学习(下图右),它的“supervisor”是一个会延迟反应的cumulative reward(总回报)。
强化学习过程:
主要包含Agent和Environment两个主体,RL的过程在它们中展开(下图左):某时刻t,Agent观测环境Ot、根据本身所知的回报Rt、产生动做At,Environment接收到At后、时间前进成t+一、环境变换Ot+1、回报更新Rt+1。这个过程序列就叫history,某个时刻状态 就叫State(分红Set和Sat)。
Sat能够经过Ht得出(Sat=f(Ht)),而且若是P[St+1|St] = P[St+1|S1,...,St],即获得了St后能够把以前的history都丢掉 当前状态只与前一状态有关,状态St就是Markov的。
Set不必定可知,若是fully observable可知 则:Ot=Sat=Set,这是一个Markov decision process(MDP),也是课程的大部份内容;若是partial observable部分可知 则:Sat != Set, 这是一个Partial observable MDP(POMDP),此时agent必需要构建本身状态的表达,能够是来自history, 能够是对环境的预测
,能够是RNN
。。。
Agent的组成和分类:
Agent可能包含如下一个或者多个部件:policy,value function,model。
因此agent能够分红多类(上图右),对于policy和value function这两个来讲,用policy - Policy Based,用value function - Value Based,都用 - Actor Critic。对于model来讲,有model - Model Based,没有model - Model Free。
那么它们各自是什么呢?
policy和value function均可以达到决定在当前state下产生什么行为action的效果。policy(记π)是函数(包括deterministic:相同s相同a — a=π(s), 和stochastic:显示此s下出现某a的可能性 — π(a|s)=P[At = a | St = s])。 value function是每一个state的将来回报预测 即,这样就能选择action使其达到更优的state。
而model是agent对于环境下一步作什么的预测。包含下一步状态的预测P和对于immediate reward的预测R。
这样,agent经过不断和环境的交互,提高本身作决策的能力。squential decision making过程当中有两个基本问题,environment若是一开始unknown 则是RL,若是一开始known 则是planning。一个经常使用的强化学习问题解决思路是,先学习环境如何工做获得一个模型,而后利用这个模型进行规划。
强化学习也是一个不断试错的过程(trial-and-error learning),从而能够将这个学习过程分红exploration(探索更多environment信息)和exploitation(利用已有信息最大化reward)两部分。
也能够分红prediction和control两部分,prediction是预测按照当前policy走会有什么结果,control是更近一层,在多个policy中选取total reward最大的一个最优policy。
2、Markov Decision Process(MDP)
MDP之因此重要,是由于几乎全部RL问题均可以转换为MDP的格式<S,A,P,R,γ>,即一个时刻的状态,几乎能够彻底集成整个历史过程的信息,Markov性上面写过P[St+1|St] = P[St+1|S1,..., St]。
在学MDP前,最基本的是Markov Process(Chain),<S,P>组成,S是有限状态集,P是状态转移几率矩阵(见下图),每一行的几率和为1。
Markov Reward Process(MRP)
须要注意的是MRP和MDP的区别,MRP由<S,P,R,γ>组成,加了policy π后MRP格式改变成。与马尔科夫链相比,多了一个基于状态的回报函数R和一个∈[0,1]的discount factor γ(经济学上翻译做贴现系数)。
回报函数,是当前状态所得到的回报的数学指望(相似于取平均值)。前面写过RL中t+1是在agent作出action后发生的,仍旧是当前状态下,即意思是无论在这个状态下作什么action,Rs=Rt+1都必定的。
γ是一个将来对如今影响的数学上的表达,γ=0,彻底短视不考虑将来,γ=1,undiscount将来的全部状态都考虑。γ的加入主要是由于一是会削弱MP中环的影响,二是模型对将来的估计不必定准确。
因此总的discounted的回报Gt,,这里是求和的是在t时刻随机采样产生的一系列状态点。
根据Gt,value function能够换一种写法,相似于采样全部s状态下的Gt取平均值。
后来Bellman看到这个value function表达又作了化简(下图),便可以将value function看作immediate回报Rt+1和下一个状态的价值discount后的和,这就是Bellman Equation贝尔曼方程,能够写成的格式(v=R+γPv),此时是线性的能够解出
,求解复杂度O(n3),能够用线性规划和Temporal-Difference Learning等方法解。
Bellman Equation推导:
举例以下图的MP过程图中,每一个节点就表示当前状态s,里面数字是v(s)。好比v(s)=4.1的节点,求法是0.6*(-2+0.9*10)+0.4*(-2+0.9*1.9)=4.084,而且4.084≈4.1说明此时已经达到self-consistant状态。
Markov Decision Process(MDP)
马尔可夫决策过程相较于MRP多引入了action动做的因素,MDP的格式<S,A,P,R,γ>,今后P和R都加入了a的影响(见下图左),加了policy π(a | s)后,变成更通常的形式(见下图右):
而且除了以前的state-value function V(s),还加入了action-value function q(s, a)表示在状态s下采起动做a会获得什么回报:
Bellman一样对这两个value function作了化简,化简后的结果称为Bellman Expectation Equation:
其中,,是线性的,因此能够求解出
Bellman Expectation Equation推导过程(上下两式子结合起来看):
好比在下面这个例子中,7.4这个节点的v(s)更新方法以下 —— 如今已经self-consistant,每一个action默认几率相同。
Optimal policy求最优解
经过这些设定,就能够进行最优策略的求解,即control,多个policy中选取最优的一个,能够看作下面的式子。
当最优的action-value function得知后,就能够知道当前状态下应该选哪一个action,从而直接求出最优策略。至关于只要知道了action-value function 就什么都知道了:
这里Bellman又出现了,他化简上面对value function求解的式子,获得了一个更明了的表示叫作Bellman Optimality Equation:
意思是使用这个Bellman Optimality Equation,就能够获得state-value和action-value两个函数最优解,从而得到整个问题的最优策略,问题就能解决啦。
惋惜的是,因为过程当中涉及max,方程变得不可导了。所以求解的方法有value/policy iteration,Q-learning,SARSA等方法,将在以后的文章中介绍。
Partial Observable Markov Decision Process(POMDP)
部分可观测的马尔可夫决策过程,POMDP由<S, A, O, P, R, Z, γ>组成,其中O表示观测到的序列,Z是观测到的函数,以下面所示。Belief state b(h)是基于history h的状态几率分布,这里t时刻的history Ht = A0, O1, R1, ..., At-1, Ot, Rt。虽然很复杂,但是更现实啊。
POMDP能够被分解成history tree和belief tree,以下图:
可是更详细的内容课程里也没有介绍,以后感兴趣的话会专门补充的。。。。
总而言之,本文主要介绍了强化学习的基本思路过程,和问题的最优解是怎么寻找的。以后会继续写出寻找问题最优解的具体技术支持。嗯。。必定要坚持写下去啊٩( 'ω' )و ! 学习使我快乐,总结使我收获\(^o^)/,黑黑