? 近期的研究方向是强化学习,不过也在处于入门阶段( ̄□ ̄||)。忙忙碌碌的一月有余,强化学习的算法还没接触皮毛,一直在搭建强化学习的环境,算是有所收获,因此在这里花些时间记录下最近学习所得。如果对你有所帮助的话,还请帮忙点赞、评论、收藏支持下。
1.强化学习
? 强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。
? 大白话讲,就是通过不断地尝试,每次尝试可以获得奖励或者惩罚,最后求解到最优的问题解决办法。
? 关于强化学习的介绍,大家可以去看下莫烦大佬的一些课程,链接如下。
? 关于强化学习的一些算法,大家可以看刘建平大佬的总结的一些文章。
? 我在这里就不献丑了。。。
2.Openai Gym
? 除了强化学习的算法外,最重要的莫过于强化学习所需的环境了。环境在强化学习领域是非常重要的,毕竟需要使用环境来进行强化学习算法效果的验证。在Gym之前,强化学习存在着两个问题,如下所示:
- 需要更好的Benchmarks。在监督学习中,有ImageNet这样的大型标注数据集,这些数据集极大的推动了深度学习的进展。在RL中,最接近的对等物是大量且多样的环境集合。然而,现有的RL环境的开源集合没有足够的多样性,而且它们甚至很难设置和使用。
- 已发表的文章使用的环境缺乏标准化,也就说大家使用的环境虽然名称一样,但并不完全相同。比如AK47,最早是苏联设计并生产的,后来各个国家都有仿造,虽然都叫AK47,但是准确性、使用寿命等肯定会有所差异。
? Gym的出现很好的解决了这个问题,其集成了许多已经开发好的环境,让RL的研究者们可以简单方便的直接上手使用,而不是自己按照论文中的描述重建环境,并且Gym已经成为了强化学习环境头把交椅的选手,GitHub上已经获得了27.1K的Star。
? Gym的官网首页,Github网址链接如下。
3.Gym提供的环境
3.1 classic control
? 主要是经典强化学习文献中的控制理论问题。Gym入门必知的CartPole,也是这个环境里的。
? 以下这些环境都可以在Gym官网上看到。
3.2 Atari游戏
? 中文名,雅达利街机游戏,当你看到下面界面时,一定会勾起的回忆和兴趣。不过Atria游戏环境需要单独安装下,后面会有文章进行介绍(当时花了两三天才把Atari环境搭起来,一把心酸泪)。
3.3 Robotics机器人模拟
? 这个是基于Gym开发的机器人3D模拟环境,通过控制机器臂完成一些特定任务。
? Robotics也是openai提供的一个开源项目,Github地址如下。
? 还有Mojoco物理模拟器,Box2D等环境,在这里就不多做介绍了,大家有兴趣的话可以自己研究下。
4.开放的Gym
? Gym除了提供如此多的环境外,还提供二次开发的接口,让你可以基于Gym搭建自己想要的环境,官网还提供了一个直升机的小游戏示例,网址如下。通过这篇文章,你就知道如何开发自己的环境了。效果图如下:
? 而且,Gym本身是对开发技术没有限制的,你在开发环境的过程中,可以使用python的其他第三方提供的开发包,或者游戏开发引擎,如pygame,openGl等。
? Github上也有许多基于Gym开发的强化学习环境,大家可以自己去搜索,然后参考。
5. 后续
? 后面我会介绍下基于Gym的几种开发环境的安装教程,如Atria、Mujoco;如何通过Gym开发自己自定义环境,如何通过第三方开发包(pyglet、panda3D)搭建自己的有趣的环境,如2D、3D游戏环境。
? 如果对后续内容有兴趣,欢迎关注本专栏。