我要网赚

导航菜单

用深度Q网络玩电子游戏_我要网赚

哪一个网站玩游戏获利本文为 AI 研习社编译的技艺博客,原题目 :

Beating Video Games with Deep-Q-Networks

作者 | Liam Hinzman

翻译 | ceroo           

校正 | 斯蒂芬•二狗子        考核 | 酱番梨       整理 | 立鱼王

原文链接:

beating-video-games-with-deep-q-networks-7f73320b9592

我爱逝世玩电子游戏了。 

我每一天都玩,可是,乒乓球我连10岁妹妹都打不赢。

蛮挫败的,所以我决议创立一个深度Q收集,用这个收集进修如何在任一电子游戏中战胜我的妹妹。 

经过多少天的不停止编程(夜不能寐),这便是我用Deep-Q-Networks所能达成的实际:

偷偷看下我的DQN模型的结果(绿色球拍)

绿色球拍由DQN模型操纵,完整靠它自我棋战 ,以此进修怎么样玩乒乓球。

随 后,我会具体说说我的结果,但首先...

甚么是DQN(Deep-Q-Networks),它是怎么样事变的?

简单说:DQN连合了深度学习以及强化学习来学习如何玩电子游戏,并高出人类程度。 DQNs连合强化学习以及深度学习来玩视频游戏

你所必要知道的是,深度学习(明白DQN)是一种利用神经网络来模仿人类年夜脑事变的盘算架构。其中,神经网络的输入和输入都是数字。神经网络能够学习像房价猜测或者辨认肿瘤图像等任务。

如今,咱们继承回到DQN这条主线...  快速学会强化学习

那末甚么是强化学习呢?

强化学习是一种板滞学习技艺,它经过采取举措来学习如何最年夜化嘉奖。

一条狗大约会实行学习,如何最大限制地经过它的吠叫来引诱仆人抚摩它的肚皮,或者一只猫大约会实行学习,如何最大限制地通过它的腾跃“作”患上一手好逝世。这两种动物都是按照它们以后的形态采取举措的智能体,试图最大化某种嘉奖。

让咱们更深入地了解这些术语对于付一个“吃豆人”游戏的含义。

PacMan(吃豆人)(黄色圆圈)是智能体,这是玩家在游戏中操纵的。 形态日常指是游戏中的某个一个时候,在这里状态是游戏中的某一帧。智能体能够挑选进入哪一个标的目标(操纵),并利用这些操纵来防备死于鬼魂(负奖励)和吃更多的点(正奖励)。PacMan的目标是最大化你的患上分(奖励)。

紧张的强化学习术语

Agent  智能体:盘算机控制的内容(pac man) 

State   状态:游戏中的以后时候(PacMan中的单帧图像) 

Action 行动:由代理人作出的决议(PAC人员向左或向右移动) 

Reward 奖励: 智能体试图最大化的价格(在pac man中得分)

你还必要了解一件对于于强化学习明白深层Q网络的事情:Q值

Q值,即深度Q网络中的Q值,是一个行动在给定状态下的“品质”。假如一个行动具备高的预期长期价格,那末它便是高品质的。

睡前给妈妈一个拥抱(行动)可能不会立刻给我“奖励”,但从长远来看,它会给我很多爱(奖励),所以这个状态动作对的Q值很高(我在内心计算每一晚拥抱妈妈的Q值)。

你需要知道这些强化学习的见解,并以此了解DQN!   深入深度Q网络

那么,我是如何让一台电脑学习如何比别人更好地玩电子游戏的(并在乒乓球中击败我的妹妹)?

我使用DQN网络!

DQNs使用Q-learning学习给定状态下要采取的最佳行动(q值),并使用卷积网络作为Q-learning的类似值函数。

如下是要记取的关键点:

深度学习+强化学习=深度Q网络(DQN)

而不是为屏幕上的每个像素组合记忆差此外Q值(有十亿!)我们使用卷积网络在类似状态下推理出雷同的Q值。

卷积网络可以报告玩电子游戏的'Agent':“是的,这个地位根本上和另一个雷同,向上移动”。这使得'Agent'的工作变得轻易多了。它不需要数十亿个差别游戏状态的Q值本领学会,只要要多少百万个Q值来学习。

下面是我的DQN的卷积网络在代码中的模样:

下面是此代码块的感化:

将当前屏幕(状态)作为输出 

通过3个卷积层传达输入(用于在图像中查找地位图案) 

留意:不使用池化操作(空间位置在游戏中很紧张,我们想知道球在那边!) 

卷积层的输出被送入2个全毗邻层。 

线性层的输出则给出了DQN在当前状态下采取某种行动的几率。  预处理惩罚

我也做了一些游戏图像的预处理惩罚。Atari游戏一般为210x160像素大小,有128种不同的色彩。为了使我的DQN的工作更轻易,我将图像的采样率低落到84x84,并使其灰度化。 预处理过图像再也不明亮和多彩,但更易被我的DQN辨认。  损失函数

如今我们需要一些方法来评估DQN。环境如何?它在学习什么吗?我们如何调停它使它更好,得到更高的分数?

要知道局部这些,我们需要一个损失函数。

独一的题目是我们不知道最佳的谜底是什么,agent该当做什么。DQN如何学习本领比人类玩的更好,因此即使我们想模型到达多么,我们也无法制作出美满的标记数据集。

相同,我们使用这个损失方程来评估DQN本身: DQN的损失函数

这个Q网络Q-Network是给出要采取什么行动的网络。目的网络Target Network是给出我们使用的“ground truth”的类似值。

假如Q-Network猜测在某一状态下的精确动作因此60%几乎定性(几率)向上移动,而目标网络报告我们“你该当向上移动”,我们将使用反向传播调停Q-Network的参数,使其更可能预测在该状态下的“向上移动”。

我们通过DQN反向传播这种损失,并轻微调整Q网络的权重以淘汰损失。

该损失函数试图使DQN输出的移动概率更接近于目标网络给出的“精确挑选”,即接近100%断定性。  经历回放

现在DQNs好像就是Q学习和卷积网络的结合,根本上可以多么看。这个想法很简单,为什么它只在2015年被DeepMind研究人员引入?

神经网络不能很好地进行强化学习。

为什么神经网络和强化学习不能和谐相处?

两个来由起因

高度相干数据

非安稳分布

在有监督学习中,数据是不相干和牢固的。当图像分类器正在学习什么使一只猫成为一只猫时,表现给它的每个图像都将明显不同,数据是不相关的。此外,网络的预测(凡是是)不会影响下一步将看到的图像,数据集是牢固的,而且是从中随机抽样的。运动的不相关数据与神经网络很好地共同。

在强化学习中,数据是高度相关和非安稳的。当pac man移到左边时,板看起来基本雷同,数据高度相关。别的,网络的决定影响下一个状态,这使得数据分布非平稳。如果马里奥右移,他会看到新的硬币。这些硬币会让马里奥觉得向右移动老是个好主意,大概他永久不会发明他左边的秘密通道。

经历回放Experience Replay让神经网络能很好地进行强化学习。

‘Agent’得到的每个经验(包罗当前状态、动作、奖励和下一个状  态)都存储在所谓的经验回放内存中。

这种练习方法与DQN网络在当前学习中所得到样本来练习不同,是从重放存储器中随机抽取“回放”来训练网络。 经验回放让深度学习和强化学习成为兄弟。

与范例Q学习比拟,经验回放有三个下风:

更高数据使用

使数据不相关

均匀数据分布

首先,每个经验均可能被用于对DQN的神经网络进行屡次训练,从而提高数据服从。

第二,随机抽取经验样本对DQN神经网络进行训练,冲破了经验之间的相关性,淘汰了训练更新时的方差。

第三,当从经验中学习时,一旦获得经验(称为计谋学习),当前参数就决定了参数所训练的下一个数据样本。比方,如果最好的行动是将Pac Man向左移动,那么训练样本将由来自经验池中向左活动相关样本为主。

这种举动可能会导致DQN陷入蹩脚的部分最小值,乃至使其产生劫难性的偏偏离(比我更蹩脚)。 如果你不使用经验回放,模型会常常看到这个画面。

通过使用经验回放,用来训练DQN的经验来自很多不同的工夫点。这样可以消除了学习停止,防备劫难性的失利。

这种简单的经验见解办理了神 经网络在强化学习中的题目。现在他们可以和谐相处地一起玩了!  击败电子游戏

我在pytorch创立了一个DQN,并训练它玩乒乓球。

早先,我的DQN只能随便地玩乒乓球,但经过3个小时的训练,它学会了如何比人类玩得更好!

绿色桨是由我的超级棒DQN控制的

最猖獗的事情是我不需要变动一行代码即可以训练DQN来玩另一个游戏,而且,即可以在该游戏中到达高出人类的游戏程度。

这象征着,异样的算法,教计算机控制这个绿色的乒乓球拍,也可以教计算机如何在毁灭战士中射击恶魔。

DQN最酷的一点是他们可以学习我乃至不知道的游戏计谋。在款游戏beakout中,DQN学会怎样样绕过边路快速到达顶部,并获得少量的积分。

我发明了这个DQN,它学到了我甚至不知道的东西!

DQN可以创造其创建者从未知道的策略!

这象征着计算机现在可以帮忙我们学习最喜好的电子游戏的新策略。大概DQNS会想方法在《超级马里奥兄弟》中快速到达World 9关卡。  关键的功劳

使用DQNs电脑可以学习如何比人类更好地玩电子游戏。

在DQNs中,经验回放让神经网络和强化学习协同工作。

DQN可以学习他们的创建者不知道的策略。

有了DQNs,我可以在和ai玩电子游戏时战胜我10岁的妹妹,那么下一步该怎样办呢?

也许我会训练一个家养智能来压服她把电视遥控器给我(这是一项更坚苦的任务)。  末端

在 Google Colab  检查我的DQN的局部代码

拜候我的个人网站

注册我的每月通信

感谢 Aadil A..

想要继承检查该篇文章相关链接和参考文献?

点击【用深度Q网络玩电子游戏】或长按下方地点:

page/TextTranslation/1512

AI研习社今日举荐:

伯克利大学 CS 294-112 《深度强化学习课程》为民间开源最新版本,由伯克利大学该门课程讲课讲师 Sergey Levine 授权 AI 研习社翻译。

参加小组收费不美观看视频:page/groupDetail/30

最后编辑于:2019-08-31 11:08作者: admin