Merge branch 'master' of github.com:datawhalechina/leedeeprl-notes
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Chapter10 Sparse Reward
|
||||
|
||||
## 1 关键词
|
||||
## 1 Keywords
|
||||
|
||||
- **reward shaping:** 在我们的agent与environment进行交互时,我们人为的设计一些reward,从而“指挥”agent,告诉其采取哪一个action是最优的,而这个reward并不是environment对应的reward,这样可以提高我们estimate Q-function时的准确性。
|
||||
- **ICM(intrinsic 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的方法有哪些?
|
||||
|
||||
|
||||
@@ -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的对应信息,训练我们的network(actor)。在使用时input state时,得到对应的outpur action。
|
||||
@@ -8,7 +8,7 @@
|
||||
- **Inverse Reinforcement learning(IRL):** 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 的方法有哪些?
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
- 请解释随机性策略和确定性策略。
|
||||
|
||||
|
||||
@@ -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:生成样本的policy(value function)跟网络更新参数时使用的policy(value 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结果偏差较大而采取的算法。
|
||||
|
||||
@@ -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
|
||||
|
||||
- 高冷的面试官:请问DQN(Deep 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 Buffer(Replay 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和训练的时候,会用到过去的经验数据,也可以消除样本之间的相关性。
|
||||
|
||||
- 高冷的面试官:DQN(Deep Q-learning)和Q-learning有什么异同点?
|
||||
|
||||
答:整体来说,从名称就可以看出,两者的目标价值以及价值的update方式基本相同,另外一方面,不同点在于:
|
||||
|
||||
- 首先,DQN 将 Q-learning 与深度学习结合,用深度网络来近似动作价值函数,而 Q-learning 则是采用表格存储。
|
||||
- DQN 采用了我们前面所描述的经验回放(Experience Replay)训练方法,从历史数据中随机采样,而 Q-learning 直接采用下一个状态的数据进行学习。
|
||||
|
||||
- 高冷的面试官:请问,随机性策略和确定性策略有什么区别吗?
|
||||
|
||||
答:随机策略表示为某个状态下动作取值的分布,确定性策略在每个状态只有一个确定的动作可以选。
|
||||
从熵的角度来说,确定性策略的熵为0,没有任何随机性。随机策略有利于我们进行适度的探索,确定
|
||||
性策略的探索问题更为严峻。
|
||||
|
||||
- 高冷的面试官:请问不打破数据相关性,神经网络的训练效果为什么就不好?
|
||||
|
||||
答:在神经网络中通常使用随机梯度下降法。随机的意思是我们随机选择一些样本来增量式的估计梯度,比如常用的
|
||||
采用batch训练。如果样本是相关的,那就意味着前后两个batch的很可能也是相关的,那么估计的梯度也会呈现
|
||||
出某种相关性。如果不幸的情况下,后面的梯度估计可能会抵消掉前面的梯度量。从而使得训练难以收敛。
|
||||
|
||||
@@ -35,3 +35,23 @@
|
||||
|
||||
- 优势:因为我们现在 sample 了比较多的step,之前是只sample 了一个step, 所以某一个step 得到的data 是真实值,接下来都是Q value 估测出来的。现在sample 比较多step,sample 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)$ 计算出来。
|
||||
|
||||
@@ -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比较麻烦。
|
||||
|
||||
@@ -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-critic(A2C)算法的工作流程是怎样的?
|
||||
|
||||
|
||||
Reference in New Issue
Block a user