强化学习Openai Gym基础环境搭建
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
? Gym提供了一些基础的强化学习环境,并且集成了许多有意思的环境,下面我们来一起看下如何在你的电脑上搭建Gym的开发环境吧。
? Gym的Github地址。
? Gym 是一个开源 Python 库,通过提供标准 API 在强化学习算法和环境之间进行通信,以及符合该 API 的标准环境集,用于开发和比较强化学习算法。自发布以来,Gym 的 API 已成为强化学习领域的标准。
? Gym的官方文档地址:https://www.gymlibrary.ml/
? 起初,一直没找到这个文档,看到的是Gym官网上提供的简单的[一页文档](Gym (openai.com))。一直觉得Gym的文档给的太过简单,内容也很少,想开发自己的环境让人无从下手,后面才发现了上面的文档,和自己这段时间的学习基本吻合,也算是两相印证。
? Gym更多的是提供的一个强化学习环境的一个标准,你只要实现Gym的几个关键接口,其余内容都是可以自由发挥的,你可以使用Pygame、pyglet等开发一个游戏用做环境,也可以简单的使用matplotlib来做环境图像的渲染。后面我会有文章单独介绍Gym的API。
? Gym现在支持3.7,3.8,3.9,3.10版本的python,支持在Linux和Mac上安装;也支持Windows上安装Gym,但是并没有官方支持,Gym中的一些环境,如Mujoco,对于Windows的支持不如Linux和Mac,但是对于初学者,是足够使用了。并且在不同的系统上,安装步骤基本类似。
? python环境的管理,个人建议大家使用conda。conda不仅仅是用来安装python包的工具,其更重要的功能是环境管理的工具,我们可以通过conda创建python环境,每个环境之间是相互独立的,各个环境里可以使用不同版本的python,不同版本的开发包。conda的环境类似docker,而且有了conda后,你再也不用在一个电脑因为代码的原因来回切换python的版本,或者为某个项目升降某个包而影响了其他项目。
? conda的安装本位不在多讲,大家可以参考这篇文章(Windows,linux可自行百度)。conda安装好后,一定记得配置国内的源,不然下载速度会受限。
? python 安装好后,执行如下命令,创建一个python虚拟环境(名字大家可以自起),我使用的是3.7版本的Python,大家可自行选择自己需要的版本:
? 稍等片刻,conda就帮我们创建好了名字为Gym、python版本3.7的环境了,
? 这两条命令是查看本机已经安装的python环境,另一个是当前终端激活虚拟环境Gym,也就是将当前终端使用的python切换到Gym,可以看大,最前面的符号,变为了(Gym)。
? 这样,Gym的基础环境就安装完成了,我们打开Pycharm(python的开发环境,建议使用Pycharm,页面简单,功能强大,如果有校园邮箱,可以通过教育优惠使用专业版,也可以使用社区办,也足够使用了),新建一个项目,创建一个python文件,将如下代码复制到文件中:
? 想要执行上面代码,还需要在pycharm中将python环境设置为刚才我们创建的Gym,点击右下角,Add Interpreter,
? 然后选择Existing environment,记得勾选Make available to all project,这样以后其他项目就可以直接使用添加的interpreter了,
? 点击右方的三个点图标,到我们conda的安装目录下C>envsC>Gym目录下的python.exe(这个是windows下的目录,如果是linux,还需到进入bin目录,找到python可执行文件,带小问号图标)
? 点击ok,在点击ok即可,等pycharm切换好环境后,我们就可以执行上面的测试代码了,执行结果如下:
? 本文的内容到这里就结束了,Gym的基础环境搭建还是比较简单的。Gym把不同的模块进行了抽离,我们上面安装的知识Gym的基础环境,其他的如Atari、mojoco等环境,还需要用户单独安装。后面会有文章将如何安装Atari环境,并使用键盘玩Atari游戏。
? 如果本文能对你有所帮助,还请给点赞、收藏、关注博主,如果有什么错误,还请批评指正。
强化学习入门到精通--资料大全集
人工智能是21世纪最激动人心的技术之一。人工智能,就是像人一样的智能,而人的智能包括感知、决策和认知(从直觉到推理、规划、意识等)。其中,感知解决what,深度学习已经超越人类水平;决策解决how,强化学习在游戏和机器人等领域取得了一定效果;认知解决why,知识图谱、因果推理和持续学习等正在研究。强化学习,采用反馈学习的方式解决序贯决策问题,因此必然是通往通用人工智能的终极钥匙。
下面是一些强化学习方面的经验总结整理分享:
1. 视频(从入门到放弃)
1.1 腾讯_周沫凡_强化学习、教程、代码
- https://www.bilibili.com/video/av16921335?from=search&seid=7037144790835305588
- https://morvanzhou.github.io/
- https://github.com/AndyYue1893/Reinforcement-learning-with-tensorflow 1.2 DeepMind_David Silver_UCL深度强化学习课程(2015)、PPT、笔记及代码
- https://www.bilibili.com/video/av45357759?from=search&seid=7037144790835305588
- https://blog.csdn.net/u_say2what/article/details/89216190
- https://zhuanlan.zhihu.com/p/37690204 1.3 台大_李宏毅_深度强化学习(国语)课程(2018)、PPT、笔记
- https://www.bilibili.com/video/av24724071?from=search&seid=7037144790835305588
- http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS18.html
- https://blog.csdn.net/cindy_1102/article/details/87904928 1.4 UC Berkeley_Sergey Levine_CS285(294)深度强化学习(2019)、PPT、代码
- https://www.bilibili.com/video/av69455099?from=search&seid=7037144790835305588
- http://rail.eecs.berkeley.edu/deeprlcourse/
- https://github.com/berkeleydeeprlcourse/homework
2. 书籍
2.1 强化学习圣经_Rich Sutton_中文书、英文电子书、代码 ★★★★★(基础必读,有助于理解强化学习精髓)
- https://item.jd.com/12696004.html
- http://incompleteideas.net/book/the-book-2nd.html
- https://github.com/AndyYue1893/reinforcement-learning-an-introduction
2.2 Python强化学习实战_Sudharsan Ravichandiran、代码 ★★★★★(上手快,代码清晰)
- https://item.jd.com/12506442.html
- https://github.com/AndyYue1893/Hands-On-Reinforcement-Learning-With-Python
2.3 强化学习精要_冯超 ★★★★(从基础到前沿,附代码)
- https://item.jd.com/12344157.html
2.4 Reinforcement Learning With Open AI TensorFlow and Keras Using Python_OpenAI(注重实战)
- https://pan.baidu.com/share/init?surl=nQpNbhkI-3WucSD0Mk7Qcg(提取码: av5p)
3. 教程
3.1 OpenAI Spinning Up英文版、中文版、介绍by量子位(在线学习平台,包括原理、算法、论文、代码)
- https://spinningup.openai.com/en/latest/
- https://spinningup.readthedocs.io/zh_CN/latest/index.html
- https://zhuanlan.zhihu.com/p/49087870
3.2 莫烦Python( 通俗易懂)
- https://morvanzhou.github.io/
4. PPT
4.1 Reinforcement learning_Nando de Freitas_DeepMind_2019
- https://pan.baidu.com/s/1KF10W9GifZCDf9T4FY2H9Q 4.2 Policy Optimization_Pieter Abbeel_OpenAI/UC Berkeley/Gradescope
- https://pan.baidu.com/s/1zOOZjvTAL_FRVTHHapriRw&shfl=sharepset
5. 算法
请问DeepMind和OpenAI身后的两大RL流派有什么具体的区别?
- https://www.zhihu.com/question/316626294/answer/627373838 三大经典算法
5.1 DQN
-
Mnih. Volodymyr, et al. “Human-level control through deep reinforcement learning.” Nature 518.7540 (2015): 529. (Nature版本)
-
https://storage.googleapis.com/deepmind-data/assets/papers/DeepMindNature14236Paper.pdf
5.2 DDPG
- David. Silver, et al. “Deterministic policy gradient algorithms.” ICML. 2014.
- http://proceedings.mlr.press/v32/silver14.pdf
5.3 A3C
- Mnih. Volodymyr, et al. “Asynchronous methods for deep reinforcement learning.” International conference on machine learning. 2016.
- https://www.researchgate.net/publication/301847678_Asynchronous_Methods_for_Deep_Reinforcement_Learning
6. 环境
6.1 OpenAI Gym
- http://gym.openai.com/
6.2 Google Dopamine 2.0
- https://github.com/google/dopamine
6.3 Emo Todorov Mujoco
- http://www.mujoco.org/
6.4 通用格子世界环境类
- https://zhuanlan.zhihu.com/p/28109312
- https://cs.stanford.edu/people/karpathy/reinforcejs/index.html
7. 框架
7.1 OpenAI Baselines(代码简洁,使用广泛)
- https://github.com/openai/baselines
7.2 百度 PARL( 扩展性强,可复现性好,友好)
- https://github.com/paddlepaddle/parl
7.3 DeepMind OpenSpiel(仅支持Debian和Ubuntu,28种棋牌类游戏和24种算法)
- https://github.com/deepmind/open_spiel
8. 论文
8.1 清华张楚珩博士 ★★★★★[2]
- https://zhuanlan.zhihu.com/p/46600521 张楚珩:强化学习论文汇总
8.2 NeuronDance ★★★★
- https://github.com/AndyYue1893/DeepRL-1/tree/master/A-Guide-Resource-For-DeepRL
8.3 paperswithcode ★★★★
- https://www.paperswithcode.com/area/playing-games
- https://github.com/AndyYue1893/pwc
8.4 Spinning Up推荐论文 ★★★★★
- https://zhuanlan.zhihu.com/p/50343077
9. 会议&期刊
9.1 会议:AAAI、NIPS、ICML、ICLR、IJCAI、 AAMAS、IROS等
9.2 期刊:AI、 JMLR、JAIR、 Machine Learning、JAAMAS等
9.3 计算机和人工智能会议(期刊)排名
- https://www.ccf.org.cn/xspj/rgzn/
- https://mp.weixin.qq.com/s?__biz=Mzg4MDE3OTA5NA==&mid=2247490957&idx=1&sn=b9aa515f7833ba1503be298ac2360960&source=41#wechat_redirect
- https://www.aminer.cn/ranks/conf/artificial-intelligence-and-pattern-recognition
10. 公众号
10.1 深度强化学习实验室 ★★★★★ 10.2 深度学习技术前沿 ★★★★ 10.3 AI科技评论 ★★★★ 10.4 新智元 ★★★
11.知乎
11.1 用户
- 许铁-巡洋舰科技(微信公众号同名)、Flood Sung(GitHub同名)
- 田渊栋、周博磊、俞扬、张楚珩、天津包子馅儿、JQWang2048 及其互相关注大牛等
11.2 专栏
- David Silver强化学习公开课中文讲解及实践(叶强,很经典)
- 强化学习知识大讲堂(《深入浅出强化学习:原理入门》作者天津包子馅儿)
- 智能单元(杜克、Floodsung、wxam,聚焦通用人工智能,Flood Sung:深度学习论文阅读路线图 Deep Learning Papers Reading Roadmap很棒)
- 深度强化学习落地方法论(西交 大牛,实操经验丰富)
- 深度强化学习(知乎:JQWang2048,GitHub:NeuronDance,CSDN:- J. Q. Wang)
- 神经网络与强化学习(《Reinforcement Learning: An Introduction》读书笔记)
- 强化学习基础David Silver笔记(陈雄辉,南大,DiDi AI Labs)
12. 博客
12.1 草帽BOY
- https://blog.csdn.net/u013236946/category_6965927.html
12.2 J. Q. Wang
- https://blog.csdn.net/gsww404
12.3 Mr.Jk.Zhang
- https://blog.csdn.net/mrjkzhangma
12.4 Keavnn
- https://stepneverstop.github.io/
13. 官网
13.1 OpenAI
- https://www.openai.com/
13.2 DeepMind
- https://www.deepmind.com/
13.3 Berke 游戏 强化学习快餐教程 (3) - ?条命令搞定 atari 游戏 通过上节的例?,我们试验出来,就算是像cartpole这样让?个杆?不倒这样的?模型,都不是特别容易搞定的。 那么像太空?侵者这么复杂的问题,建模都建不出来,算法该怎么写? 别急,我们从强化学习的基础来讲起,学习马尔可夫决策过程,了解贝尔曼?程、最优值函数、最优策略及其求解。然后学习动态规划法、 蒙特卡洛法、时间差分法、值函数近似法、策略梯度法。再然后我们借?深度学习的武器来武装强化学习算法,我们会学习DQN算法族, 讲解2013版的基于Replay Memory的DQN算法,还有2015年增加了Target?络的新DQN算法,还有Double DQN、优先级回放DQN 和Dueling DQN,以及PG算法族的DPG,Actor-Critic,DDPG,以及A3C算法等等。 有的同学表?已经看晕了,除了堆了?堆名词什么也没看懂。别怕,我们程序员解决这样的问题统统是上代码说话,我们马上给?家?条命 令就能解决太空?侵者以及其它更复杂的游戏。 有的同学表?还没看晕,嗯,这样的话后?我们增加?些推导公式和解读最新论?的环节 :) baseline 登场 下?,就是见证奇迹的时刻。对于太空?侵者这么复杂的问题,我们程序员?什么办法来解决它呢?答案是,调库! 库到哪?找呢?洪七公说过:凡毒蛇出没之处,七步内必有解救蛇毒之药。 其他毒物,?不如此,这是天地间万物?克的?理。OpenAI成 天跟这些难题打交道,肯定有其解法。 没错,我们要?的库,就是openAI的baselines库。 调库之前,我们先下载源码: git clone https://github.com/openai/baselines 然后安装?下库: pip install -e . 见证奇迹的时刻到了,我们条命令,就可以解决这些复杂的atari游戏,以太空?侵者为例: python -m baselines.run --alg=ppo2 --env=SpaceInvadersNoFrameskip-v4 baselines.run有两个参数:?个是算法,ppo2是OpenAI?家的最近策略优化算法Proximal Policy Optimization Algorithms;另?个 是游戏环境,SpaceInvaders是太空?侵者游戏,后?的NoFrameskip-v4是控制参数,之前我们使?v0或v1中,为了模拟?的控制,不 让控制太精准,所以都是有4帧左右的重复。?在训练的时候就去掉这个负优化,使训练的效率更?。 然后baselines就会和atari模拟器打交道去进?训练了,输?类似于下?这样: 强化学习快餐教程(3)
快餐教学视频,快餐化的知识是什么意思,快餐式教育什么意思,快餐式教育