2002年,当19岁被称为“不败少年”的李世石获得自己第一个世界冠军时,他有想过无数种引退方式,但或许唯独没有想到的方式是,引退赛前,在家用两张 NVIDIA 的 GeForce GTX 1080 Ti 显卡与 AI 程序对弈十日。
接着引退赛当日与另一 AI 程序对弈,第一局被让两子,因对手误判侥胜,第二局未让子,败,第三局被让两子,败,宣告退役。
这一切的发生都只因一个在 2010 年才创立名为 DeepMind 的公司,将一种叫做 “强化学习” 的技术引入了围棋,这个在西方人看来充满东方古老智慧的游戏。
除了围棋,强化学习还在各种游戏,诸如DOTA,星际争霸,击败人类,甚至还让 AI 学会开车,叠衣服,解魔方。
然而相比起其他领域,强化学习并没有一个非常统一的学习框架,以及对入门者友好的学习资料。
在此次因为疫情,延迟复工,延期开学的情况下,我们联合阿里巴巴PAI团队一起推出了,基于其团队开源的强化学习算法库 EasyRL 的三期强化学习入门公开课,供大家在线学习。
阿里巴巴开源强化学习算法库 EasyRL
近年来,研究人员借助深度神经网络与传统强化学习算法的结合,在包括围棋,视频游戏,NP难组合优化问题等多种高维度复杂环境取得了前所未有的成功。
与此同时,阿里巴巴PAI团队支持集团各业务部门在搜索、推荐、多轮会话等场景上应用强化学习算法,取得了丰硕的业务成果,并沉淀下 EasyRL 这一易用、可扩展,且算法种类齐全的强化学习算法库。
在电商领域的搜索推荐场景,传统监督学习算法往往优化的单个page view (PV) 的点击率(CTR),转换率(CVR)等。阿里团队在若干场景应用强化学习,提升整个search session粒度的指标。例如在下图所示的智能交互场景,阿里团队将用户视为环境,智能体在每个PV决策应该推荐什么样的“提示”给用户。动作空间就是候选“提示”的集合,每种“提示”对应当前商品类目的各种属性,旨在引导用户快速明确购物需求,避免用户因为找不到心仪的商品而流式。
具体地,阿里团队应用DQN算法学习出选择“提示”的策略,在该场景分别取得了相较于规则和监督学习算法20%和5%的CTR提升,给用户带来了更好的购物体验,从而也进一步提升了转化率。(具体建模方式等可以参考阿里团队的SIGIR demo: 《AliISA: Creating Interactive Search Experience for E-commerce Platform》)
在实践中,强化学习相较于监督学习对工程师往往提出了更高的要求,包括但不限于:
- 监督学习往往只需要在计算图中描述目标函数并选择优化器,强化学习需要描述策略,值函数,目标的估计等等多个模块。
- 在分布式训练的设定下,监督学习仅需要在进程间交换同质的梯度和参数,而强化学习还需要传递格式更复杂的样本(即(state, action, reward, next state)元组组成的序列)。
- 不同流派的强化学习算法在不同场景中往往各有优劣。工程师往往需要一套较为齐全的算法库来尝试和验证不同算法。
EasyRL针对上述困难与挑战而设计,在易用性上满足用户能一键运行各种算法(包括单机和分布式设定),同时提供清晰的接口和扁平的类层次关系方便开发者复用已有模块来定制新算法。
EasyRL提供的算法种类全面,且覆盖单机和分布式的实现,下面通过一个表格显示与其它开源库的对比。
对上述开源强化学习库调研发现,部分项目缺乏持续更新,例如RLLab、Tensorflow Agents;部分项目算法种类过于单一,例如Dopamine 仅提供了 DQN(Rainbow)算法,而PARL、TensorForce没有提供Rainbow的实现,RLGraph则是一个meta graph的实现,开发复杂并且缺少DDPG、模仿学习等。
另一些项目则缺少良好分布式的实现,例如OpenAI的Baselines没有actor-learner的架构;包括coach,PARL没有对Ape-X的支持。
部分项目仅是op层面的优化工作,例如Uber-research/ape-x和Trfl。
Ray RLlib是功能全面且分布式性能优异的项目,但是不支持任意扩展leanrer进程的数量,在样本产出速度非常快的场景会导致learner成为瓶颈。
三次课搞定强化学习,EasyRL 从入门到实践
疫情期间,大数据文摘联合阿里云开发者社区,邀请到EasyRL开源项目的主要开发者王桢博士,为大家介绍课程内容首先介绍 EasyRL 的一些特性,包括其基本设计理念,以及与其他算法库的比较。接着介绍强化学习基础的马尔可夫决策过程,包括它的定义、例子、还有值函数与贝尔曼方程,让大家了解强化学习的基本思想。之后在此基础上再接触实际的强化学习算法,包括基于值的方法,策略梯度方法等。
最后,再基于 EasyRL 的示例程序,来实战了解 EasyRL 的设计结构,以及如何用其做二次开发,包括如何使用各种强化学习算法。更进阶一些,还会教大家了解 EasyRL 的 Actor-learner 架构,还有如何来做分布式的强化训练。
祝大家在疫情期间来用这次公开课充实自己,或者以此为契机接触强化学习的应用与研究。
课程内容及直播时间
《EasyRL强化学习入门与实践》
第一课
1. EasyRL简介
2. 马尔可夫决策过程(定义,例子,动态规划)
直播时间:3月17日(周二) 19:00-20:00
直播传送门:
https://study.163.com/course/courselive/1280452094.htm?share=2&shareId=10146755
第二课
1. 马尔可夫决策过程(值函数与贝尔曼方程)
2. 强化学习算法(基于值的方法,策略梯度方法,算法归类)
直播时间:3月18日(周三) 19:00-20:00
直播传送门:阿里云开发者社区
https://developer.aliyun.com/live/2287
第三课
1. 强化学习实践(demo详解,EasyRL的设计,如何二次开发)
2. 分布式强化学习(Actor-learner架构,EasyRL完全基于TensorFlow的设计与实现)
直播时间:3月19日(周四) 19:00-20:00
直播传送门:阿里云开发者社区
https://developer.aliyun.com/live/2288