【强化学习-01】强化学习基本概念

  • Post author:
  • Post category:其他


本笔记整理自 (作者: Shusen Wang):


https://www.bilibili.com/video/BV1rv41167yx?from=search&seid=18272266068137655483&spm_id_from=333.337.0.0



概率基本概念



概率密度函数


probability density function


continuous distribution


在这里插入图片描述


Discrete distribution


在这里插入图片描述


概率密度加和为1


在这里插入图片描述


概率分布的期望


在这里插入图片描述



随机抽样

在这里插入图片描述

在这里插入图片描述

这里的

random sampling

在强化学习中使用的非常频繁。比如在选择下一个

action

的时候以及下一阶段的

state

的时候,就会经常用到

random sampling

.



强化学习基本概念



State, action

在这里插入图片描述


State



s

s






s






: 当前所处的状态,上图中就是这一帧的画面(

frame

),包括马里奥的位置,金币的位置,敌人的位置等


Action



a

a






a






:agent(智能体)可以选择的动作。

action




{

left, right, up

}

\in \{\text{left, right, up}\}















{




left, right, up



}





,其实这里还应该有个

stay



stay

也是一个动作


Agent

:发出动作的主体,动作是由谁做的谁就是agent



Policy



π

\pi






π





policy的意思就是根据观测到的状态。做出决策来控制agent运动

在数学上,Policy



π

\pi






π





是一个概率密度函数 ,满足




  1. π

    (

    s

    ,

    a

    )

    [

    0

    ,

    1

    ]

    \pi(s, a) \in [0,1]






    π


    (


    s


    ,




    a


    )













    [


    0


    ,




    1


    ]







  2. π

    (

    a

    s

    )

    =

    P

    (

    A

    =

    a

    S

    =

    s

    )

    \pi(a|s) = \mathbb{P}(A=a|S=s)






    π


    (


    a





    s


    )




    =









    P



    (


    A




    =








    a





    S




    =








    s


    )




注意:

大写表示是随机变量(random variable),小写表示观测值(observation)


给定状态



S

=

s

S=s






S




=








s





,下一步的具体动作



a

a






a





是随机抽样得到的,要有随机性

在这里插入图片描述



Reward


reward

通常需要我们自己来定义,reward定义的好坏非常影响强化学习的结果

注意,针对马里奥的游戏:尽量要把打赢游戏的奖励给的高一些,这样就不会总是吃金币。

在这里插入图片描述



State transition

状态转移:当前状态下,mario采取一个动作,游戏就会给一个新的状态。比如mario跳一下,游戏的下一个状态就不一样了



状态转移可以是确定的,也可以是随机的



状态转移的随机性是从环境(environment)中来的。

下图:goomba的移动概率是向左0.8,往右移动的概率为0.2

但是对于玩家而言,我们不知道goomba向左或者向右的概率,这个概率只有系统知道。

状态转移函数





p

(

s

s

,

a

)

=

P

(

S

=

s

S

=

s

,

A

=

a

)

\begin{aligned} p(s’|s,a) = \mathbb{P}(S’=s’|S=s, A=a) \end{aligned}
















p


(



s

























s


,




a


)




=





P



(



S
























=





s

























S




=




s


,




A




=




a


)
























在这里插入图片描述



Agent environment interaction

这里的environment就是游戏

State就是环境告诉我们的,可以看成是当前的游戏画面

在这里插入图片描述

agent在状态



s

t

s_t







s










t





















的情况下,做出动作



a

t

a_t







a










t





















(left, right, up),然后environment给出下一时刻的状态



s

t

+

1

s_{t+1}







s











t


+


1






















,并且给出相应的reward



r

t

r_t







r










t





















.

在这里插入图片描述



强化学习中的随机性

  1. Action的随机性:给定状态



    s

    s






    s





    ,下一个阶段的动作,是根据Policy



    π

    \pi






    π





    (这是一个概率密度函数)抽样得来的。

    在这里插入图片描述

  2. 状态转移的随机性:环境根据当前状态



    s

    s






    s





    和可选的action,用状态转移函数



    p

    p






    p





    计算出每个动作的概率,然后用随机抽样来决定下一步的action。

    在这里插入图片描述



Play the game using AI

在这里插入图片描述



Rewards and returns

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述




U

t

U_t







U










t





















跟未来的所有action和state都有关,因此是随机的。



Value functions



Action-Value function



Action-Value function


:





Q

π

(

s

t

,

a

t

)

=

E

[

U

t

S

t

=

s

t

,

A

t

=

a

t

]

Q_{\pi}(s_t, a_t)=\mathbb{E}[U_t|S_t = s_t, A_t = a_t]







Q











π



















(



s










t


















,





a










t


















)




=









E



[



U










t






















S










t




















=









s










t


















,





A










t




















=









a










t


















]










Q

π

(

s

t

,

a

t

)

Q_{\pi}(s_t, a_t)







Q











π



















(



s










t


















,





a










t


















)





是跟策略函数



π

\pi






π





以及状态



s

s






s





和动作



s

s






s





有关的,给定Policy



π

\pi






π





,State



s

s






s





, Action



a

a






a





,我们可以进行积分,获得



Q

π

(

s

t

,

a

t

)

Q_{\pi}(s_t, a_t)







Q











π



















(



s










t


















,





a










t


















)





。这里需要注意,实际上



Q

π

(

s

t

,

a

t

)

Q_{\pi}(s_t, a_t)







Q











π



















(



s










t


















,





a










t


















)





也是跟



s

t

+

1

,

s

t

+

2

,

s_{t+1}, s_{t+2}, \cdots







s











t


+


1



















,





s











t


+


2



















,










以及



a

t

+

1

,

a

t

+

2

,

a_{t+1}, a_{t+2}, \cdots







a











t


+


1



















,





a











t


+


2



















,










有关的,这个可以根据



U

t

U_t







U










t





















的定义可得。但是由于积分将这些全部消除,就只剩下了观测值



s

t

s_t







s










t

























a

t

a_t







a










t





















。如果



π

\pi






π





不一样,积分得到的



Q

π

(

s

t

,

a

t

)

Q_{\pi}(s_t, a_t)







Q











π



















(



s










t


















,





a










t


















)





也不一样。

在这里插入图片描述



Optimal action-Value function

最优动作价值函数,Optimal action-Value function与



π

\pi






π





无关,因为



π

\pi






π





已经被



max

\max






max





给消除了。

Optimal action-Value function



Q

(

s

t

,

a

t

)

Q^{*}(s_t, a_t)







Q






















(



s










t


















,





a










t


















)





可以用来对动作作评价。

有了



Q

(

s

t

,

a

t

)

Q^{*}(s_t, a_t)







Q






















(



s










t


















,





a










t


















)





,agent就可以利用



Q

(

s

t

,

a

t

)

Q^{*}(s_t, a_t)







Q






















(



s










t


















,





a










t


















)





来做动作了。

另外,

Q

值是对未来奖励总和的期望。

在这里插入图片描述



State-Value function




V

π

(

s

t

)

=

E

A

[

Q

π

(

s

t

,

A

)

]

V_{\pi}(s_t) = \mathbb{E}_{A}[Q_{\pi}(s_t, A)]







V











π



















(



s










t


















)




=










E












A



















[



Q











π



















(



s










t


















,




A


)


]





: 在given state



s

t

s_t







s










t





















之后,将下一步可以做的动作



A

A






A





作为随机变量,对



A

A






A





求积分,将



A

A






A





消掉

在这里插入图片描述

上面对



A

A






A





求期望,也就是



E

A

[

Q

π

(

s

t

,

A

)

]

\mathbb{E}_{A}[Q_{\pi}(s_t, A)]








E












A



















[



Q











π



















(



s










t


















,




A


)


]





的式子中,随机变量



A

A






A





是服从分布



A

π

(

s

t

)

A\sim \pi(\cdot|s_t)






A













π


(









s










t


















)





的,也就是given state



s

t

s_t







s










t





















。如果



a

a






a





是离散的,则可以将期望写成连加的形式

在这里插入图片描述

如说是连续的action,则需要进行积分。

在这里插入图片描述



Understanding the value functions


  • Action-value function

    :



    Q

    π

    (

    s

    t

    ,

    a

    t

    )

    Q_{\pi}(s_t, a_t)







    Q











    π



















    (



    s










    t


















    ,





    a










    t


















    )





    是给动作



    a

    t

    a_t







    a










    t





















    进行打分,也就是agent在状态



    s

    t

    s_t







    s










    t





















    的时候做出动作



    a

    t

    a_t







    a










    t





















    是否明智


  • State-value funcrion

    :

    在这里插入图片描述



Using AI to play games



How does AI controls the agent


  • Policy based learning

    : 第一种方法是学习policy。已知policy



    π

    (

    a

    s

    )

    \pi(a|s)






    π


    (


    a





    s


    )





    ,我们就可以given state,然后根据概率分布,对action



    a

    a






    a





    进行随机抽样,得到



    a

    t

    a_t







    a










    t





















    ,最后agent执行动作



    a

    t

    a_t







    a










    t






















  • Value based learning

    :另外一种方法是学习最优动作价值函数



    Q

    (

    s

    t

    ,

    a

    t

    )

    Q^{*}(s_t, a_t)







    Q






















    (



    s










    t


















    ,





    a










    t


















    )





    。然后agent可以根据




    a

    t

    =

    argmax

    a

    Q

    (

    s

    t

    ,

    a

    )

    a_t = \text{argmax}_a Q^{*}(s_t, a)







    a










    t




















    =










    argmax











    a



















    Q






















    (



    s










    t


















    ,




    a


    )






    ,执行下一步的动作,因为



    Q

    Q






    Q





    值是对未来奖励的期望。

    在这里插入图片描述

以上两种方法都可行,也就是强化学习中也么是学习



π

(

s

t

)

\pi(\cdot|s_t)






π


(









s










t


















)





函数或者



Q

(

s

t

,

a

t

)

Q^{*}(s_t, a_t)







Q






















(



s










t


















,





a










t


















)





函数,只要学到两者之一即可。



例子

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



总结

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这里总结一下


  • Value based learning

    :算法

    temporal difference

  • Policy based learning

    :算法

    policy gradient



经典论文



Q-learning

:


@article{watkins1992q,

title={Q-learning},

author={Watkins, Christopher JCH and Dayan, Peter},

journal={Machine learning},

volume={8},

number={3-4},

pages={279–292},

year={1992},

publisher={Springer}

}



版权声明:本文为HsinglukLiu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。