EasyRL_v1.0.6
EasyRL_v1.0.6
作者:未知作者 笔记数:48 条
第42页
蒙特卡洛方法使用经验平均回报(empirical meanreturn)的方法来估计,它不需要马尔可夫决策过程的状态转移函数和奖励函数,并且不需要像动态规划那样用自举的方法。此外,蒙特卡洛方法有一定的局限性,它只 能用在有终止的马尔可夫决策过程中
第45页
偏差(bias):描述的是预测值(估计值)的期望与真实值之间的差距。偏差越高,越偏离真实数据,如图 3.27 第2行所示。方差(variance):描述的是预测值的变化范围、离散程度,也就是离其期望值的距离。方差越高,数据的分布越分散,如图3.27 右列所示。
第54页
策略梯度算法不需要在动作空间中最大化价值,因此较为适合解决具有高维或者连续动作空间的问题。
第56页
在采样的次数不够多的情况下,我们要给每一个状态-动作对分配合理的分数,要让大家知道它合理的贡献。
一个做法是计算某个状态-动作对的奖励的时候,不把整场游戏得到的奖励全部加起来,只计算从这 个动作执行以后得到的奖励
因为这场游戏在执行这个动作之前发生的事情是与执行这个动作是没有关系的,
优势函数取决于s和a,我们就是要计算在某个状态。采取某个动作a的时候,优势 函数的值。
从时刻t开始到游戏结束为止,所有r的加和减去b,这就是优势函数。优势函数的意义是,假设我们在某一个状态s执行某一个动作at,相较于其他可能的动作,at有多好。优势函数在意的不是绝对的好,而是相对的好,即相对优势(relative advantage)。因为在优势函数中,我们会减去一个基线b,所以这个动作是相对的好,不是绝 对的好。
第57页
蒙特卡洛方法可以理解为算法完成一个回合之后,再利用这个回合的数据去学习,做一次更新。
REINFORCE。REINFORCE用的是回合更新的方式
第59页
如果要学习的智能体和与环境交互的智能体是相同的,我们称之为同策略。如果要学习的智能体和与环境交互的智能体不是相同的,我们称之 为异策略。
一旦更新了参数,从0变成θ’,概 率pe(7) 就不对了,之前采样的数据也不能用了
所以策略梯度是一个会花很多时间来采样数据的算法,其大多数时间都在采样数据
智能体与环境交互以后,接下来就要更新参数。我们只能更新参数一次,然后就要重新采样数据,才能再次更新参数。
importance sampling
权重(importance weight)来修正这两个分布的差异。q(x)可以是任何分布
[插图]
例如,当p(x) 和 q(r) 差距很大时,就会有问题。如图5.1所示,假设蓝线是p(r)的分布,绿线是 q(x) 的分布,红线是f(x)。如果我们要计算∫(x)的期望值,从分布p(r)做采样,显然Ex~p[J(r)] 是负的。这是因为左边区域p(r)
的概率很高,所以采样会到这个区域,而f(x)在这个区域是负的,所以理论上这一项算出来会是负的。
| 接下来我们改成从q(x) 采样,因为q(x) 在右边区域的概率比较高,所以如果我们采样的点不够多,可能只会采样到右侧。如果我们只采样到右侧,可能〖~。 | ∫(x) |
是正的。我们这边采样到这些点,去计算它们的∫(x)都是正的。我们采样到这些点都是正的,取期望值以后也都是正的,这是因为采样的次数不够多。假设我们采样次数很少,只能采样到右边。左边虽然概率很低,但也有可能被采样到。假设我们好不容易采样到左边的点,因为左边的点的p(r) 和q(r) 是差很多的,这边p(r)
很大,q(x) 很小。f(x)好不容易终于采样到一个负的,这个负的就会被乘上一个非常大的权重,这样就可以平衡刚才那边一直采样到正的值的情况。最终我们算出这一项的期望值,终究还是负的。但前提是我们要采样足够多次,这件事情才会发生。但有可能采样次数不够多,E,~,[/(x)] 与E~[f(x)]可能就有很大的差距。
这个重要性权重就是某一个轨迹τ用θ算出来的概率除以这个轨迹τ用θ’算出来的概率
实际在做策略梯度的时候,我们并不是给整个轨迹r一样的分数,而是将每一个状态-动作对分开计算。实际更新梯度的过程可写为
第60页
我们可以通过重要性采样把同策略换成异策略,但重要性采样有一个问题:如果po (a+ 8)) 与 p0 (ac 8e)相差太多,即这两个分布相差太多,重要性采样的结果就会不好。怎么避免它们相差太多呢?这就是PPO要做的事情。
所谓的@与@’的距离并不是参数上的距离,而是行为(behavior)上的距离。
PPO中KL散度约束不是参数约束而是输出行为结果的约束,action分布之间的KL散度
不同的状态输出的这两个分布的KL散度的平均值就是我们所指的两个演员间的KL散度。
是因为很有可能对于演员,参数的变化与动作的变化不一定是完全一致的。有时候参数稍微变了,它可能输出动作的就差很多。或者是参数变很多,但输出的动作可能没有什么改变。
第65页
基于价值的算法学习的是critic
学习的是v(s π)
评论员无法凭空评价一个状态的好坏,它所评价的是在给定某一个状态的时候,如果 接下来交互的演员的策略是π,我们会得到多少奖励,这个奖励就是我们评价得出的值
评论员其实都要绑定一个演员,它是在衡量某一个演 员的好坏,而不是衡量一个状态的好坏
怎么衡量状态价值函数V(s)呢?有两种不同的方法:基于蒙特卡洛的方法和基于时序差分的方法。
因为我们每次到8。的时候,最后得到的G。其实是不一样的。我们看到同样的状态s。,最后到游戏结束的时候,因为游戏本身是有随机性的,玩游戏的模型可能也有随机性,所以我们每次得到的G。是不一样的,每一次得到的G。的差别其实会很大。为什么会很大呢?
第66页
a。Q函数 假设在状态s强制采取动作a,而不管我们现在考虑的策略π会不会采取动作a,这并不重要。在状态s强制采取动作a。接下来都用策略才继续玩下去,就只有在状态。,我们才强制一定要采取动作a,接
入自动模式,让策略π继续玩下去,得到的期望奖励才是Q=(s,a
第68页
策略梯度的输出是随机的,它会输出一个动作的分布,我 们根据这个动作的分布去采样,
第69页
因为在做训练的时候,经验不需要通通来自于某一个策略
经验可以放在回放缓冲区里面被使用很多次,被反复的再利用,这样可以比较高效地采样经验
第二个好处是,在训练网络的时候,其实我们希望一个批量里面的数据越多样(diverse)越好。
我们观察π的值,发现里面混杂了一些不是=的经验,这有没有关系?
思考🤔
没关系。这并不是因为过去的策略与现在的策略很像,就算过去的策略与现在的策略不是很像,也是没有关系的。主要的原因是我们并不是去采样一个轨迹,我们只采样了一笔经验,所以与是不是异策略这件事是没有关系的。就算是异策略,就算是这些经验不是来自于π,我们还是可以用这些经验来估测Qπ(s,a)。
第71页
目标网络(target network):其可解决在基于时序差分的网络中,优化目标Qn (8t,a) = ri +Qn (8e+1,π(8+1))左右两侧会同时变化使得训练过程不稳定,从而增大回归的难度的问题。目标网络选择将右边部分,即ri+Q≈ (8t+1,丌(8++1)) 固定,通过改变左边部分,即Q≈(8e,a,)中的参数进行回归,这也是深度Q网络应用中比较重要的技巧。
第73页
因为Q函数是取决于策略的,在学习的过程中策略越来越强,我们得到的Q值会越来越大。在同一个状态,我们得到奖励的期望会越来越大
虽然一般的深度Q网络的Q网络高估了自己会得到的奖励,但实际 上它得到的奖励是比较低的。
第74页
竞争深度Q网络是一个使用数据比较有效率的方法。
第76页
state-dependent exploration
因为如果在Q函数的网络的参数上加噪声,在整个交互的过程中,在同一个回合里面,它的网 络的参数总是固定的,所以看到相同或类似的状态,就会采取相同的动作,这是比较正常的。这被称为依赖状态的探索(state-dependent exploration),我们虽然会做探索这件事,但是探索是与状态有关系的,看到同样的状态,就会采取同样的探索的方式,而噪声(noisy)的动作只是随机乱试。但如果我们是在参数下加噪声,在同一个回合里面,参数是固定的,我们就是系统地尝试。