本文是这篇博文的注,如有需要请以其为纲
知识勘误其他笔记链接
易混知识勘误_from李宏毅P1-----Policy Gradient
易混知识勘误_from李宏毅P2——PPO\Off-policy\On-policy
易混知识勘误_from李宏毅P4——Actor-Critic/A3C
易混知识勘误_from李宏毅P5——Sparse Reward的解决方法(目标太难怎么办)
易混知识勘误_from李宏毅P6——Imitation Learning 模仿式学习
目录
1.Critic只在Q-learning中出现吗?是什么东西?
4.注意一下哈,这里的V是指定policy下的s的价值,Q是指定policy下的(s,a)对的价值
7.Q^Π(s, a)代表在policyΠ的前提下,对(s,a)对的价值评价,但是!(s,a)对和policy无关,也就是说,如果用policy Π对s最决定的话,可能执行除a外i的其他动作!
10.使用Dueling DQN时,为什么要对A加这么多限制
13.正常情况下 Experience Buffer中的数据是啥结构的?
14.启示:求期望的时候往往忽略了分布,这时候可以考虑一下这个分布是不是有价值的,如果有价值的话通过对定义域分bin的形式把他找回来
15.为什么Q learning比仅用policy gradient的算法更容易操作?
16.为什么Q Learning不能很好的解决行动取连续值的问题?
17.对于连续的a的Q-learning的解决方法三是啥意思?
1.Critic只在Q-learning中出现吗?是什么东西?
Critic是Q-learning的专有组件,它的作用是:评价actor(行为)的好还是不好,而不指导行为(指导行为是policy的工作)
使用value function表征Critic,写作,他基于actor \pi(策略),衡量s(状态)的好坏。因为是对状态的评价,所以其实包含了使用此策略到游戏结束所有的reward之和。
2.两种得到Critic的方法的比较:MC v.s TD
注:两者的目标都是评估给予一个policy \pi的状态s的好坏。MC将其与G(整场游戏的实际Reward)比较,接近之;而TD将当前的V 与 r+下一步的V比较,尝试接近之。
3.为什么
总成立
首先看一下这个式子的意义,在policy 下的s状态的Reward,总是大于等于 在policy
下的s状态的Reward。
这是由的定义决定的,因为
[前提条件是已知
],其含义是,对于给定的policy \pi和s,寻找使Q最大的a,而由s得到a的过程是由参数\pi决定的,将由s得到最大的Q的这个参数\pi记作\pi'。
4.注意一下哈,这里的V是指定policy下的s的价值,Q是指定policy下的(s,a)对的价值
5.另外注意
是由argmaxQ得到的,并没有网络求它。
6.Target Network是啥
如上图:
我们期望右上交方框的左右两侧可以相等,这两者中的Q都是通过NN得到的,正常情况下左右两边的NN的参数一致,当对左边的NN进行tune时,右边的NN的参数也变化,此时右边的Q也变化,就没办法进行了。这时候可以固定右边NN的参数,而不断更新左边NN的参数,当经过一定事件后,再对右侧NN的参数进行更新。
的输出是作为Target使用,这个Network的参数不变
7.Q^Π(s, a)代表在policyΠ的前提下,对(s,a)对的价值评价,但是!(s,a)对和policy无关,也就是说,如果用policy Π对s最决定的话,可能执行除a外i的其他动作!
8.Exploration是关于采样概率的
即,对于采样过的a,若其得到的Reward为正,那么下次选择他的概率就会变大,那么有一些没有被采样到的a,也可能有好的Reward,但是仅因为没被采样到就忽略了,是不合理的,所以用到了Exploration 探索率。
9.为什么Q经常被高估
在对a的价值进行评估的时候,评估的结果可能不准,有的a评价的比实际的高,有的a评价的比实际的低。而式中要取max,所以低的不会在意,而虚高的总会被取中,所以对a的评价的虚高,导致了Q_目标 会被高估。
10.使用Dueling DQN时,为什么要对A加这么多限制
因为算法的最终目标其实是修改Q,而修改Q有两种途径:1.修改V,2.修改A。而修改A其实比修改V更灵活(因为修改V的话,一改就要改Q中的一列),所以就有可能发生只修改A而不修改V的情况,这样的话要V不久没用了嘛,所以给A加一点限制,让算法不再那么积极地修改A
11.Dueling DQN加的那个V有什么用?
当我们更新Q的时候,假如想对画红斜线的部分进行+1,而这时候看情况很可能是对状态s1的评价+1了,如果可以用V表征对状态的评价,那么就可以修改V1=1,从而让Q中的第三行第二列的也+1了
如果是状态评价增加了,那么为什么Q的三行二列不主动+1呢?可能是sampling的时候没有采到它。
12.TD error是啥
就是训练模型的时候,不是有两个NN吗?一个用于生成target,另一个通过迭代更新来接近那个target,这两者之间的差别就是TD error。TD error大说明这部分数据训练效果不是很好,期望能多train train
13.正常情况下 Experience Buffer中的数据是啥结构的?
,就是这种,状态 动作 单步回报 下一步状态
14.启示:求期望的时候往往忽略了分布,这时候可以考虑一下这个分布是不是有价值的,如果有价值的话通过对定义域分bin的形式把他找回来
15.为什么Q learning比仅用policy gradient的算法更容易操作?
首先是PG不稳,用了PPO才能用。
Q Learning有优势的理由是:只要你能估计出Q,就能找到一个更好的policy,因为在QL中,其实是一个Regression Problem,只要观察loss就能知道,model有没有变好。
16.为什么Q Learning不能很好的解决行动取连续值的问题?
主要就是上面这个式子的锅,如果行动a是离散的,那么max可通过遍历a求解,但是如果是离散的,这个解决起来就很麻烦了。
17.对于连续的a的Q-learning的解决方法三是啥意思?
这个准确来说是,通过修改网络结构从而获得一些量,进而让优化过程变得简单。
具体来讲是通过NN得到了,一套运算下来,得到a=
,而
又是NN的输出,也就是说NN可以直接输出a