强化学习蘑菇书学习笔记04

第六章 DQN基本概念

关键词

  • DQN(Deep Q-Network): 基于深度学习的Q-learning算法,其结合了 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 s_{t} st 下带来的累积奖励 G t G_{t} Gt 的期望。
  • Q-function: 其也被称为state-action value function。其input 是一个 state 跟 action 的 pair,即在某一个 state 采取某一个action,假设我们都使用 actor π \pi π ,得到的 accumulated reward 的期望值有多大。
  • Target Network: 为了解决在基于TD的Network的问题时, 优化目标 Q π ( s t , a t ) = \mathrm{Q}^{\pi}\left(s_{t}, a_{t}\right)= Qπ(st,at)= r t + Q π ( s t + 1 , π ( s t + 1 ) ) r_{t}+\mathrm{Q}^{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right) rt+Qπ(st+1,π(st+1)) 左右两侧会同时变化使得训练过程不稳定, 从而增大 regression的难度。target network选择将上式的右部分即 r t + Q π ( s t + 1 , π ( s t + 1 ) ) r_{t}+\mathrm{Q}^{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right) rt+Qπ(st+1,π(st+1)) 固定, 通过改变上式左部分的network的参数, 进行regression, 这也是一个DQN中比较重 要的tip。
  • Exploration: 在我们使用Q-function的时候, 我们的policy完全取决于Q-function, 有可 能导致出现对应的action是固定的某几个数值的情况, 而不像policy gradient中的output 为随机的, 我们再从随机的distribution中 sample选择action。这样会导致我们继续训练 的input的值一样, 从而“加重”output的固定性, 导致整个模型的表达能力的急剧下降, 这也就是 探索-利用䆖境难题(Exploration-Exploitation dilemma)。所以我们使用 Epsilon Greedy 和 Boltzmann Exploration 等Exploration方法进行优化。
  • Experience Replay(经验回放): 其会构建一个Replay Buffer(Replay Memory), 用 来保存许多data, 每一个data的形式如下: 在某一个 state s t s_{t} st, 采取某一个action a t a_{t} at, 得 数据都放到这个 replay buffer 中。当我们的buffer”装满“后, 就会自动删去最早进入 buffer的data。在训练时, 对于每一轮迭代都有相对应的batch (与我们训练普通的 Network一样通过sample得到), 然后用这个batch中的data去update我们的Q-function。综上, Q-function再sample和训练的时候, 会用到过去的经验数据, 所以这里 称这个方法为Experience Replay, 其也是DQN中比较重要的tip。

第七章 DQN进阶技巧

关键词

  • Double DQN: 在Double DQN中存在有两个 Q-network, 首先, 第一个 Q-network, 决 定的是哪一个 action 的 Q \mathrm{Q} Q value 最大, 从而决定了你的action。另一方面, Q \mathrm{Q} Q value 是 用 Q ′ Q^{\prime} Q 算出来的, 这样就可以避免 over estimate 的问题。具体来说, 假设我们有两个 Q-function, 假设第一个Q-function 它高估了它现在选出来的action a, 那没关系, 只要 第二个Q-function Q ′ Q^{\prime} Q 没有高估这个action a 的值,那你算出来的,就还是正常的值。
  • Dueling DQN: 将原来的DQN的计算过程分为两个path。对于第一个path, 会计算一个 于input state有关的一个标量 V ( s ) V(s) V(s); 对于第二个path,会计算出一个vector A ( s , a ) A(s, a) A(s,a), 其对应每一个action。最后的网络是将两个path的结果相加, 得到我们最终需要的Q value。用一个公式表示也就是 Q ( s , a ) = V ( s ) + A ( s , a ) Q(s, a)=V(s)+A(s, a) Q(s,a)=V(s)+A(s,a)
  • Prioritized Experience Replay (优先经验回放) : 这个方法是为了解决我们在chapter6 中提出的Experience Replay (经验回放) 方法不足进一步优化提出的。我们在使用Experience Replay时是uniformly取出的experience buffer中的sample data,这里并没有 考虑数据间的权重大小。例如,我们应该将那些train的效果不好的data对应的权重加 大, 即其应该有更大的概率被sample到。综上, prioritized experience replay 不仅改变了 sample data 的distribution,还改变了 training process。
  • Noisy Net: 其在每一个episode 开始的时候, 即要和环境互动的时候, 将原来的Q-function 的每一个参数上面加上一个Gaussian noise。那你就把原来的Q-function 变成 Q ~ \tilde{Q} Q~ , 即Noisy Q-function。同样的我们把每一个network的权重等参数都加上一个Gaussian 互动结束。
  • Distributional Q-function: 对于DQN进行model distribution。将最终的网络的output的 每一类别的action再进行distribution。
  • Rainbow: 也就是将我们这两节内容所有的七个tips综合起来的方法, 7个方法分别包 括:DQN、DDQN、Prioritized DDQN、Dueling DDQN、A3C、Distributional DQN、Noisy DQN,进而考察每一个方法的贡献度或者是否对于与环境的交互式正反馈的。

第八章 DQN连续动作

Q-learning在处理continuous action时存在的问题以及解决方法

答:
\quad 在日常的问题中, 我们的问题都是continuous action的, 例如我们的 agent 要做的 事情是开自驾车, 它要决定说它方向盘要左转几度, 右转几度, 这就是 continuous 的; 假设我们的 agent 是一个机器人, 假设它身上有 50 个关节, 它的每一个 action 就 对应到它身上的这 50 个关节的角度,而那些角度也是 continuous 的。
\quad 然而在解决Q-learning问题时,很重要的一步是要求能够解对应的优化问题。当我们 estimate 出Q-function Q ( s , a ) Q(s, a) Q(s,a) 以后,必须要找到一个 action, 它可以让 Q ( s , a ) Q(s, a) Q(s,a) 最大。 假设 action 是 discrete 的, 那 a 的可能性都是有限的。但如果action是continuous的情 况下, 我们就不能像离散的action一样, 穷举所有可能的continuous action了。

为了解决这个问题, 有以下几种方法:

  1. 我们可以使用所谓的sample方法, 即随机sample出 N N N 个可能的 action,然后一个一个带到我们的Q-function中, 计算对应的 N N N 个 value比较哪一个的值最大。但是这个方法因为是sample所以不会非常的精确。
  2. 我们将这个 continuous action问题, 看为一个优化问题, 从而自 然而然地想到了可以用gradient ascend去最大化我们的目标函数。具体地, 我们将 action看为我们的变量, 使用gradient ascend方法去update action对应的Q-value。但 是这个方法通常的时间花销比较大, 因为是需要迭代运算的。
  3. 设计一个特别的network架构, 设计一个特别的Q-function, 使得 解我们 argmax Q-value的问题变得非常容易。也就是这边的 Q-function 不是一个 general 的 Q-function,特别设计一下它的样子, 让你要找让这个 Q-function 最大的 a \mathrm{a} a的时候非常容易。但是这个方法的function不能随意乱设, 其必须有一些额外的限 制。具体的设计方法,可以我们的chapter8的详细教程。
  4. 不用Q-learning, 毕竟用其处理continuous的action比较麻烦。

第九章 演员-评论家算法

关键词

  • 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的好坏程度。

你可能感兴趣的:(蘑菇书学习笔记,学习,机器学习)