教程 深度强化学习入门:用TensorFlow构建你的第一

2019/04/19 次浏览

  实际上,有很多方式能够做到这一点。下面,让我们了解一下 Q-Learning。利用 Q-Learning 训练计算机玩 Atari 游戏的时候,Q-Learning 曾引起了轰动。现在,Q-Learning 依然是一个有重大意义的概念。大多数现代的强化学习算法,都是 Q-Learning 的一些改进。

  你可能还想看看 Arthur Juliani 的系列介绍()。如果你需要一个更加正式的入门课,可以看看

  ✄------------------------------------------------

  我们并不为模型提供「正确的」行为,而是给予奖励和惩罚。该模型接受关于当前环境状态的信息(例如计算机游戏屏幕)。然后,它将输出一个动作,就像游戏手柄一样。环境将对这个动作做出回应,并提供下一个状态和奖惩行为。

  相机360是小编特别喜欢的一款相机软件,本作全新的美颜自拍功能、 动感贴纸、特色滤镜,让拍照变得更加乐趣无穷!喜欢的小伙伴快点下载吧。

  在 Q-Learning 中,我们根据最高的预期未来奖励选行动。我们使用 Q 函数进行计算。这个数学函数有两个变量:游戏的当前状态和给定的动作。

  象棋高手擅长在心里估算未来回报。换句话说,他们的 Q 函数 Q(S,A)非常精确。

  产生的奖励并不总是前一个动作的结果。也许,很早之前采取的某些动作才是获胜的关键。要弄清楚哪个动作对最终的奖励负责,这通常被称为信度分配问题(credit assignment problem)。

  第33集 33 吉他乐理之唱名与音名 高音教官方教材视频 吉他零基础教学 吉他初级入门教程

  我们使用 Keras 作为 Tensorflow 的前端。我们的基准模型是一个简单的三层密集网络。

  这个决定取决于游戏的当前状态。也就是说,取决于果子掉落的位置和篮子的位置。

  由于奖励的延迟性,其实应该在半年前就写。只是那个时候自己和其他两位吧主都不够有勇气来面对吧友们这份迟来的帖子,你可以在 GitHub 中找到它的完整实现过程。这个模型在简单版的 Catch 游戏当中表现很好。他们会考虑预期未来奖励(expected future reward),并据此进行选择。相反,优秀的象棋选手并不会仅通过最直接可见的奖励来选择他们的落子方式。

  大多数象棋训练都是围绕着发展更好的 Q 函数进行的。玩家使用棋谱学习,从而了解特定动作如何发生,以及给定的动作有多大可能会导致胜利。

  这些经历就是我们的训练数据。我们可以将估算 Q(S,A)的问题定义为回归问题。为了解决这个问题,我们可以使用神经网络。

  训练你的强化学习技能最好是通过 OpenAIs Gym(),它使用标准化的应用程序界面(API)提供了一系列训练环境。

  第11集 11 音乐中的刻度尺 不同时值的音符 高音教官方教材视频 吉他初级在线 不同时值的音符在简谱和六线谱中的标法 高音教官方教材视频 吉他初级在线 休止符-音乐中的静音键 高音教官方教材视频 吉他初级在线教程 吉他零基础教学

  这个任务可以被看做一个简单的分类问题。我们可以让游戏专家多次玩这个游戏,并记录他们的行为。然后,可以通过选择类似于游戏专家的「正确」动作来训练模型。

  在游戏过程中,所有的经历都会被存储在回放存储器(replay memory)中。这就像一个存储 S,A,R,S 对的简单缓存。这些经历回放类同样能用于准备训练数据。让我们看看下面的代码:

  现在,你已经对强化学习有了初步的直觉了解。我建议仔细阅读该教程的完整代码。你也可以试验看看。

  但这实际上并不是人类学习的方式。人类可以在无指导的情况下,自学像 Catch 这样的游戏。这非常有用。想象一下,你如果每次想学习像 Catch 一样简单的东西,就必须雇佣一批专家玩这个游戏上千次!这必然非常昂贵而缓慢。

  本文通过一种简单的 Catch 游戏介绍了深度强化学习的基本原理,并给出了完整的以 Keras 为前端的 TensorFlow 代码实现,是入门深度强化学习的不错选择。

  原标题:教程 深度强化学习入门:用TensorFlow构建你的第一个游戏AI 选自freeCod

  日常生活的经验告诉我们,有时候你得做点奇怪的事情或是随机的手段,才能发现是否有比日常动作更好的东西。

  如果我们能很好地预测不同状态 S 和不同行为 A 的 Q(S,A),我们就能很好地逼近 Q 函数。请注意,我们通过与 Q(S,A)相同的神经网络估算 Q(S,A)。

  玩 Catch 游戏时,玩家要决定三种可能的行为。玩家可以将篮子左移、右移或保持不动。

  1、对于每个可能的动作 A(向左、向右、不动),使用神经网络预测预期未来奖励 Q(S,A);

  在这两种游戏中,你都会得到一个状态 S。在象棋中,这代表棋盘上棋子的位置。在 Catch 游戏中,这代表水果和篮子的位置。

  在 S 状态下,我们将估计每个可能的动作 A 所带来的的回报。我们假定在采取行动 A 且进入下一个状态 S 以后,一切都很完美。

  但是,机器如何评估一个 Q 函数的好坏呢?这就是神经网络大展身手的地方了。

  原标题:教程 深度强化学习入门:用TensorFlow构建你的第一个游戏AI

  然后,玩家要采取一个动作,称作 A。在象棋中,玩家要移动一个棋子。而在 Catch 游戏中,这代表着将篮子向左、向右移动,或是保持在当前位置。

  例如,他们不仅要考虑下一步是否能够消灭对手的一个棋子。他们也会考虑那些从长远的角度有益的行为。

  对于给定状态 S 和动作 A,预期未来奖励 Q(S,A)被计算为即时奖励 R 加上其后的预期未来奖励 Q(S,A)。我们假设下一个动作 A 是最优的。

  给定一个由 S 和 A 组成的输入向量,神经网络需要能预测 Q(S,A)的值等于目标:R + γ * max Q(S,A)。

  这里的目标是让电脑自己玩 Catch 游戏。不过,我们不会使用这么漂亮的游戏界面。相反,我们会使用一个简单的游戏版本来简化任务:

  强化学习起初看似非常有挑战性,但其实要入门并不困难。在这篇文章中,我们将创造一个基于 Keras 的简单机器人,使它能玩 Catch 游戏。

  很多研究者相信,强化学习是我们创造通用人工智能(Artificial General Intelligence)的最佳手段。这是一个令人兴奋的领域,有着许多未解决的挑战和巨大的潜能。

  我们的目标是创造这样一个模型:它能在给定游戏屏幕内容的情况下,选择导致得分最高的动作。

  Q-Learning 也是如此。总是做最好的选择,意味着你可能会错过一些从未探索的道路。为了避免这种情况,学习者有时会添加一个随机项,而未必总是用最好的。

  4、使用损失函数(loss function)训练神经网络。损失函数可以计算预测值离目标值的距离。此处,我们使用 0.5 * (predicted_Q(S,A)—target)² 作为损失函数。

  去年,DeepMind 的 AlphaGo 以 4-1 的比分打败了世界围棋冠军李世乭。超过 2 亿的观众就这样看着强化学习(reinforce learning)走上了世界舞台。几年前,DeepMind 制作了一个可以玩 Atari 游戏的机器人,引发轩然大波。此后这个公司很快被谷歌收购。

  在 Catch 游戏中,只有在水果掉到篮子里或是撞到地板上时你才会获得奖励。而在象棋中,只有在整盘棋赢了或输了之后,才会获得奖励。这也就是说,奖励是稀疏分布的(sparsely distributed)。大多数时候,R 保持为零。

  Catch 是一个非常简单的街机游戏,你可能在孩提时代玩过它。游戏规则如下:水果从屏幕的顶部落下,玩家必须用一个篮子抓住它们;每抓住一个水果,玩家得一分;每漏掉一个水果,玩家会被扣除一分。

  了解 Q-Learning 的一个好方法,就是将 Catch 游戏和下象棋进行比较。

  为了将这个模型学习的过程可视化,我绘制了每一个 epoch 的胜利移动平均线,结果如下:

标签: ai自学免费教程  

欢迎扫描关注高音艾捷克乐器资讯网的微信公众平台!

欢迎扫描关注高音艾捷克乐器资讯网的微信公众平台!