Merge branch 'master' of github.com:datawhalechina/leedeeprl-notes

This commit is contained in:
qiwang067
2021-02-07 22:48:25 +08:00
8 changed files with 79 additions and 11 deletions

View File

@@ -1,6 +1,6 @@
# Chapter10 Sparse Reward
## 1 关键词
## 1 Keywords
- **reward shaping** 在我们的agent与environment进行交互时我们人为的设计一些reward从而“指挥”agent告诉其采取哪一个action是最优的而这个reward并不是environment对应的reward这样可以提高我们estimate Q-function时的准确性。
- **ICMintrinsic curiosity module** 其代表着curiosity driven这个技术中的增加新的reward function以后的reward function。
@@ -8,7 +8,7 @@
- **reverse curriculum learning** 相较于上面的curriculum learning其为更general的方法。其从最终最理想的state我们称之为gold state开始依次去寻找距离gold state最近的state作为想让agent达到的阶段性的“理想”的state当然我们应该在此过程中有意的去掉一些极端的case太简单、太难的case。综上reverse curriculum learning 是从 gold state 去反推,就是说你原来的目标是长这个样子,我们从我们的目标去反推,所以这个叫做 reverse curriculum learning。
- **hierarchical (分层) reinforcement learning** 将一个大型的task横向或者纵向的拆解成多个 agent去执行。其中有一些agent 负责比较high level 的东西,负责订目标,然后它订完目标以后,再分配给其他的 agent把它执行完成。看教程的 hierarchical reinforcement learning部分的示例就会比较明了
## 2 思考题
## 2 Questions
- 解决sparse reward的方法有哪些

View File

@@ -1,6 +1,6 @@
# Chapter11 Imitation Learning
## 1 关键词
## 1 Keywords
- **Imitation learning** 其讨论我们没有reward或者无法定义reward但是有与environment进行交互时怎么进行agent的学习。这与我们平时处理的问题中的情况有些类似因为通常我们无法从环境中得到明确的reward。Imitation learning 又被称为 learning from demonstration (示范学习) apprenticeship learning (学徒学习)learning by watching (观察学习)等。
- **Behavior Cloning** 类似于ML中的监督学习通过收集expert的state与action的对应信息训练我们的networkactor。在使用时input state时得到对应的outpur action。
@@ -8,7 +8,7 @@
- **Inverse Reinforcement learningIRL** Inverse Reinforcement Learning 是先找出 reward function再去用 Reinforcement Learning 找出 optimal actor。这么做是因为我们没有环境中reward但是我们有expert 的demonstration使用IRL我们可以推断expert 是因为什么样的 reward function 才会采取这些action。有了reward function 以后,接下来,就可以套用一般的 reinforcement learning 的方法去找出 optimal actor。
- **Third Person Imitation Learning** 一种把第三人称视角所观察到的经验 generalize 到第一人称视角的经验的技术。
## 2 思考题
## 2 Questions
- 对于Imitation Learning 的方法有哪些?

View File

@@ -1,10 +1,10 @@
# Chapter12 DDPG
## 1 关键词
## 1 Keywords
- **DDPG(Deep Deterministic Policy Gradient)** 在连续控制领域经典的RL算法是DQN在处理连续动作空间的一个扩充。具体地从命名就可以看出Deep是使用了神经网络Deterministic 表示 DDPG 输出的是一个确定性的动作可以用于连续动作的一个环境Policy Gradient 代表的是它用到的是策略网络,并且每个 step 都会更新一次 policy 网络,也就是说它是一个单步更新的 policy 网络。其与DQN都有目标网络和经验回放的技巧在经验回放部分是一致的在目标网络的更新有些许不同。
## 2 思考题
## 2 Questions
- 请解释随机性策略和确定性策略。

View File

@@ -29,3 +29,21 @@
本质来说KL divergence是一个function其度量的是两个action (对应的参数分别为$\theta$ 和 $\theta'$ 间的行为上的差距而不是参数上的差距。这里行为上的差距behavior distance可以理解为在相同的state的情况下输出的action的差距他们的概率分布上的差距这里的概率分布即为KL divergence。
## 3 Something About Interview
- 高冷的面试官:请问什么是重要性采样呀?
答:使用另外一种数据分布,来逼近所求分布的一种方法,算是一种期望修正的方法,公式是:
$$
\int f(x) p(x) d x=\int f(x) \frac{p(x)}{q(x)} q(x) d x=E_{x \sim q}[f(x){\frac{p(x)}{q(x)}}]=E_{x \sim p}[f(x)]
$$
我们在已知 $q$ 的分布后,可以使用上述公式计算出从 $p$ 分布的期望值。也就可以使用 $q$ 来对于 $p$ 进行采样了,即为重要性采样。
- 高冷的面试官请问on-policy跟off-policy的区别是什么
on-policy生成样本的policyvalue function跟网络更新参数时使用的policyvalue function相同。典型为SARAS算法基于当前的policy直接执行一次动作选择然后用这个样本更新当前的policy因此生成样本的policy和学习时的policy相同算法为on-policy算法。该方法会遭遇探索-利用的矛盾光利用目前已知的最优选择可能学不到最优解收敛到局部最优而加入探索又降低了学习效率。epsilon-greedy 算法是这种矛盾下的折衷。优点是直接了当,速度快,劣势是不一定找到最优策略。
- 高冷的面试官请简述下PPO算法。其与TRPO算法有何关系呢?
PPO算法的提出旨在借鉴TRPO算法使用一阶优化在采样效率、算法表现以及实现和调试的复杂度之间取得了新的平衡。这是因为PPO会在每一次迭代中尝试计算新的策略让损失函数最小化并且保证每一次新计算出的策略能够和原策略相差不大。具体来说在避免使用important sampling时由于在 $\theta$ 下的 $p_{\theta}\left(a_{t} | s_{t}\right)$ 跟 在 $\theta'$ 下的 $ p_{\theta'}\left(a_{t} | s_{t}\right) $ 差太多导致important sampling结果偏差较大而采取的算法。

View File

@@ -2,7 +2,7 @@
## 1 Keywords
- **DQN(Deep Q-Network)** 基于深度学习的Q-learning算法其结合了 Value Function Approximation价值函数近似与神经网络技术并采用了目标网络Target Network和经回放Experience Replay的方法进行网络的训练。
- **DQN(Deep Q-Network)** 基于深度学习的Q-learninyang算法其结合了 Value Function Approximation价值函数近似与神经网络技术并采用了目标网络Target Network和经回放Experience Replay的方法进行网络的训练。
- **State-value Function** 本质是一种critic。其输入为actor某一时刻的state对应的输出为一个标量即当actor在对应的state时预期的到过程结束时间段中获得的value的数值。
- **State-value Function Bellman Equation** 基于state-value function的Bellman Equation它表示在状态 $s_t$ 下带来的累积奖励 $G_t$ 的期望。
- **Q-function:** 其也被称为state-action value function。其input 是一个 state 跟 action 的 pair即在某一个 state 采取某一个action假设我们都使用 actor $\pi$ ,得到的 accumulated reward 的期望值有多大。
@@ -82,3 +82,33 @@
- 首先DQN 将 Q-learning 与深度学习结合,用深度网络来近似动作价值函数,而 Q-learning 则是采用表格存储。
- DQN 采用了我们前面所描述的经验回放Experience Replay训练方法从历史数据中随机采样而 Q-learning 直接采用下一个状态的数据进行学习。
## 3 Something About Interview
- 高冷的面试官请问DQNDeep Q-Network是什么其两个关键性的技巧分别是什么
Deep Q-Network是基于深度学习的Q-learning算法其结合了 Value Function Approximation价值函数近似与神经网络技术并采用了目标网络Target Network和经验回放Experience Replay的方法进行网络的训练。
- 高冷的面试官接上题DQN中的两个trick目标网络和experience replay的具体作用是什么呢
在DQN中某个动作值函数的更新依赖于其他动作值函数。如果我们一直更新值网络的参数会导致
更新目标不断变化,也就是我们在追逐一个不断变化的目标,这样势必会不太稳定。 为了解决在基于TD的Network的问题时优化目标 $\mathrm{Q}^{\pi}\left(s_{t}, a_{t}\right) =r_{t}+\mathrm{Q}^{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 左右两侧会同时变化使得训练过程不稳定从而增大regression的难度。target network选择将上式的右部分即 $r_{t}+\mathrm{Q}^{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 固定通过改变上式左部分的network的参数进行regression。对于经验回放其会构建一个Replay BufferReplay Memory用来保存许多data每一个data的形式如下在某一个 state $s_t$采取某一个action $a_t$,得到了 reward $r_t$,然后跳到 state $s_{t+1}$。我们使用 $\pi$ 去跟环境互动很多次,把收集到的数据都放到这个 replay buffer 中。当我们的buffer”装满“后就会自动删去最早进入buffer的data。在训练时对于每一轮迭代都有相对应的batch与我们训练普通的Network一样通过sample得到然后用这个batch中的data去update我们的Q-function。也就是Q-function再sample和训练的时候会用到过去的经验数据也可以消除样本之间的相关性。
- 高冷的面试官DQNDeep Q-learning和Q-learning有什么异同点
整体来说从名称就可以看出两者的目标价值以及价值的update方式基本相同另外一方面不同点在于
- 首先DQN 将 Q-learning 与深度学习结合,用深度网络来近似动作价值函数,而 Q-learning 则是采用表格存储。
- DQN 采用了我们前面所描述的经验回放Experience Replay训练方法从历史数据中随机采样而 Q-learning 直接采用下一个状态的数据进行学习。
- 高冷的面试官:请问,随机性策略和确定性策略有什么区别吗?
答:随机策略表示为某个状态下动作取值的分布,确定性策略在每个状态只有一个确定的动作可以选。
从熵的角度来说确定性策略的熵为0没有任何随机性。随机策略有利于我们进行适度的探索确定
性策略的探索问题更为严峻。
- 高冷的面试官:请问不打破数据相关性,神经网络的训练效果为什么就不好?
答:在神经网络中通常使用随机梯度下降法。随机的意思是我们随机选择一些样本来增量式的估计梯度,比如常用的
采用batch训练。如果样本是相关的那就意味着前后两个batch的很可能也是相关的那么估计的梯度也会呈现
出某种相关性。如果不幸的情况下,后面的梯度估计可能会抵消掉前面的梯度量。从而使得训练难以收敛。

View File

@@ -35,3 +35,23 @@
- 优势:因为我们现在 sample 了比较多的step之前是只sample 了一个step 所以某一个step 得到的data 是真实值接下来都是Q value 估测出来的。现在sample 比较多stepsample N 个step 才估测value所以估测的部分所造成的影响就会比小。
- 劣势:因为我们的 reward 比较多,当我们把 N 步的 reward 加起来,对应的 variance 就会比较大。但是我们可以选择通过调整 N 值去在variance 跟不精确的 Q 之间取得一个平衡。这里介绍的参数 N 就是一个hyper parameter你要调这个N 到底是多少,你是要多 sample 三步,还是多 sample 五步。
## 3 Something About Interview
- 高冷的面试官DQN都有哪些变种引入状态奖励的是哪种
DQN三个经典的变种Double DQN、Dueling DQN、Prioritized Replay Buffer。
- Double-DQN将动作选择和价值估计分开避免价值过高估计。
- Dueling-DQN将Q值分解为状态价值和优势函数得到更多有用信息。
- Prioritized Replay Buffer将经验池中的经验按照优先级进行采样。
- 简述double DQN原理
DQN由于总是选择当前值函数最大的动作值函数来更新当前的动作值函数因此存在着过估计问题估计的值函数大于真实的值函数。为了解耦这两个过程double DQN 使用了两个值网络,一个网络用来执行动作选择,然后用另一个值函数对一个的动作值更新当前网络。
- 高冷的面试官请问Dueling DQN模型有什么优势呢
答:对于我们的 $Q(s,a)$ 其对应的state由于为table的形式所以是离散的而实际中的state不是离散的。对于 $Q(s,a)$ 的计算公式, $Q(s,a)=V(s)+A(s,a)$ 。其中的 $V(s)$ 是对于不同的state都有值对于 $A(s,a)$ 对于不同的state都有不同的action对应的值。所以本质上来说我们最终的矩阵 $Q(s,a)$ 的结果是将每一个 $V(s)$ 加到矩阵 $A(s,a)$ 中得到的。从模型的角度考虑我们的network直接改变的 $Q(s,a)$ 而是更改的 $V、A$ 。但是有时我们update时不一定会将 $V(s)$ 和 $Q(s,a)$ 都更新。我们将其分成两个path后我们就不需要将所有的state-action pair都sample一遍我们可以使用更高效的estimate Q value方法将最终的 $Q(s,a)$ 计算出来。

View File

@@ -1,6 +1,6 @@
# Chapter8 Q-learning for Continuous Actions
## 思考题
## Questions
- Q-learning相比于policy gradient based方法为什么训练起来效果更好更平稳
@@ -17,4 +17,4 @@
- 第一个解决方法我们可以使用所谓的sample方法即随机sample出N个可能的action然后一个一个带到我们的Q-function中计算对应的N个Q value比较哪一个的值最大。但是这个方法因为是sample所以不会非常的精确。
- 第二个解决方法我们将这个continuous action问题看为一个优化问题从而自然而然地想到了可以用gradient ascend去最大化我们的目标函数。具体地我们将action看为我们的变量使用gradient ascend方法去update action对应的Q-value。但是这个方法通常的时间花销比较大因为是需要迭代运算的。
- 第三个解决方法设计一个特别的network架构设计一个特别的Q-function使得解我们 argmax Q-value的问题变得非常容易。也就是这边的 Q-function 不是一个 general 的 Q-function特别设计一下它的样子让你要找让这个 Q-function 最大的 a 的时候非常容易。但是这个方法的function不能随意乱设其必须有一些额外的限制。具体的设计方法可以我们的chapter8的详细教程。
- 第四个解决方法不用Q-learning毕竟用其处理continuous的action比较麻烦。
- 第四个解决方法不用Q-learning毕竟用其处理continuous的action比较麻烦。

View File

@@ -1,13 +1,13 @@
# Chapter9 Actor-Critic
## 1 关键词
## 1 Keywords
- **A2C** Advantage Actor-Critic的缩写一种Actor-Critic方法。
- **A3C** Asynchronous异步的Advantage Actor-Critic的缩写一种改进的Actor-Critic方法通过异步的操作进行RL模型训练的加速。
- **Pathwise Derivative Policy Gradient** 其为使用 Q-learning 解 continuous action 的方法,也是一种 Actor-Critic 方法。其会对于actor提供value最大的action而不仅仅是提供某一个action的好坏程度。
## 2 思考题
## 2 Questions
- 整个Advantage actor-criticA2C算法的工作流程是怎样的