强化学习从根底到进阶 - 常见问题和面试必知必答 [4]::深度 Q 网络 -DQN、double DQN、教训回放、rainbow、分布式 DQN
1. 外围词汇
- 深度 Q 网络(deep Q-network,DQN):基于深度学习的 Q 学习算法,其联合了价值函数近似(value function approximation)与神经网络技术,并采纳指标网络和教训回放等办法进行网络的训练。
- 状态 - 价值函数(state-value function):其输出为演员某一时刻的状态,输入为一个标量,即当演员在对应的状态时,预期的到过程完结时间段内所能取得的价值。
- 状态 - 价值函数贝尔曼方程(state-value function Bellman equation):基于状态 - 价值函数的贝尔曼方程,它示意在状态 $s_t$ 下对累积处分 $G_t$ 的冀望。
- Q 函数(Q-function):其也被称为动作价值函数(action-value function)。其输出是一个状态 - 动作对,即在某一具体的状态采取对应的动作,假如咱们都应用某个策略 $\pi$,失去的累积处分的期望值有多大。
- 指标网络(target network):其可解决在基于时序差分的网络中,优化指标 $Q_{\pi}\left(s_{t}, a_{t}\right) = r_{t}+Q_{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 左右两侧会同时变动使得训练过程不稳固,从而增大回归的难度的问题。指标网络抉择将左边局部,即 $r_{t}+Q_{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 固定,通过扭转右边局部,即 $Q_{\pi}\left(s_{t}, a_{t}\right)$ 中的参数进行回归,这也是深度 Q 网络应用中比拟重要的技巧。
- 摸索(exploration):咱们在应用 Q 函数的时候,咱们的策略齐全取决于 Q 函数,这有可能导致呈现对应的动作是固定的某几个数值的状况,而不像策略梯度中的输入是随机的,咱们再从随机散布中采样抉择动作。这会导致咱们持续训练的输出值一样,从而“减轻”输入的固定性,导致整个模型的表达能力急剧下降,这就是摸索 - 利用困境(exploration-exploitation dilemma)问题。咱们能够应用 $\varepsilon$- 贪婪和玻尔兹曼摸索(Boltzmann exploration)等摸索办法进行优化。
- 教训回放(experience replay):其会构建一个回放缓冲区(replay buffer)来保留许多教训,每一个教训的模式如下:在某一个状态 $s_t$,采取某一个动作 $a_t$,失去处分 $r_t$,而后进入状态 $s_{t+1}$。咱们应用 $\pi$ 与环境交互屡次,把收集到的教训都存储在回放缓冲区中。当咱们的缓冲区“装满”后,就会主动删去最早进入缓冲区的教训。在训练时,对于每一轮迭代都有绝对应的批量(batch)(与咱们训练一般的网络一样,都是通过采样失去的),而后用这个批量中的教训去更新咱们的 Q 函数。综上,Q 函数在采样和训练的时候,会用到过来的教训,所以这里称这个办法为教训回放,其也是深度 Q 网络应用中比拟重要的技巧。
- 双深度 Q 网络(double DQN):在双深度 Q 网络中存在两个 Q 网络,第一个 Q 网络决定哪一个动作的 Q 值最大,从而决定对应的动作。另一方面,Q 值是用 $Q’$ 计算失去的,这样就能够防止适度预计的问题。具体地,假如咱们有两个 Q 函数并且第一个 Q 函数高估了它当初执行的动作 $a$ 的值,这没关系,只有第二个 Q 函数 $Q’$ 没有高估动作 $a$ 的值,那么计算失去的就还是失常的值。
- 竞争深度 Q 网络(dueling DQN):将原来的深度 Q 网络的计算过程分为两步。第一步计算一个与输出无关的标量 $\mathrm{V(s)}$;第二步计算一个向量 $\mathrm{A(s,a)}$ 对应每一个动作。最初的网络将两步的后果相加,失去咱们最终须要的 Q 值。用一个公式示意就是 $\mathrm{Q(s,a)=V(s)+A(s,a)}$。另外,竞争深度 Q 网络,应用状态价值函数与动作价值函数来评估 Q 值。
- 优先级教训回放(prioritized experience replay,PER):这个办法是为了解决咱们在第 6 章中提出的教训回放办法的有余而提出的。咱们在应用教训回放时,平均地取出回放缓冲区(reply buffer)中的采样数据,这里并没有思考数据间的权重大小。然而咱们应该将那些训练成果不好的数据对应的权重加大,即其应该有更大的概率被采样到。综上,优先级教训回放不仅扭转了被采样数据的散布,还扭转了训练过程。
- 噪声网络(noisy net):其在每一个回合开始的时候,即智能体要和环境交互的时候,在原来的 Q 函数的每一个参数上加上一个高斯噪声(Gaussian noise),把原来的 Q 函数变成 $\tilde{Q}$,即噪声 Q 函数。同样,咱们把每一个网络的权重等参数都加上一个高斯噪声,就失去一个新的网络 $\tilde{Q}$。咱们会应用这个新的网络与环境交互直到完结。
- 分布式 Q 函数(distributional Q-function):对深度 Q 网络进行模型散布,将最终网络的输入的每一类别的动作再进行散布操作。
- 彩虹(rainbow):将 7 个技巧 / 算法综合起来的办法,7 个技巧别离是——深度 Q 网络、双深度 Q 网络、优先级教训回放的双深度 Q 网络、竞争深度 Q 网络、异步劣势演员 - 评论员算法(A3C)、分布式 Q 函数、噪声网络,进而考查每一个技巧的贡献度或者与环境的交互是否是正反馈的。
2. 常见问题汇总
2. 为什么在深度 Q 网络中采纳价值函数近似的示意办法?
首先深度 Q 网络为基于深度学习的 Q 学习算法,而在 Q 学习中,咱们应用表格来存储每一个状态下动作的处分,即咱们在注释中介绍的动作价值函数 $Q(s,a)$。然而在咱们的理论工作中,状态量通常数量微小,并且在间断工作中会遇到维度劫难等问题,应用真正的价值函数通常是不切实际的,所以应用了与价值函数近似的示意办法。
2.2 评论员的输入通常与哪几个值间接相干?
与状态和演员间接相干。咱们在探讨输入时通常是针对一个演员掂量一个状态的好坏,也就是状态、价值从实质上来说是依赖于演员的。不同的演员在雷同的状态下也会有不同的输入。
2.3 咱们通常怎么掂量状态价值函数 $V_{\pi}(s)$?其劣势和劣势别离有哪些?
(1)基于蒙特卡洛的办法:实质上就是让演员与环境交互。评论员依据统计后果,将演员和状态对应起来,即如果演员看到某一状态 $s_a$,将预测接下来的累积处分有多大,如果看到另一个状态 $s_b$,将预测接下来的累积处分有多大。然而其普适性不好,其须要匹配到所有的状态。如果咱们面对的是一个简略的例如贪吃蛇游戏等状态无限的问题还能够应答,然而如果咱们面对的是一个图片型的工作,咱们简直不可能将所有的状态(对应每一帧的图像)的都“记录”下来。总之,其不能对未呈现过的输出状态进行对应价值的输入。
(2)基于蒙特卡洛的网络办法:为了补救下面形容的基于蒙特卡洛的办法的有余,咱们将其中的状态价值函数 $V_{\pi}(s)$ 定义为一个网络,其能够对于从未呈现过的输出状态,依据网络的泛化和拟合能力,“估测”出一个价值输入。
(3)基于时序差分的网络办法,即基于时序差分的网络:与咱们在前 4 章介绍的蒙特卡洛办法与时序差分办法的区别一样,基于时序差分的网络办法和基于蒙特卡洛的网络办法的区别也雷同。在基于蒙特卡洛的办法中,每次咱们都要计算累积处分,也就是从某一个状态 $s_a$ 始终到游戏完结的时候,失去的所有处分的总和。所以要利用基于蒙特卡洛的办法时,咱们必须至多把游戏玩到完结。但有些游戏要玩到游戏完结才可能更新网络破费的工夫太长了,因而咱们会采纳基于时序差分的网络办法。基于时序差分的网络办法不须要把游戏玩到完结,只有在游戏某一个状态 $s_t$ 的时候,采取动作 $a_t$ 失去处分 $r_t$,进入状态 $s_{t+1}$,就能够利用基于时序差分的网络办法。其公式与之前介绍的时序差分办法相似,即 $V_{\pi}\left(s_{t}\right)=V_{\pi}\left(s_{t+1}\right)+r_{t}$。
(4)基于蒙特卡洛办法和基于时序差分办法的区别在于:蒙特卡洛办法自身具备很大的随机性,咱们能够将其 $G_a$ 视为一个随机变量,所以其最终的偏差很大。而对于时序差分,其具备随机的变量 $r$。因为在状态 $s_t$ 采取同一个动作,所得的处分也不肯定是一样的,所以对于时序差分办法来说,$r$ 是一个随机变量。然而绝对于蒙特卡洛办法的 $G_a$ 来说,$r$ 的随机性十分小,这是因为 $G_a$ 自身就是由很多的 $r$ 组合而成的。从另一个角度来说,在时序差分办法中,咱们的前提是 $r_t=V_{\pi}\left(s_{t+1}\right)-V_{\pi}\left(s_{t}\right)$,然而咱们通常无奈保障 $V_{\pi}\left(s_{t+1}\right)$、$V_{\pi}\left(s_{t}\right)$ 计算的误差为 0。所以当 $V_{\pi}\left(s_{t+1}\right)$、$V_{\pi}\left(s_{t}\right)$ 计算得不精确,失去的后果也会是不精确的。总之,两者各有优劣。
(5)目前,基于时序差分的办法是比拟罕用的,基于蒙特卡洛的办法其实是比拟少用的。
2.4 基于本章注释介绍的基于蒙特卡洛的网络办法,咱们怎么训练模型呢?或者咱们应该将其看作机器学习中什么类型的问题呢?
现实状态下,咱们冀望对于一个输出状态,输入其无误差的处分价值。对于价值函数,如果输出状态是 $s_a$,正确的输入价值应该是 $G_a$。如果输出状态是 $s_b$,正确的输入价值应该是 $G_b$。所以在训练的时候,其就是一个典型的机器学习中的回归问题。咱们理论中须要输入的仅仅是一个非准确值,即咱们心愿在输出状态 $s_a$ 的时候,输入价值与 $G_a$ 越近越好;输出 $s_b$ 的时候,输入价值与 $G_b$ 越近越好。其训练方法与咱们在训练卷积神经网络等深度神经网络时的办法相似。
2.5 基于本章注释中介绍的基于时序差分的网络办法,具体地,咱们应该怎么训练模型呢?
基于时序差分网络的外围函数为 $V_{\pi}\left(s_{t}\right)=V_{\pi}\left(s_{t+1}\right)+r_{t}$。咱们将状态 $s_t$ 输出网络,因为将 $s_t$ 输出网络会失去输入 $V_{\pi}(s_t)$,同样将 $s_{t+1}$ 输出网络会失去 $V_{\pi}(s_{t+1})$。同时外围函数 $V_{\pi}\left(s_{t}\right)=V_{\pi}\left(s_{t+1}\right)+r_{t}$ 通知咱们,$V_{\pi}(s_t)$ 减 $V_{\pi}(s_{t+1})$ 的值应该是 $r_t$。咱们心愿它们两个相减的损失值与 $r_t$ 尽可能地靠近。这也是网络的优化指标,咱们称之为损失函数。
2.6 动作价值函数和状态价值函数的有什么区别和分割?
(1)状态价值函数的输出是一个状态,它依据状态计算出以后这个状态当前的累积处分的期望值是多少。
(2)动作价值函数的输出是状态 - 动作对,即在某一个状态采取某一个动作,同时假如咱们都应用策略 $\pi$,失去的累积处分的期望值是多少。
2.7 请介绍 Q 函数的两种示意办法。
?
(1)应用状态 - 动作对示意时,即当 Q 函数的输出是状态 - 动作对时,输入就是一个标量。
(2)仅应用状态示意时,即当 Q 函数的输出仅是一个状态时,输入就是多个价值。
2.8 当失去了 Q 函数后,咱们该当如何找到更好的策略 $\pi’$ 呢?或者说 $\pi’$ 的实质是什么?
首先,$\pi’$ 由 $\pi^{\prime}(s)=\underset{a}{\arg \max} Q_{\pi}(s, a)$ 计算而得,其示意假如咱们曾经学习出 $\pi$ 的 Q 函数,对于某一个状态 $s$,把所有可能的动作 $a$ 一一代入这个 Q 函数,看看哪一个动作 $a$ 能够让 Q 函数的价值最大,那么该动作就是 $\pi’$ 将会执行的动作。所以依据以上办法决定动作的策略 $\pi’$ 肯定比原来的策略 $\pi$ 要好,即 $V_{\pi^{\prime}}(s) \geqslant V_{\pi}(s)$。
2.9 解决摸索 - 利用困境问题的摸索的办法有哪些?
(1)$\varepsilon$- 贪婪:咱们有 $1-\varepsilon$ 的概率(通常 $\varepsilon$ 很小)齐全依照 Q 函数决定动作,然而有 $\varepsilon$ 的概率使得动作是随机的。通常在实现上,$\varepsilon$ 的值会随着工夫递加。也就是在最开始的时候,因为还不晓得哪个动作是比拟好的,所以咱们会花比拟大的力量做摸索。接下来随着训练的次数越来越多,咱们曾经比拟确定哪一种策略是比拟好的,就会缩小摸索,从而把 $\varepsilon$ 的值变小,次要依据 Q 函数来决定将来的动作,随机性就会变小。
(2)玻尔兹曼摸索:这个办法比拟像策略梯度。在策略梯度外面,网络的输入是一个冀望动作空间上的一个概率分布,咱们依据概率分布去采样。所以也能够依据 Q 值确定一个概率分布,假如某一个动作的 Q 值越大,代表它越好,咱们采取这个动作的概率就越高。
2.10 咱们应用教训回放有什么益处
(1)首先,在强化学习的整个过程中,最花工夫的过程是与环境交互,应用 GPU 乃至 TPU 来训练网络相对来说是比拟快的。而用回放缓冲区能够缩小与环境交互的次数。因为在训练的时候,咱们的教训不须要统统来自于某一个策略(或者以后时刻的策略)。一些由过来的策略所失去的教训能够放在回放缓冲区中被应用屡次,被重复地再利用,这样采样到的教训能力被高效地利用。
(2)另外,在训练网络的时候,咱们其实心愿一个批量外面的数据越多样越好。如果一个批量外面的数据都是同性质的,咱们训练出的模型的拟合能力可能不会很乐观。如果一个批量外面都是一样的数据,在训练的时候,拟合成果会比拟差。如果回放缓冲区外面的教训统统来自于不同的策略,那么采样到的一个批量外面的数据会是比拟多样的。这样能够保障咱们的模型的性能至多不会很差。
2.11 在教训回放中咱们察看 $\pi$ 的价值,发现外面混淆了一些不是 $\pi$ 的教训,这会有影响吗?
没影响。这并不是因为过来的 $\pi$ 与当初的 $\pi’$ 很类似,就算过来的 $\pi$ 不是很类似,其实也是没有关系的。次要的起因是咱们并不是去采样一条轨迹,咱们只能采样一个教训,所以与是不是异策略是没有关系的。就算是异策略,就算是这些教训不是来自 $\pi$,咱们还是能够应用这些教训来估测 $Q_{\pi}(s,a)$。
2.12 为什么传统的深度 Q 网络的成果并不好?能够参考其公式 $Q(s_t ,a_t)=r_t+\max_{a}Q(s_{t+1},a)$ 来形容。
因为理论利用时,须要让 $Q(s_t ,a_t)$ 与 $r_t+\max_{a}Q(s_{t+1},a)$ 尽可能相等,即与咱们的指标越靠近越好。能够发现,目标值很容易一不小心就被设置得太高,因为在计算该目标值的时候,咱们实际上在做的事件是看哪一个动作 $a$ 能够失去最大的 Q 值,就把它加上去,使其成为咱们的指标。
例如,当初有 4 个动作,原本它们失去的 Q 值都是差不多的,它们失去的处分也都是差不多的,然而在估算的时候是有误差的。如果第 1 个动作被高估了,那指标就会执行该动作,而后就会选这个高估的动作的 Q 值加上 $r_t$ 当作目标值。如果第 4 个动作被高估了,那指标就会选第 4 个动作的 Q 值加上 $r_t$ 当作目标值。所以指标总是会选那个 Q 值被高估的动作,咱们也总是会选那个处分被高估的动作的 Q 值当作 Q 值的最大值的后果去加上 $r_t$ 当作新目标值,因而目标值总是太大。
2.13 在传统的深度 Q 网络中,咱们应该怎么解决目标值太大的问题呢?
咱们能够应用双深度 Q 网络解决这个问题。首先,在双深度 Q 网络外面,选动作的 Q 函数与计算价值的 Q 函数不同。在深度 Q 网络中,须要穷举所有的动作 $a$,把每一个动作 $a$ 都代入 Q 函数并计算哪一个动作 $a$ 反馈的 Q 值最大,就把这个 Q 值加上 $r_t$。然而对于双深度 Q 网络的两个 Q 网络,第一个 Q 网络决定哪一个动作的 Q 值最大,以此来决定选取的动作。咱们的 Q 值是用 $Q’$ 算进去的,这样有什么益处呢?为什么这样就能够防止适度预计的问题呢?假如咱们有两个 Q 函数,如果第一个 Q 函数高估了它当初选出来的动作 $a$ 的值,那没关系,只有第二个 Q 函数 $Q’$ 没有高估这个动作 $a$ 的值,计算失去的就还是正常值。假如反过来是 $Q’$ 高估了某一个动作的值,那也不会产生适度预计的问题。
2.14 请问双深度 Q 网络中所谓的 $Q$ 与 $Q’$ 两个网络的性能是什么?
在双深度 Q 网络中存在两个 Q 网络,一个是指标的 Q 网络,一个是真正须要更新的 Q 网络。具体实现办法是应用须要更新的 Q 网络选动作,而后应用指标的 Q 网络计算价值。双深度 Q 网络相较于深度 Q 网络的更改是起码的,它简直没有减少任何的运算量,甚至连新的网络都不须要。惟一要扭转的就是在找最佳动作 $a$ 的时候,原本应用 $Q’$ 来计算,即用指标的 Q 网络来计算,当初改成用须要更新的 Q 网络来计算。
2.15 如何了解竞争深度 Q 网络的模型变动带来的益处?
对于 $\mathrm{Q}(s,a)$,其对应的状态因为为表格的模式,因而是离散的,而理论中的状态却不是离散的。对于 $\mathrm{Q}(s,a)$ 的计算公式—— $\mathrm{Q}(s,a)=\mathrm{V}(s)+\mathrm{A}(s,a)$。其中的 $\mathrm{V}(s)$ 对于不同的状态都有值,$\mathrm{A}(s,a)$ 对于不同的状态都有不同的动作对应的值。所以从实质上来说,咱们最终矩阵 $\mathrm{Q}(s,a)$ 的后果是将每一个 $\mathrm{V}(s)$ 加到矩阵 $\mathrm{A}(s,a)$ 中失去的。从模型的角度思考,咱们的网络间接扭转的不是 $\mathrm{Q}(s,a)$,而是扭转的 $\mathrm{V}$、$\mathrm{A}$。然而有时咱们更新时不肯定会将 $\mathrm{V}(s)$ 和 $\mathrm{Q}(s,a)$ 都更新。将状态和动作对分成两个局部后,咱们就不须要将所有的状态 - 动作对都采样一遍,咱们能够应用更高效的预计 Q 值的办法将最终的 $\mathrm{Q}(s,a)$ 计算出来。
2.16 应用蒙特卡洛和时序差分均衡办法的优劣别离有哪些?
劣势:时序差分办法只采样了一步,所以某一步失去的数据是实在值,接下来的都是 Q 值估测进去的。应用蒙特卡洛和时序差分均衡办法采样比拟多步,如采样 $N$ 步才估测价值,所以估测的局部所造成的影响就会比拟小。
劣势:因为智能体的处分比拟多,所以当咱们把 $N$ 步的处分加起来时,对应的方差就会比拟大。为了缓解方差大的问题,咱们能够通过调整 $N$ 值,在方差与不准确的 Q 值之间获得一个均衡。这里介绍的参数 $N$ 是超参数,须要微调参数 $N$,例如是要多采样 3 步、还是多采样 5 步。
2.17 深度 Q 网络相比基于策略梯度的办法为什么训练成果更好、更安稳?
在深度 Q 网络中,只有可能预计出 Q 函数,就能够找到一个比拟好的策略。同样地,只有可能预计出 Q 函数,就能够加强对应的策略。因为预计 Q 函数是一个比拟容易的回归问题,在这个回归问题中,咱们能够时刻察看模型训练的成果是不是越来越好(个别状况下咱们只须要关注回归的损失有没有降落,就能够判断模型学习得好不好),所以预计 Q 函数相较于学习一个策略来说是比拟容易的。只须要预计 Q 函数,就能够保障当初肯定会失去比拟好的策略,同样其也比拟容易操作。比照来说,策略梯度办法中的优化指标是最大化总回报,然而咱们很难找到一个明确的损失函数来进行优化,其本质上是一个策略搜寻问题,也就是一个无约束的优化问题。
2.18 深度 Q 网络在解决间断动作时存在什么样的问题呢?对应的解决办法有哪些呢?
咱们在日常生活中常见的问题大都是蕴含间断动作的,例如智能体要进行主动驾驶,其就须要决定方向盘要左转几度或右转几度,这就是间断的动作;假如智能体是一个机器人,它身上有 50 个关节,它的每一个动作就对应到这 50 个关节的角度,这些角度也是间断的。
然而在应用深度 Q 网络时,很重要的一步是要求可能解决对应的优化问题。当咱们预估出 Q 函数 $Q(s,a)$ 当前,必须要找到一个动作,它能够让 $Q(s,a)$ 最大。假如动作是离散的,那么动作 $a$ 的可能性是无限的。但如果动作是间断的,咱们就不能像对离散的动作一样,穷举所有可能的动作了。
为了解决这个问题,有以下几种计划。
(1)第一个计划:咱们能够应用采样办法,即随机采样出 $N$ 个可能的动作,而后一个一个代入 Q 函数中,计算对应的 $N$ 个 Q 值,并比拟哪一个最大。然而这个计划因为应用采样办法所以不会十分准确。
(2)第二个计划:咱们将这个间断动作问题,建模为一个优化问题,从而能够用梯度回升去最大化咱们的指标函数。具体地,咱们将动作视为变量,应用梯度回升更新动作对应的 Q 值。然而这个计划通常工夫花销比拟大,因为其须要迭代计算。
(3)第三个计划:设计一个特地的网络架构,即设计一个特地的 Q 函数,使得求解让 Q 函数最大化的动作 $a$ 变得非常容易。也就是这里的 Q 函数不是一个狭义的 Q 函数,咱们能够应用非凡办法设计 Q 函数,使得寻找让这个 Q 函数最大的动作 $a$ 非常容易。然而这个计划的 Q 函数不能随便设计,其必须有一些额定的限度。
(4)第四个计划:不必深度 Q 网络,毕竟用其解决间断动作比拟麻烦。
3. 面试必知必答
3.1 友善的面试官:请问深度 Q 网络是什么?其两个关键性的技巧别离是什么?
深度 Q 网络是基于深度学习的 Q 学习算法,其联合了价值函数近似与神经网络技术,并采纳了指标网络和教训回放技巧进行网络的训练。指标网络和教训回放
3.2 友善的面试官:那咱们持续剖析!你方才提到的深度 Q 网络中的两个技巧————指标网络和教训回放,其具体作用是什么呢?
在深度 Q 网络中某个动作价值函数的更新依赖于其余动作价值函数。如果咱们始终更新价值网络的参数,会导致更新指标一直变动,也就是咱们在追赶一个一直变动的指标,这样势必会不太稳固。为了解决基于时序差分的网络中,优化指标 $Q_{\pi}\left(s_{t}, a_{t}\right) =r_{t}+Q_{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 左右两侧会同时变动使得训练过程不稳固,从而增大回归难度的问题,指标网络抉择将优化指标的左边即 $r_{t}+Q_{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 固定,通过扭转优化指标右边的网络参数进行回归。对于教训回放,其会构建一个回放缓冲区,用来保留许多数据,每一个数据的内容包含:状态 $s_t$、采取的动作 $a_t$、失去的处分 $r_t$、下一个状态 $s_{t+1}$。咱们应用 $\pi$ 与环境交互屡次,把收集到的数据都放到回放缓冲区中。当回放缓冲区“装满”后,就会主动删去最早进入缓冲区的数据。在训练时,对于每一轮迭代都有绝对应的批量(与咱们训练一般网络一样,通过采样失去),而后用这个批量中的数据去更新 Q 函数。即 Q 函数在采样和训练的时候会用到过来的教训数据,也能够打消样本之间的相关性。
3.3 友善的面试官:深度 Q 网络和 Q 学习有什么异同点?
整体来说,从名称就能够看出,两者的指标价值以及价值的更新形式基本相同。但有如下不同点:
(1)首先,深度 Q 网络将 Q 学习与深度学习联合,用深度网络来近似动作价值函数,而 Q 学习则是采纳表格进行存储。
(2)深度 Q 网络采纳了教训回放的技巧,从历史数据中随机采样,而 Q 学习间接采纳下一个状态的数据进行学习。
3.4 友善的面试官:请问,随机性策略和确定性策略有什么区别吗?
随机性策略示意为某个状态下动作取值的散布,确定性策略在每个状态只有一个确定的动作能够选。从熵的角度来说,确定性策略的熵为 0,没有任何随机性。随机性策略有利于咱们进行适度的摸索,确定性策略不利于进行摸索。
3.5 友善的面试官:请问不突破数据相关性,神经网络的训练成果为什么就不好?
在神经网络中通常应用随机梯度降落法。随机的意思是咱们随机抉择一些样本来增量式地预计梯度,比方罕用的批量训练方法。如果样本是相干的,就意味着前后两个批量很可能也是相干的,那么预计的梯度也会呈现出某种相关性。然而在极其条件下,前面的梯度预计可能会对消掉后面的梯度估计量,从而使得训练难以收敛。
3.6 友善的面试官:深度 Q 网络都有哪些变种?引入状态处分的是哪种?
深度 Q 网络有 3 个经典的变种:双深度 Q 网络、竞争深度 Q 网络、优先级双深度 Q 网络。
(1)双深度 Q 网络:将动作抉择和价值预计离开,防止 Q 值被过高估计。
(2)竞争深度 Q 网络:将 Q 值合成为状态价值和劣势函数,失去更多有用信息。
(3)优先级双深度 Q 网络:将教训池中的教训依照优先级进行采样。
3.7 友善的面试官:请简述双深度 Q 网络原理。
深度 Q 网络因为总是抉择以后最优的动作价值函数来更新以后的动作价值函数,因而存在过预计问题(预计的价值函数值大于实在的价值函数值)。为理解耦这两个过程,双深度 Q 网络应用两个价值网络,一个网络用来执行动作抉择,而后用另一个网络的价值函数对应的动作值更新以后网络。
3.8 友善的面试官:请问竞争深度 Q 网络模型有什么劣势呢?
对于 $\boldsymbol{Q}(s,a)$,其对应的状态因为为表格的模式,因而是离散的,而理论的状态大多不是离散的。对于 Q 值 $\boldsymbol{Q}(s,a)=V(s)+\boldsymbol{A}(s,a)$。其中的 $V(s)$ 是对于不同的状态都有值,$\boldsymbol{A}(s,a)$ 对于不同的状态都有不同的动作对应的值。所以实质上,咱们最终的矩阵 $\boldsymbol{Q}(s,a)$ 是将每一个 $V(s)$ 加到矩阵 $\boldsymbol{A}(s,a)$ 中失去的。然而有时咱们更新时不肯定会将 $V(s)$ 和 $\boldsymbol{Q}(s,a)$ 都更新。咱们将其分成两个局部后,就不须要将所有的状态 - 动作对都采样一遍,咱们能够应用更高效的预计 Q 值的办法将最终的 $\boldsymbol{Q}(s,a)$ 计算出来。
更多优质内容请关注公号:汀丶人工智能