强化学习  

一、强化学习定义

  1.强化学习就是程序或智能体(agent)通过与环境不断地进行交互学习一个从环境到动作的映射,学习的目标就是使累计回报最大化。

  2.强化学习是一种试错学习,因其在各种状态(环境)下需要尽量尝试所有可以选择的动作,通过环境给出的反馈(即奖励)来判断动作的优劣,最终获得环境和最优动作的映射关系(即策略)。

 二、基本组件(以吃豆子游戏为例)

      

 

 

1.agent:大嘴小怪物

2.环境:整个迷宫中的所有信息

3.奖励:agent每走一步,需要扣除1分,吃掉小球得10分,吃掉敌人得200 分,被吃掉游戏结束动作:在每种状态下,agent能够采用的动作,比如上下左右移动 

三、目标

策略:在每种状态下,采取最优的动作
学习目标:获得最优的策略,以使累计奖励最大(即Score) 

四、马尔可夫决策过程(MDP)

马尔可夫决策过程(Markov Decision Process)通常用来描述一个强化学习问题                                              

 

智能体agent根据当前对环境的观察采取动作获得环境的反馈,并使环境发生改变的循环过程。

MDP 基本元素:

s∈S:有限状态state集合,s表示某个特定状态; a∈A:有限动作action集合,a表示某个特定动作;

T(S, a, S’)~Pr(s’|s,a): 状态转移模型, 根据当前状态s和动作a预测下一个状态s,这里的Pr表示从s采取行动a转移到s’的概率;

R(s,a):表示agent采取某个动作后的即时奖励,它还有 R(s,a,s’), R(s) 等表现形式;

Policy π(s)→a: 根据当前state来产生action,可表现为a=π(s)或 π(a|s) = P(a|s),后者表示某种状态下执行某个动作的概率。

值函数:

状态值函数V表示执行策略π能得到的累计折扣奖励:                                                                                                                                     

整理之后可得

    

状态动作值函数Q(s,a)表示在状态s下执行动作a能得到的累计折扣奖励

      

整理之后可得:

     

 最优值函数: 

     

最优控制 :

在得到最优值函数之后,可以通过值函数的值得到状态s时应该采取的动作a:
    

      

       

 

 五、Q-learning

蒙特卡洛强化学习

       在现实的强化学习任务中,环境的转移概率、奖励函数往往很难得知,甚至很难得知环境中有多少状态。若学习算法不再依赖于环境建模,则称为免模型学习,蒙特卡洛强化学习就是其中的一种。       

      蒙特卡洛强化学习使用多次采样,然后求取平均累计奖赏作为期望累计奖赏的近似。<s0,a0,r1,s1,a1,r2,…,sT-1,aT-1,rT,sT>

蒙特卡洛强化学习:直接对状态动作值函数Q(s,a)进行估计,每采样一条轨迹,就根据轨迹中的所有“状态-动作”利用下面的公式对来对值函数进行更新。

               

 

每次采样更新完所有的“状态-动作”对所对应的Q(s,a),就需要更新采样策略π。但由于策略可能是确定性的,即一个状态对应一个动作,多次采样可能获得相同的采样轨迹,因此需要借助ε贪心策略: 

             

蒙特卡洛强化学习算法需要采样一个完整的轨迹来更新值函数,效率较低,此外该算法没有充分利用强化学习任务的序贯决策结构。 

Q-learning算法结合了动态规划与蒙特卡洛方法的思想,使得学习更加高效。 

假设对于状态动作对(s,a)基于t次采样估算出其值函数为: 

               

在进行t+1次采样后,依据增量更新得到:

            

然后,将 1/t+1 替换成系数α(步长),得到:

            

以γ折扣累计奖赏为例:

                

则值函数的更新方式如下:

           


Q-learning算法流程