学习张斯俊和王树森两位大佬的专栏和课程后记的笔记。这篇笔记里面有一些个人理解,如有不对,欢迎大家指正。
回报return
上一篇说过奖励reward,奖励是指当前状态S下,选择动作A,环境将会反馈回奖励R,我们利用R作为智能体学习的引导,希望智能体能获得尽可能多的奖励。但是看待问题不能只顾当前所获得的利益,当前最优并不代表将来最优,比如马上期末考试了,我们以心情值作为奖励,目的是获得最大心情值。每天复习心情值-2,但是最后通过考试心情值+200;每天打游戏心情值+1,但是最后挂科心情值-100。长远来看,仅仅选择当前最优并不能获得胜利。
我们引出回报Ut:未来的累计奖励reward;T时刻的Return记作:Ut
Ut的定义:把从T时刻开始的奖励R全都加起来,加到游戏结束时的最后一个奖励
注:奖励Rt和Rt+1并不是同样的,就如立刻给你100块钱和十年后给你100块钱的差别。
折扣回报
由于未来的奖励没有现在的奖励值钱,强化学习中多采用折扣回报Discounted return
折扣率记作:γ (值界于0和1之间,如果未来和现在的权重一样,γ就等于1,如果未来的奖励不重要,γ就比较小)
回报的随机性
由于回报Ut依赖于奖励R,所以回报U也是个随机变量。也就是说回报不确定,之前举的那个例子,打游戏就一定会挂科吗,假设80%概率挂科,20%不挂科。我们打游戏等到的回报可能是+1+1+1...+200,也可能是+1+1+1...-100。实际的情况甚至远比这个复杂,有多种多样的不确定性。
再次提及:随机性的两个来源:①动作a:policy函数π,用状态s作为输入,输出一个概率分布,动作a就是从这个概率分布中随机抽样得到的②下一个状态s’:给定当前状态s和动作a,下一个状态s’是随机的,由状态转移函数p输出一个概率分布,环境从这个概率分布中随机抽样得到一个新的状态s’。
我们选择打游戏还是复习是不确定的,我们最后受环境影响挂科还是不挂科也是不确定的,所以回报也是不确定的。但是我们却能有个概率P帮助我们,比如说:选择复习概率是60%,选择打游戏概率是40%。
奖励与回报的区别
对于任意一个时刻i(i≥t),奖励Ri取决于当前状态Si和动作Ai。
假设已观测到t时刻的状态st,则Ut依赖于以下随机变量:一些未来的动作和未来的状态。
动作价值函数-Qπ
未来是不确定的,不确定性既包含在我们的策略,也包含在环境之中。那我们该如何作出对当前也是对未来最优的决策呢?那就是求期望(取平均)。
对Ut求期望,把里面的随机性(policy函数和状态转移函数带来的)都用积分给积掉,得到一个数记作Qπ。把Ut当做所有的动作a和所有的状态s的一个函数,未来的动作a和状态s都有随机性,动作a的概率密度函数是policy函数π,状态s的概率密度函数是状态转移函数p,期望就是对未来的动作a和状态s求的,求期望得到的Qπ被称作:动作价值函数。
Q值越高,表示从当前状态到最终状态能获得的平均奖励将会越高。所以智能体在当前状态,只需选择那个Q值最高的动作即可。(理解这块,看张斯俊的白话强化学习,一看就懂了)
动作价值函数的直观意义:Qπ告诉我们如果用policy函数π,那么在st这个状态下做动作at是好还是坏。已知policy函数π,Qπ就会给当前状态下所有的动作a打分,然后就知道哪个动作好哪个动作不好。
π:策略函数 p:状态转移函数
(这里是动作价值函数,后面还有状态价值函数,注意区别)
最优动作价值函数-Q*
把action-value function中的π去掉。对Qπ关于π求最大化,意思就是我们有无数种policy函数π,但是我们应该使用最好的那种policy函数,即可以让Qπ最大化的那个π。
状态价值函数-Vπ
当前状态下,有多个动作,每个动作都对应一个Q值,这个Q值是指从这个动作之后接下来一系列动作做到结束所能获得的奖励的总和。Qπ的值,是依据某个policy函数选出的一个动作,从该动作到结束所有一系列动作所获得的奖励总和。Q*的值,是选择确定了的最优的动作,从该动作到结束所有一系列动作所获得的奖励总和。
当前状态s下,有多个动作,每个动作都对应一个Q值,把这些Q值加起来求期望(或积分求期望),就得到了V值,V值表当前状态直至走到最终状态,这一游戏过程中所能获得的奖励总和。
Vπ:Qπ的期望
此处的期望是关于随机变量A求的,A的概率函数是π,根据期望的定义,可以把期望写成连加或积分的形式。如果动作都是离散的,比如上下左右,这样就可以把期望写成连加,期望等于对π和Q的乘积做连加,把所有的动作a都算上。
有时候动作a是个连续变量,比如自动驾驶汽车方向盘的角度,这个角度可以是+90到-90度之间所有的值,是连续的,用积分,对Q和π的乘积做积分,把a给积掉。