人人能上手:OpenAI发射初学者友好的强化学习教程 | 代码简约易懂

时间:2022-06-15
本文章向大家介绍人人能上手:OpenAI发射初学者友好的强化学习教程 | 代码简约易懂,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
栗子 发自 凹非寺 量子位 出品 | 公众号 QbitAI

OpenAI说,全无机器学习基础的人类,也可以迅速上手强化学习。

他们刚刚发射了一套强化学习 (RL) 入门教程,叫做Spinning Up。真诚友好,无微不至。

从一套重要概念,到一系列关键算法实现代码,再到热身练习,每一步都以清晰简明为上,全程站在初学者视角。

新手光环

团队表示,目前还没有一套比较通用的强化学习教材,RL领域只有一小撮人进得去。这样的状态要改变啊,因为强化学习真的很有用。

说不定你也用得上。所以,仔细翻翻这个新手包,看看到底有多关怀:

五大核心

Spinning Up包含了5个重要部分。

第一部分,认识一下强化学习

这里分为三小步:

一是了解基础概念,即知道RL能用来做什么,理解概念和术语。

二是了解算法分为哪些种类。

三是了解策略优化

https://spinningup.openai.com/en/latest/spinningup/rl_intro.html

第二部分,成为RL研究人员

(此部分可选择性忽略)

如何让自己习惯RL研究人员的新设定?

第一,知道哪些数学知识深度学习知识,是需要简要了解的。

第二,在实践中学习,写最最最简单的实现 (后面有代码) ,注重理解。

第三,有了小小的经验之后,试着开发自己的研究项目。这是入门之后的事了。

第四之后,有些遥远,暂时不详述了。

第三部分,论文阅读清单

这个论文列表非常详细,分为12个小类别,每个类别下有2-8篇论文。

团队说,列表比全面还全面,足够给一个想做RL研究的人类铺路了。

https://spinningup.openai.com/en/latest/spinningup/keypapers.html

第四部分,为初学者定制的代码

GitHub上面有个叫spinningup的项目,包含了强化学习能用到的各种关键算法:

VPG、TRPO、PPO、DDPG、TD3和SAC等。

团队说,这里的代码都是为初学者定制,很短很好学。比起模块化,Spinning Up以清晰为重,代码都注释过了,可以很清楚得看出每一步都在做什么,并且有背景材料可以辅助理解。

目标就是用最简约的实现,来演示一条理论是如何变成代码的,而抽象层和混淆层(Layers of Abstraction and Obfuscation) 这些东西,都省去了。

https://github.com/openai/spinningup

第五部分,热身练习

这里有两个习题集。

一是关于实现的基础,二是关于算法失效模式。

后面还有附加题,是要从零开始自己写代码实现,相对艰辛。

https://spinningup.openai.com/en/latest/spinningup/exercises.html

Hello World

团队说,要感受强化学习是怎样运作的,最好的方式是跑一跑。

在Spinning Up里面,就很容易,只要用这段代码:

1python -m spinup.run ppo --env CartPole-v1 --exp_name hello_world

训练结束的时候,你会看到说明,然后可以按照里面讲的方法来观察数据,也观察训练好的智能体的视频。

另外,Spinning Up里面的实现,和一系列Gym环境都兼容:Classic Control,Box2D,MUJOCO等等。

去吧,皮卡丘

看上去,好像真的没有很难。

OpenAI就是希望其他领域的研究人员,也能很轻易地用强化学习来辅助研究。

所以,试一下吧。

教程入口: https://spinningup.openai.com/en/latest/index.html

GitHub传送门: https://github.com/openai/spinningup