MountainCar-v0 是 Andrew Moore 在 1990 年提出的控制问题,提出后受到强化学习界的广泛关注,并收录到强化学习影响力最大的环境库之一 Gym 中,成为大多数强化学习教程中必用的环境。 图1 经典控制问题MountainCar-v0(图片来源:https://gym.openai.com/envs/MountainCar-v0/)
2019 年,OpenAI Gym Leaderboard 上出现了对该环境求解的突破性进展:上面显示了一个仅用很少的回合就可以完成学习的强化学习代码,又给出了一个不需要学习的闭式解。
更令人惊奇的是,这个闭式解只依赖于一个不等式,并且这个不等式只用到四次多项式。他在满足这个不等式时采用一种动作,不满足时采用另外一种动作,这样竟然就能解决这个问题。
这两种解法目前位于 OpenAI Gym 的排行榜的前两名。
第一名就是用不等式的闭式解,第二名则用了强化学习中的资格迹算法。
第二名解法用了75个回合数据就解决了问题,数据利用率是排名第三的算法(用了341个回合数据)的4.5倍。 图2 MountainCar-v0排行榜页面(图片来源:https://github.com/openai/gym/wiki/Leaderboard)
求解的代码已经放在 GitHub 上,可以通过排行榜上的链接进入。 求解的思想写在了教程《强化学习:原理与Python实现》中。
该教程中文电子版已于 2018 年末到 2019 年初刊登在各大电子书平台,印刷版也已经在 2019 年 8 月由机械工业出版社出版并登陆 商城等各大电商平台。
据小编所知,这个教程不仅是世界上首个配套 TensorFlow 2 代码的强化学习系列教程,也是国内首本正式出版的配套 TensorFlow 2 代码的编程书。
目前 TensorFlow 2 的新特性已经定型,TensorFlow 2 版本已于 2019 年 10 月发布。世界上首个配套 TensorFlow 2 代码的强化学习系列教程《强化学习:原理与Python实现》也已公开中文版。
这个教程融合了 Richard Sutton 经典教程《Reinforcement learning: An introduction》、David Silver 视频教程、UW CS234 等经典教程,全面介绍了经典的强化学习算法和最新的深度强化学习进展。
该教程不仅介绍算法原理,更介绍理论知识。用到的定理、算法的收敛性等基本都证明了。
当然,要完全读懂该教程还是需要一定的数学基础的。
在介绍动态规划的时候需要用到泛函分析里的 Banach 不动点定理,有些算法的收敛性证明用到了随机优化里的 Robbins-Monro 算法甚至它的双尺度版本,在讨论到随机噪声时还用到了随机微积分里的 Ito Isometry….小编偶尔会感觉数学捉急。
不过,该教程对用到的数学知识都做了比较完备的介绍,不需要专门查阅数学资料也能很好的理解相关证明或解读。
这个教程对常用的定理都做了推导,不仅仅对工程应用有价值,更能指导学术研究。
这个教程还采用了一致的数学符号,并且和 Sutton 教程、Silver 视频教程基本兼容。把分散在各个论文里面的内容用一致的数学符号在同一知识框架下重新演绎,大大方便了理解和阅读。
认真读完这个教程,不仅仅强化学习水平大增,数学水平都感觉提升了不少。
该教程不仅理论完备,并且对其中所有的单机算法都对应提供了简明的Python 实现。其中深度强化学习算法实现更是基于最新的 TensorFlow 2(包括基于 Python 3.8 从源码编译的 TensorFlow 2版本)。
当然只安装了 TensorFlow 1 的童鞋也可以运行那些代码。配套的代码支持TensorFlow 1.15 的后向兼容,在 TensorFlow 1.15 上也可以完美运行。
所有实验的输出结果都在 GitHub 上的 Jupyter Notebook 上展示了。即使没有运行环境也能看到运行结果。
该教程还提供了丰富的案例。有些案例使用Gym内置的环境,有些案例手把手教你如何扩展Gym库,还使用了Gym库以外的环境。
本书最后是一些综合的案例,比如电动游戏、棋盘游戏、自动驾驶,算法涵盖近年发表在《自然》、《科学》上的一些明星算法。
棋盘游戏更是深度剖析 AlphaGo 和 AlphaGo Zero 最新改进版 AlphaZero。AlphaZero 能够采用相同的代码和参数求解多种不同的棋盘游戏问题。
书的内容,可以说兼顾了理论和实战。无论是初学者还是资深研究人员,读了这本书的理论部分,都会有诸多收获。再结合配套代码,将理论与实践结合了起来。
而且这个书是国内正式出版的第一本配套 TensorFlow 2 代码的编程书,也是世界上第一本配套 TensorFlow 2 代码的强化学习教程书。在实战环节可以感受到 TensorFlow 2 的易用和强大。 图3 全球首本配套 TensorFlow 2 代码的强化学习教程书《强化学习:原理与Python实现》(图片来源:商城)
随书代码和运行结果在 GitHub 平台全部公开,任何人都可以无门槛免费获取。读者可以直接在 GitHub 网页上查看全部代码和运行结果,也可以将代码免费下载到本地,绝大多数代码用普通笔记本电脑就能运行出结果。
GitHub 地址:http://github.com/zhiqingxiao/rl-book
