上古时期的论文。

Playing Atari with Deep Reinforcement Learning

通过深度强化学习玩Atari

0 摘要

我们提出了第一个深度学习模型,成功地通过强化学习直接从高维感官输入学习控制策略。该模型是一个卷积神经网络,使用Q-learning的变体进行训练,其输入是原始像素,输出是一个估计未来奖励的值函数。我们将我们的方法应用到7款来自街机学习环境的Atari 2600游戏中,没有调整架构或学习算法。我们发现,它在6个游戏中超过了之前所有的方法,在3个游戏中超过了人类专家。

1 介绍

从高维感知输入中学习控制agents,像视觉或者speech 是强化学习中一个长期的挑战。大部分成功的涉及到这几个领域的 RL 应用都依赖于手工设计的feature 和 线性策略函数或者策略表示的组合。明显,这种系统的性能严重的依赖于特征表示的质量。

最近深度学习的发展,对于从原始感知数据中提取高层feature 称为可能,并且在计算机视觉和语音识别上面取得了很大的进展。这些方法利用神经网络结构,包括 神经网络,多层感知机,RBM 和 RNN,已经涉及到监督学习和非监督学习领域。大家很自然的就会问,是否可以利用相似的技术来解决 RL 中感知数据的问题。

然而, RL 从深度学习的角度,体现了几个挑战:

首先,大部分成功的 深度学习算法都依赖于海量标注的数据, RL 算法,从另一个角度,必须从一个变换的奖励信号中进行学习,而且这种信号还经常是稀疏的,有噪声的,且是延迟的。动作 和 导致的奖励 之间的延迟,可能有几千步那么长,看起来在监督学习中,当直接将输入和目标联系起来非常吓人。

另一个问题是,大部分深度学习算法都假设 data samples 是相互独立的,然而, RL 经常遇到 高度相关的状态。

此外,在 RL 中数据分布随着算法学习到新的行为而改变,这对于深度学习假设固定的潜在分布是有问题的。

这篇文章表明,一个 CNN 可以克服这些挑战,并且在复杂的 RL 环境下从原始视频数据中学习到控制策略。该网络是用变种的 Q-learning 算法训练的,利用 SGD 来更新权重。为了降低相关数据和非静态分布的问题,我们使用了一种 经验重播机制 (experience replay mechanism),该机制随机的采样之前的转换,所以就在许多过去的行为上平滑了训练分布。

图1:5 Atari2600游戏的截图(从左到右):《Pong》、《Breakout》、《Space Invaders》、《Seaquest》、《Beam Rider》

我们将我们的方法应用于在Arcade学习环境(ALE)[3]中实现的一系列Atari 2600游戏。 Atari 2600是具有挑战性的RL测试平台,可为坐席提供高维度的视觉输入(60Hz时210160 RGB视频)和一系列有趣的任务,这些任务设计给人类玩家很难。我们的目标是创建一个能够成功学习如何玩尽可能多游戏的单一神经网络代理。该网络没有提供任何特定于游戏的信息或手工设计的视觉功能,并且不了解模拟器的内部状态;它仅从视频输入,奖励和终端信号以及一系列可能的动作中学到了什么,就像人类玩家一样。此外,在整个游戏中,用于训练的网络体系结构和所有超参数都保持不变。到目前为止,在我们尝试的7款游戏中,有6款的网络性能超过了所有以前的RL算法,并且在其中3款游戏中,其性能都超过了人类专家。图1提供了用于训练的五个游戏的示例屏幕截图。

2 背景

我们考虑到 agent和环境交互,即:Atari emulator,是一个动作,观察和奖励的序列。在每一个时间步骤,agent 选择一个动作 atat 从合法的动作集合 A=1,2,...,KA=1,2,...,K. 该动作被传递到模拟器,然后修改其初始状态和游戏得分。总的来说 环境可能是随机的。模拟器的中间状态,agent 是无法看到的;但是 agent 可以观察到一张图像 xt,由原始像素值构成的表示当前屏幕的向量。此外,他也接收到表示游戏得分的奖励 rt。注意到,总的来说,游戏得分依赖于动作和观察的整个序列;关于一个动作的反馈可能得在几千次时间步骤上才能收到。

由于该 agent 仅仅观察到当前屏幕的图像,所以任务是部分观察到的,许多模拟器状态是感官上有锯齿的,即:仅仅从当前的屏幕,无法完全理解当前的情形。我们所以就考虑 动作和观察的序列, St=x1,a1,x2,...,at−1,然后依赖于这些序列去学习游戏策略。模拟器中的序列都认为会在有限的时间步骤内结束。这就是说在每一个序列,一个large 但是有限的 MDP 是一个清楚的状态。结果,我们采用标准的 RL 方法来处理 MDPs,利用完整的序列 st 作为时刻t的状态表示。

agent的目标是和模拟器交互,然后选择动作,使得将来的奖励最大化。我们做出假设,即:将来的奖励每一个时间步骤都会打一个折扣 γ,定义将来的时刻 t 的折扣 return 为:

我们定义一个最优动作-值函数 Q∗(s,a)作为采用任何策略后最大期望 return,在看了一些序列s然后采取了一些动作a,

Q∗(s,a)=maxπE[ Rt | st = s, at=a,π],其中,π 是一个从序列到动作的映射。

最优的动作值函数服从一个重要的等式,叫做:Bellman equation. 这个基于如下的观察:如果下一个时间步骤的序列s'的最优值 Q^*(s', a') 对于所有可能的动作a'都是已知的,然后最优策略就是选择动作a'使得期望值 r+γQ∗(s′,a′)最大化:

许多强化学习算法背后基本的idea是预测 the action-value function,利用 Bellman equation 作为一次迭代更新,Qi+1 ( s , a)=E[r+ γa′ Qi(s,a)]如此 value iteration 算法收敛到一个最优的动作值函数,Qi−>Q∗。实际上,这个基础的方法是完全不实用的,因为:动作值函数是对每一个序列分别预测的,而没有任何泛化。(the action-value function is estimated separately for each sequence, without any generalisation.) 相反,使用 function approximator 去预测 action-value function的值确实很常见的,即:Q ( s , a ; θ)=Q∗( s , a )在强化学习领域,这通常是一个线性函数,但是有时候非线性函数估计也用,如:神经网络。我们将带有权重的神经网络函数记为:Q-network。一个Q-network 可以通过一个序列的损失函数 Li(θi)最小化来实现每一次迭代i的改变。

其中, 是第i次迭代的目标,也就是当做 label 来用。当优化损失函数 Li(θi),前一次迭代的参数固定。注意到,target 依赖于网络的权重,这是和监督学习当中的 target对比而来的,在学习开始之前是固定的。区分开损失函数与对应的权重,我们得到如下的梯度:

不是在上述梯度中,计算全部的期望,比较适合的方法是利用 SGD 的方法来优化损失函数。If the weights are updated after every time-step, and the expectations are replaced by single samples from the behaviour distribution and the emulator, respectively, then we arrive at the familiar Q-learning algorithm.

注意到,该算法是 "model-free"的,即:直接从模拟器中利用采样,解决了 RL 学习任务,而没有显示的构建 estimate。本算法也是“off-policy”的,即:学习贪婪策略 a=maxaQ(s,a;θ),服从一个行为分布,确保状态空间的足够探索。实际上,行为分布经常被贪婪策略选择,有 1-x 的概率进行探索,以 x 的概率随机选择一个动作。

3 相关工作

强化学习最成功的故事也许就是TD-gammon,它是一种五子棋游戏程序,完全通过强化学习和自我游戏来学习,并达到了超人的游戏水平[24]。 TD-gammon使用类似于Q学习的无模型强化学习算法,并使用具有一个隐藏层的多层感知器来近似值函数。

但是,早期尝试跟踪TD游戏机,包括将相同方法应用于国际象棋,围棋和跳棋的尝试都不太成功。这导致人们普遍认为,TD-游戏模式是仅在步步高中有效的特例,这可能是因为骰子卷中的随机性有助于探索状态空间,并使价值函数特别平滑[19]。

此外,研究表明,将无模型的强化学习算法(例如Qlearning)与非线性函数逼近器[25]或实际上与非策略学习[1]结合使用,可能会导致Q网络发散。随后,强化学习的大部分工作都集中在具有更好收敛性的线性函数逼近器上[25]。

最近,人们开始对将深度学习与强化学习相结合感兴趣。深度神经网络已用于估计环境E;受限的玻尔兹曼机已被用来估计值函数[21];或政策[9]。此外,通过梯度时差方法已经部分解决了Q学习的发散问题。当使用非线性函数逼近器评估固定策略时,这些方法已被证明可以收敛[14]。或使用Q学习的受限变体学习线性函数近似的控制策略时[15]。但是,这些方法尚未扩展到非线性控制。

也许与我们自己的方法最相似的先前工作是神经拟合Q学习(NFQ)[20]。 NFQ使用RPROP算法更新Q网络的参数,优化了公式2中的损失函数序列。但是,它使用批处理更新,其每次迭代的计算成本与数据集的大小成正比,而我们认为随机梯度更新的每次迭代的固定成本低,并且可以扩展到大型数据集。通过首先使用深度自动编码器学习任务的低维表示,然后将NFQ应用于此表示,NFQ也已成功通过纯视觉输入成功应用于简单的实际控制任务。相反,我们的方法直接从视觉输入端到端应用强化学习。结果,它可能会学习与区分动作值直接相关的功能。 Q学习以前也曾与经验重播和简单的神经网络相结合[13],但还是从低维状态开始,而不是原始的视觉输入。

[3]介绍了Atari 2600仿真器作为强化学习平台的使用,他应用了具有线性函数逼近和通用视觉特征的标准强化学习算法。随后,通过使用大量特征并使用拔河哈希将特征随机投影到低维空间中来改善结果[2]。 HyperNEAT演化架构[8]也已应用于Atari平台,在该平台上,它用于演化(分别针对每个不同的游戏)代表该游戏策略的神经网络。当使用仿真器的重置工具对确定性序列进行反复训练时,这些策略便能够利用Atari游戏中的设计缺陷。

4 深度强化学习

最近在计算机视觉和语音识别领域的突破,主要依赖于有效的深度学习在海量训练数据上的学习。最成功的方法是直接从原始输入上进行训练,基于 SGD 进行权重更新。通过喂养深度神经网络足够的数据,通常可以学习到比手工设计特征要好得多的特征表达(feature representation)。这些成功激发了我们在 RL 相关的工作。我们的目标是将 RL 算法和深度神经网络进行联系,也是直接处理 RGB 图像,并且利用 随机梯度更新来有效的处理训练数据。

和 TD-Gammon 以及类似的 online方法相对,我们利用一种称为 experience replay 的技术,我们将 agent 每一个时间步骤的经验存储起来,et=(st,at,rt,st+1),将许多 episodes 存储进一个 replay memory。在算法内部循环中,我们采用 Q-learning 更新,或者 minibatch updates,来采样 experience,从存储的样本中随机的提取。在执行 experience replay之后,agent 根据贪婪算法,选择并且执行一个动作。由于采用任意长度的 histories 作为神经网络的输入是非常困难的,我们的 Q-function 作用在由函数作用之后,固定长度表示的 histories。算法的全称,我们称为 Deep Q-learning。

算法与传统的 Q-learning 相比,有以下几个优势:

首先,experience 的每一个步骤都在权重更新上有潜在的应用,可以允许更好的数据效率。

第二,从连续的样本上直接进行学习是 inefficient的,由于样本之间较强的相关性;随机提取这些样本,就打算了他们之间的联系,所以减少了更新的方差。

第三,当学习 on-policy 的时候,当前参数决定了下一个数据样本( when learning on-policy the current parameters determine the next data sample that the parameters are trained on)。例如,如果最大值动作是向左移动,那么训练样本就主要由左侧的样本构成;如果最大化动作是向右移动,然后训练分布也随之改变。It is easy to see how unwanted feedback loops may arise and the parameters could get stuck in a poor local minimum, or even diverge catastrophically. 通过利用 experience replay,行为分布就在之前许多状态上取了平均,使得学习更加平滑,而不至于震荡或者不收敛的情况。

在我们的方法之中,我们的算法仅仅存储最近 N 个 experience tuples,当执行更新的时候,随机的从 D 上均匀的采样。

数据的预处理,就是对输入的图像进行降分辨率等相关处理,使得尽可能的减少计算量。

模型的结构主要是:2层卷积层,后面接2层全连接层,输出是动作空间,即:所有的可能要采取的动作。

算法的流程如下图所示:

其次,由于样本之间的相关性强,因此直接从连续样本中学习是无效的。将样本随机化会破坏这些相关性,因此会减少更新的方差。第三,当学习策略时,当前参数确定训练参数的下一个数据样本。例如,如果最大化动作是向左移动,则训练样本将由左侧样本占主导;如果最大化动作然后切换到右侧,则训练分布也将切换。很容易看到不希望有的反馈回路如何产生,并且参数可能停留在较差的局部最小值中,甚至发生灾难性的发散[25]。通过使用经验重播,行为分布可以在其许多先前状态上平均,从而使学习变得顺畅,并避免参数出现波动或发散。请注意,在通过经验重播进行学习时,有必要学习非政策(因为我们当前的参数与用于生成样本的参数不同),这激发了选择Q学习的动机。

实际上,我们的算法仅将最近的N个体验元组存储在重播内存中,并在执行更新时从D处随机地均匀采样。这种方法在某些方面受到限制,因为内存缓冲区不区分重要的过渡,并且由于有限的内存大小N而总是用最近的过渡覆盖。类似地,统一采样对重播内存中的所有过渡都具有同等的重要性。一个更复杂的采样策略可能会强调过渡,我们可以从中学习最多,类似于优先扫描[17]。

4.1 预处理和模型架构

直接使用原始Atari帧(它们是具有210个调色板的210160像素图像)可能需要进行计算,因此我们采用了旨在减少输入维数的基本预处理步骤。通过首先将原始帧的RGB表示转换为灰度并将其下采样为11084图像,来对原始帧进行预处理。最终输入表示是通过裁剪图像的84 84区域来大致捕获的游戏区域而获得的。仅由于我们使用[11]中的2D卷积的GPU实现(需要平方输入)才需要最后的裁剪阶段。对于本文中的实验,算法1中的函数将此预处理应用于历史记录的最后4帧,并将其堆叠以生成Q函数的输入。

有几种使用神经网络参数化Q的可能方法。由于Q将历史动作对映射到其Q值的标量估计值,因此以前的一些方法已将历史和动作用作神经网络的输入[20,12]。这种架构的主要缺点是,需要单独的前向通过来计算每个动作的Q值,从而导致成本随动作数量线性增长。相反,我们使用一种体系结构,在该体系结构中,每个可能的动作都有一个单独的输出单元,并且只有状态表示是神经网络的输入。输出对应于输入状态下单个动作的预测Q值。这种类型的体系结构的主要优点是能够仅通过网络进行一次前向传递就可以计算给定状态下所有可能动作的Q值。

现在我们将描述所有7款雅达利游戏所使用的精确架构。神经网络的输入是由ф生成的84 x 84 x 4的图像。第一隐层卷积16个8 × 8滤波器与输入图像的stride 4,并应用一个整流非线性[10,18]。第二层隐层对32个4 × 4滤波器进行步长为2的卷积,然后是一个整流非线性。最后的隐含层完全连接,由256个整流单元组成。输出层是一个完全连接的线性层,每个有效的操作只有一个输出。在我们所考虑的游戏中,有效行动的数量在4到18个之间变化。我们将使用我们的方法训练的卷积网络称为深度q网络(Deep Q-Networks, DQN)。

5 实验

到目前为止,我们已经在7种流行的ATARI游戏《光束骑士》,《突围》,《耐力赛》,《乒乓》,《Q·伯特》,《Seaquest》,《太空入侵者》上进行了实验。我们在所有七个游戏中都使用相同的网络体系结构,学习算法和超参数设置,这表明我们的方法足够强大,可以在不包含特定于游戏的信息的情况下用于各种游戏。在评估代理商对真实和未修改游戏的评估时,我们仅在训练期间对游戏的奖励结构进行了一次更改。由于每个游戏的分数规模差异很大,因此我们将所有正奖励固定为1,将所有负奖励固定为-1,而将0奖励保持不变。以这种方式削减奖励限制了误差导数的范围,并使在多个游戏中使用相同的学习率更加容易。同时,由于它无法区分不同程度的奖励,因此可能会影响我们代理的业绩。

在这些实验中,我们使用大小为32的小批处理的RMSProp算法。训练过程中的行为策ε-greedy,在前一百万帧中从1到0.1线性退火,之后固定为0.1。我们总共训练了1000万帧,并使用了一百万个最新帧的重放内存。

遵循先前玩Atari游戏的方法,我们还使用了一种简单的跳帧技术[3]。更准确地说,代理会在第k个帧而不是每个帧上看到并选择动作,并且对跳过的帧重复执行其最后一个动作。由于向前运行仿真器一步要比让代理选择一个动作所需的计算少得多,因此该技术允许代理在不显着增加运行时间的情况下玩大约k倍的游戏。除了Space Invaders以外,我们对所有游戏都使用k = 4,因为我们注意到使用k = 4会使激光器不可见,因为它们会闪烁一段时间。我们使用k = 3使激光器可见,并且此更改是任何游戏之间超参数值的唯一区别。

5.1 Training and Stability

在监督学习中,可以通过在训练和验证集上评估模型来轻松跟踪模型在训练过程中的性能。但是,在强化学习中,在培训过程中准确评估代理人的进度可能会很困难。正如[3]所建议的那样,由于我们的评估指标是特工在多个游戏中平均获得的情节或游戏中获得的总报酬,因此我们会在训练期间定期对其进行计算。平均总报酬指标往往非常嘈杂,因为对政策权重的微小变化会导致政策访问的州的分布发生较大变化。图2中最左边的两个图显示了在Seaquest和Breakout游戏中训练期间平均总奖励的变化情况。两种平均奖励图确实都非常嘈杂,给人一种印象,即学习算法并未取得稳定的进展。另一个更稳定的度量标准是策略的估计行动值函数Q,该函数估计代理通过从任何给定状态遵循其策略可以获取多少折扣奖励。我们通过在训练开始之前运行随机策略来收集一组固定的状态,并跟踪这些状态的最大2个预测Q的平均值。图2中最右边的两个图显示,平均预测Q值的增长比代理所获得的平均总回报要平滑得多,并且在其他五个游戏上绘制相同的度量也会产生相似的平滑曲线。除了在训练期间看到相对平稳的预测Q改善之外,我们的任何实验都没有遇到任何分歧问题。这表明,尽管缺乏理论上的收敛性保证,我们的方法仍能够使用稳定的学习信号和随机梯度下降来训练大型神经网络。

5.2 将价值函数形象化

图3展示了游戏Seaquest中学习值函数的可视化。 该图显示,在屏幕左侧出现敌人(A点)之后,预测值会跳跃。 然后,特工向敌人发射鱼雷,并且当鱼雷即将击中敌人时,预测值达到峰值(B点)。 最终,在敌人消失后(C点),该值大致下降到其原始值。 图3证明了我们的方法能够了解价值函数如何在合理复杂的事件序列中演化。

5.3 Main Evaluation

我们将结果与RL文献中效果最好的方法进行比较[3,4]。标记为Sarsa的方法使用Sarsa算法来学习针对Atari任务手工设计的几个不同功能集上的线性策略,我们报告了性能最佳的功能集的得分[3]。意外事件使用了与Sarsa相同的基本方法,但是通过在代理控制下的屏幕部分的学习表示来增强功能集[4]。请注意,这两种方法都通过使用背景减法并将128种颜色中的每一种视为单独的通道,结合了有关视觉问题的大量先验知识。由于许多Atari游戏对每种类型的物体都使用一种不同的颜色,因此将每种颜色视为单独的通道可能类似于生成单独的二进制映射图,从而对每种物体类型的存在进行编码。相反,我们的代理商仅接收原始的RGB屏幕截图作为输入,并且必须学会自己检测对象。

除了学到的特工之外,我们还报告专家级人类玩家的得分以及随机选择一致动作的策略。绩效是每个游戏玩了大约两个小时后获得的中位数奖励。请注意,我们报告的人类得分远高于Bellemare等人的得分。 [3]。对于学习的方法,我们遵循Bellemare等人使用的评估策略。 [3,5],并报告以固定数量的步数运行= 0:05的-greedy策略获得的平均分数。表1的前五行显示了所有游戏的平均游戏得分。尽管几乎没有任何关于输入的知识,但我们的方法(标记为DQN)在所有七个游戏中都大大优于其他学习方法。

在表1的最后三行中,我们还对[8]中的进化策略搜索方法进行了比较。我们报告了该方法的两组结果。 HNeat最佳分数反映了通过使用手动设计的对象检测器算法获得的结果,该算法在Atari屏幕上输出对象的位置和类型。HNeat像素分数是通过使用雅达利模拟器的特殊的8种颜色通道表示来获得的,它表示每个通道上的一个对象标签地图。这种方法在很大程度上依赖于找到表示成功利用的确定的状态序列。以这种方式学习的策略不太可能概括为随机干扰:因此,该算法只根据得分最高的单个事件进行评估。与此相反,我们的算法是在e-greedy控制序列上计算的,因此必须在一个广泛的范围内推广-各种可能的情况。尽管如此,我们在所有游戏中都展示了这一点,除了《太空入侵者》。不仅我们的max评估结果(第8行),而且我们的平均结果(第4行)都获得了更好的性能最后,我们的研究表明,我们的方法在击球、耐力和乒乓等方面比专业的人类选手有更好的表现,在平衡木骑手方面也达到了接近人类的表现。《Q*bert》、《Seaquest》和《Space Invaders》等游戏更具挑战性,因为它们要求玩家在较长时间内找到策略。

最后,我们证明了我们的方法比Breakout,Enduro和Pong上的人类专家性能更高,并且在Beam Rider上可以达到接近人类的性能。 我们在这方面与人类表现相去甚远的Q * bert,Seaquest,Space Invaders等游戏更具挑战性,因为它们要求网络寻找能够长期扩展的战略。

6 总结

本文介绍了一种用于强化学习的新深度学习模型,并展示了其仅使用原始像素作为输入即可掌握Atari 2600电脑游戏困难控制策略的能力。 我们还提出了一种在线Q-learning的变体,该变体结合了随机小批量更新和经验重播记忆,从而简化了RL深度网络的训练。 我们的方法在经过测试的七款游戏中有六款提供了最新的结果,而无需调整体系结构或超参数。

Playing Atari with Deep Reinforcement Learning-笔记相关推荐

  1. 算法笔记:Playing Atari with Deep Reinforcement Learning

    Playing Atari with Deep Reinforcement Learning 比较尴尬,上篇文章不是DQN的来源,这篇才是.上篇Nature文章对于DQN做出的改进上次没读明白,查看其 ...

  2. 论文笔记之:Playing Atari with Deep Reinforcement Learning

    Playing Atari with Deep Reinforcement Learning <Computer Science>, 2013 Abstract: 本文提出了一种深度学习方 ...

  3. [DQN] Playing Atari with Deep Reinforcement Learning

    论文链接:https://arxiv.org/abs/1312.5602 引用:Mnih V, Kavukcuoglu K, Silver D, et al. Playing atari with d ...

  4. 【强化学习】Playing Atari with Deep Reinforcement Learning (2013)

    Playing Atari with Deep Reinforcement Learning (2013) 这篇文章提出了第一个可以直接用强化学习成功学习控制policies的深度学习模型. 输入是r ...

  5. RL论文阅读【一】Playing Atari with Deep Reinforcement Learning

    1 废话 开始要认真的读论文的,计划每天晚上回宿舍看一半,两天看完一篇,第三天写博客总结,虽然有点慢吧,但是积少成多嘛~ 今天先介绍第一篇,也是深度强化学习的开山之作. 2 动机 一般把这篇论文称作深 ...

  6. 深度强化学习篇2:从Playing Atari with Deep Reinforcement Learning 看神经网络的输入,学习的状态空间

    Introduction:学习直接从高维的感观输入(视觉,语音)去直接控制智能体是强化学习一个长期的挑战.一些成功的RL应用都是依赖于hand-crafted的特征.最近深度学习的进步使提取高水平的特 ...

  7. 【论文翻译】Playing Atari with Deep Reinforcement Learning

    摘要:我们第一个提出了"利用强化学习从高维输入中直接学习控制策略"的深度学习模型.该模型是一个卷积神经网络,经过Q-learning训练,输入为原始像素,输出为:"用来估 ...

  8. Paper Reading 1 - Playing Atari with Deep Reinforcement Learning

    来源:NIPS 2013 作者:DeepMind 理解基础: 增强学习基本知识 深度学习 特别是卷积神经网络的基本知识 创新点:第一个将深度学习模型与增强学习结合在一起从而成功地直接从高维的输入学习控 ...

  9. Playing Atari with Deep Reinforcement Learning

    背景 实践中,因为action-value公式对于每个序列是被分别估计的.所以作为替换,在强化学习,通常用一个 函数拟合器 来估计action-value函数,典型的是一个线性拟合器,但是有时候是一个 ...

  10. 论文总结 - Playing Atari with Deep Reinforcement Learning

    论文地址

最新文章

  1. 公司Joomla项目笔记1
  2. [云炬创业管理笔记]第三章测试2
  3. python lambda函数详细解析(据说面试90%的人经常遇到)
  4. 大剑无锋之什么是死锁?【面试推荐】
  5. C++ 基类,子对象,派生类构造函数调用顺序
  6. 半年成java大佬_通过自学60天成为java大佬 第一天 知识点总结 数据类型
  7. OAuth2.0_授权服务配置_资源服务测试_Spring Security OAuth2.0认证授权---springcloud工作笔记146
  8. maven工程的多环境配置方案(profile)
  9. Ext.gridPanel中内容对齐
  10. mac配置adb环境变量
  11. 为什么在计算机里打开U盘会闪退,U盘闪退怎么办?
  12. 绿色建筑推动海口智慧城市发展
  13. 基于OAI协议元数据收割的.NET资源
  14. 计算机主机的声音线是哪个好,电脑显示器连接线哪种接口好|VGA、HDMI视频接口选哪个好...
  15. git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支
  16. php音频对比技术,HIFIDIY论坛-三种音频功放的音质特点比较 供参考 - Powered by Discuz!...
  17. solr mysql 导入命令_Solr 07 - Solr从MySQL数据库中导入数据 (Solr DIH的使用示例)
  18. Linux性能优化:性能优化工具
  19. JAVA开发(自研项目的开发与推广)
  20. 从软件分层说说LAXCUS分布式操作系统

热门文章

  1. 错误代码1500什么意思_宽带出错出错提示代码是示什么意思
  2. 地球人都在玩跨境电商
  3. excel 筛选重复项_列表项的Excel筛选器:2011年“鲨鱼周”
  4. RxSwift 学习笔记
  5. 爱情故事:追忆似水流年 回味永恒的爱恋
  6. java正则表达式 后顾_正则表达式 - CrazyManDF的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. edge怎么开启沉浸式阅读_《幻塔》首测今日开启 探索沉浸式开放世界_网络游戏新闻...
  8. 创客教育发展中的科技造物原理
  9. 如果360与QQ冲突下去不兼容,你会放弃哪一个?
  10. 2017南工软件ACM集训队选拔赛第一场