集智导读:

本文会为大家展示机器学习专家 Mike Shi 如何用 50 行 Python 代码创建一个 AI,使用增强学习技术,玩耍一个保持杆子平衡的小游戏。所用环境为标准的 OpenAI Gym,只使用 Numpy 来创建 agent。

各位看官好,我(作者 Mike Shi——译者注)将在本文教大家如何用 50 行 Python 代码,教会 AI 玩一个简单的平衡游戏。我们会用到标准的 OpenAI Gym 作为测试环境,仅用 Numpy 创建我们的 AI,别的不用。

这个小游戏就是经典的 Cart Pole 任务,它是 OpenAI Gym 中一个经典的传统增强学习任务。游戏玩法如下方动图所示,就是尽力保持这根杆子始终竖直向上。杆子由于重力原因,会出现倾斜,到了一定程度就会倒下,AI 的任务就是在此时向左或向右移动杆子,不让它倒下。这就跟我们在手指尖上树立一支铅笔玩“金鸡独立”一样,只不过我们这里是个一维的简单游戏(但是还是很有挑战性的)。

你可能好奇最终实现怎样的结果,可以在repl.it 上查看 demo:

https:// repl.it/@MikeShi42/Cart Pole

增强学习速览

如果这是你第一次接触机器学习或增强学习,别担心,我下面介绍一些基础知识,这样你就可以了解本文使用的术语了:)。如果已经熟悉了,大可跳过这部分,直接看看编写 AI 的部分。

增强学习(RL)是一个研究领域:教 agent(我们的算法/机器)执行某些任务/动作,但明确告诉它该怎样做。把它想象成一个婴儿,以随机的方式伸腿,如果宝宝偶然间走运站立起来,我们会给它一个糖果作为奖励。同样,Agent 的目标就是在其生命周期内得到最多的奖励,而且我们会根据是否和要完成的任务相符来决定奖励的类型。对于婴儿站立的例子,站立时奖励 1,否则为0。

增强学习 agent 的一个著名例子是 AlphaGo,其中的 agent 已经学会了如何玩围棋以最大化其奖励(赢得游戏)。在本教程中,我们将创建一个 agent,或者说 AI,可以向左或向右移动小车,让杆子保持平衡。

状态

状态是目前游戏的样子。我们通常处理游戏的多种数字表示。在乒乓球比赛中,它可能是每个球拍的垂直位置和 x,y 坐标和球的速度。在我们这个游戏中,我们的状态由 4 个数字组成:底部小车的位置,小车的速度,杆的位置(以角度表示)和杆的角速度。这 4 个数字都是给定的数组(或向量)。这个很重要,理解状态是一个数字数组意味着我们可以对它进行一些数学运算来决定我们根据状态采取什么行动。

python50行小游戏_使用50行Python代码从零开始实现一个AI平衡小游戏相关推荐

  1. 50行python游戏代码_使用50行Python代码从零开始实现一个AI平衡小游戏

    使用50行Python代码从零开始实现一个AI平衡小游戏 发布时间:2020-10-23 09:26:14 来源:脚本之家 阅读:74 集智导读: 本文会为大家展示机器学习专家 Mike Shi 如何 ...

  2. python写一个游戏多少代码-使用50行Python代码从零开始实现一个AI平衡小游戏

    集智导读: 本文会为大家展示机器学习专家 Mike Shi 如何用 50 行 Python 代码创建一个 AI,使用增强学习技术,玩耍一个保持杆子平衡的小游戏.所用环境为标准的 OpenAI Gym, ...

  3. python100行代码程序-100行python代码,轻松完成贪吃蛇小游戏

    大家小时候都玩过贪吃蛇吧?小编小时候可喜欢拿爸妈的手机玩了,厉害着呢!今天,小编就来用100行代码实现一个简易版的贪吃蛇.在网上,贪吃蛇教程蛮多的,但要安装蛮多库的,而且也不够清晰,今天的代码比较短, ...

  4. python换脸完整程序_小 200 行 Python 代码做了一个换脸程序

    原标题:小 200 行 Python 代码做了一个换脸程序 简介 在这篇文章中我将介绍如何写一个简短(200行)的 Python 脚本,来自动地将一幅图片的脸替换为另一幅图片的脸. 这个过程分四步: ...

  5. 一行python代码,带你重温经典小游戏

    点击上方「蓝字」关注我们 各位新老朋友们: 大家好,我是菜鸟小白.欢迎大家关注"菜鸟小白的学习分享"公众号,菜鸟小白作为一名软件测试工程师,会定期给大家分享一些测试基础知识.测试环 ...

  6. python程序30行_30行Python代码,打造一个简单的微信群聊助手,简单方便

    大家都知道,最近代码君迷上了Python,一直在研究这门语言,还是那句话,人生苦短,我学Python,今天代码君要教大家一个黑科技,30行代码实现自己定制的微信群聊助手,这个助手有什么用呐,就是用来活 ...

  7. 送小公主——哆啦A梦(Python代码实现)

    目录 1 送她的多啦A梦 2 白驹过隙  3 Python代码实现 1 送她的多啦A梦 一个哆啦A梦让她开心开心好久好久.我也很开心,昨天送了一个实体模型,今天用Python代码再弄一个送给她. 哆啦 ...

  8. python turtle 画老鼠,python用turtle制作一个猫捉老鼠游戏

    CSDN网友写的猫捉老鼠游戏代码 看着不错 大家借鉴一下 import turtle import time import random def up(): jerry.setheading(90) ...

  9. python 功能 代码_让你的Python代码实现类型提示功能

    Python是一种动态类型语言,这意味着我们在编写代码的时候更为自由,但是与此同时IDE无法向静态类型语言那样分析代码,及时给我们相应的提示.为了解决这个问题,Python 3.6 新增了几个特性PE ...

最新文章

  1. python中序列和列表区别细菌真菌病毒_python是哪种动物_动物的分类
  2. QT 获取屏幕尺寸的法子
  3. Sencha Architect 2 的使用
  4. 吉林省高等学校计算机水平考试,关于2014年11月高等学校计算机水平考试(吉林省考区)报名的通知...
  5. IOS学习笔记 -- scrollView和tableView整理
  6. Latex appendix 生成附录A和B
  7. Pwn2Own 三连冠团队成员访谈实录:如何才能登峰造极?
  8. linux下好玩的命令
  9. zabbix_nginx监控
  10. java物流管理系统代码_Java物流配送管理系统 Spring 源码下载
  11. mesh和wifi中继的区别_mesh和无线中继的区别
  12. 网页设计中常用的20个Web安全字体
  13. wifip2p重连 android,Android Wifi实现分析
  14. 2020年度最值得关注论文TOP10
  15. VS2008SP1的MFC测试-(OFFICE2007风格)Ribbon风格(DJ尐舞图形画板2008)
  16. HashMap和HashTable的异同点
  17. 转载 CATransform3D 矩阵 m11–m44每个的含义
  18. 9 mybatis中使用Java8的日期LocalDate、LocalTime、LocalDateTime
  19. python hdf5_使用Python将大量数字写入HDF5文件
  20. MongoDB权威指南读书笔记——CRUD

热门文章

  1. python pandas excel数据处理_Python处理Excel数据-pandas篇
  2. java ms office_使用Java确定Microsoft Office版本
  3. 计算机二级基础知识 文库,计算机二级选择题基础知识.docx
  4. Unity3D游戏编程-血条
  5. 简易三元一次方程组求解
  6. 《优秀管理者的自我修养》
  7. 写给设计师的移动页面适配知识
  8. error202mysql_mysql远程连接问题 Access denied for user 'root'@'192.168.1.13' (using password: YES)...
  9. 获取用户当前周期(1=》月经期,2=》排卵期,3=》安全期)
  10. 缩进的用法及注意事项/数据类型/转义字符