深度强化学习实验室
作者: DeepRL
来源:https://www.zhihu.com/people/flood-sung
今年来,深度强化学习工程师/研究员已经成为腾讯,网易,字节跳动,华为,阿里巴巴,快手等大厂及一些初创公司如启元世界,超参数重要的招聘岗位,主要面向游戏AI,推荐系统等方向的落地,这对深度强化学习的发展是极大的利好。
以游戏AI为例,深度强化学习工程师/研究员当然是实现某一款游戏AI为目标,或者某一类游戏AI为目标。工程师(Research Engineer)比较强调工程实践能力,能够完成包括环境接口,算法,训练调优,模型部署等等工作,而研究员(Research Scientist) 比较强调理论深度,能够针对问题在理论层面提出解决方案,能够对最前沿的DRL相关问题进行研究创新,当然研究员的工程实践能力也是必不可少的。
首先先声明一下下面的标准是一个比较理想化的solid的社招标准,不是面向校招的标准。对于深度强化学习工程师/研究员,考察的核心包括以下三点:
对深度强化学习有足够的热情和信仰。只有对一件事情有热情,才有可能真正做好一件事,并且愿意为了达成目标去做其中可能比较枯燥的dirty work。因此,这一条要求会排除掉一些对深度强化学习没有热情,仅仅是因为它比较火就进来的同学。
具有较强的深度强化学习的理论基础,包括深度和广度。广度是指对深度强化学习整个理论框架,最前沿进展的了解程度,包括深度强化学习及相关领域的各个方向。深度则是指深度强化学习某一个子方向的理解深度。
具有较强的工程实践能力,包括coding能力及工程经验。
下面我们来具体分析一下以上3条标准。
所谓的深度强化学习信仰大概就是指你相信深度强化学习是一条通往AGI的道路。通用人工智能一定是通过神经网络自学习出现的。
这种信仰的感觉大概就像上世纪70-80年代Hinton,Lecun,Bengio等老一辈深度学习先驱相信神经网络才是人工智能的未来一样。信仰大概就是就算这个方向现在很冷,很不work也照样做。现在我们的情况实在是好太多。
但事实上现在还有很多研究机器人的同学是不认可深度强化学习的,因为觉得离现实情况差很远,无法落地。还有更多的人也是因为觉得不好落地就放弃它的。这些都是不认可深度强化学习这个方向的体现。信仰没有对错,只有不同。
想法总是有差异的,也许你的想法是深度强化学习可以变革游戏行业,变革推荐系统,变革机器人,这些都很棒。
对于面试者,你简历上的项目就足够体现了你的信仰值。愿意花多少时间精力在一个事情上是对一个事情热情程度的充分体现。
当然,深度强化学习只是AI的一个分支,还有很多很多的模块去支撑深度强化学习的发展,比如模仿学习Imitation Learning,元学习Meta Learning等等。对这里面的某一块有深入的研究都是非常好的,参考面试问题:
只有热情肯定是不够的,更重要的是在这个领域已经有了一定的探索,形成了较solid的理论基础。
5.1 广度
这一份paper list 16年就停更了,但仍然有参考价值,作者也已经去了Deepmind。未来,我们也会分享深度强化学习相关的核心paper list(敬请期待)。
paper阅读是无止境的,阅读越多,积累越多自然而然对于一个具体的问题,是可以较快的打开思路,给出一些想法的。
以下是一些估计面试者深度强化学习相关知识广度的面试题:
1. 你是否了解Model Based Learning?有什么新的进展?比如World Model?Dream?MuZero?
2. 你是否了解Meta Reinforcement Learning? 为什么Reptile应用的效果并不好?Meta RL不好应用的原因有哪些?你觉得Meta Gradient Reinforcement Learning怎么样?
3. 你是否了解Imitation Learning?GAIL? Deepminic?
4. 你是否了解DRL的一些最新改进?R2D3?LASER?
5. 你是否了解Multi-Agent Reinforcement Learning?比如MADDPG比较早的,思想是什么?和一般的DRL有什么区别?
6. 你是否了解seed rl? 对于大规模分布式强化学习,还有更好的提高throughput的方法吗?
7. 你是否了解AI-GAs? 你对这个理论有什么看法?
8. 你是否了解Out-of-Distributon Generalization? Modularity? DRL要实现足够的泛化Generalization有哪些做法?Randomization?
9. 你是否了解Neural-Symbolic Learning的方法?怎么看待?
10. 你是否了解unsupervised reinforcement learning?Diversity is all you need?
11. 你是否了解offline reinforcement learning?
12. 你是否了解Multi-Task Reinforcement Learning?Policy Distillation?
13. 你是否了解sim2real? 有哪些方法?对于drl在机器人上的应用怎么看?
14. 你是否了解go-explore? 对于hard exploration的问题,要怎么处理?
15. 你觉得目前的DRL最值得研究的方向是什么?为什么?
16. 现在来了一个游戏AI项目,比如NBA 2k21,你会考虑怎么去做它?技术路线是什么?大概需要多久?多少人?如何分工?(这个问题考察宏观思维)
这里并不要求对每一个方向都能知道,但显然知道的越多越好。
4.2 深度
深度则考察面试者在某一个具体方向上的理解和掌握程度。由于目前应用最广的就是PPO和IMPALA了,所以,深度掌握PPO或IMPALA的具体理论和细节是考察的核心之一。如果面试者在某一个方向有深入的研究,有顶会paper,那么会按照paper来考察。与此同时,一般面试官还会考察和神经网络结构相关的问题
参考面试问题:
1. 你是否了解Transformer?能否具体介绍一下实现方法?
2. 你是否了解Pointer Network?和一般的Attention有什么不同?
3. 什么是Importance Sampling? 为什么PPO和IMPALA要使用?两者在使用方式上有何不同?能否结合?
4. PPO在实现上是怎么采样的?为什么使用Gumbel-max? 能否解释一下Gumbel-max 及Gumbel Softmax?
5. 是否了解SAC?SAC的Policy是什么形式?SAC的Policy能实现Multi-Modal吗?
6. 是否了解IMPALA?能否解释一下V-Trace?rho和c的作用是什么?
7. PPO里使用的GAE是怎么实现的?能否写出计算过程?
8. 是否理解Entropy,KL divergence和Mutual Information的含义?
9. 你是否了解AlphaStar的scatter connection?怎么实现的?
10. 对于多个entity的observation,你会怎么预处理?神经网络要怎么构建?
11. 你是否了解AlphaStar的League,能否解释一下?如何让agent足够diverse?
。。。
上面的问题就比较细节了,一般也不要求什么都懂,毕竟没有也不需要懂得所有,但是至少面试者在某一方面展现了对问题理解的深度 。
这个比较直接了,首先是Leetcode,虽然说Leetcode上面的题和真正工程实践上的问题差别很大,但Leetcode是一个标准化的可以体现面试者coding水平的方式,所以被广泛采纳。Leetcode不仅仅考察coding水平,也同时考察面试者短时分析问题的能力。
除此之外,如果面试者有一些DRL项目,那么面试官一般也会根据项目来问问题。项目越多,工程实践能力往往越强,对于前面深度强化学习的一些理论问题自然就很容易回答。比如面试者就从0实现过PPO,那么必然对PPO的细节非常清楚。
总的来说,深度强化学习工程师/研究员的面试要求还是很高的,需要在这个领域有足够的积累才行。但想想成为深度强化学习工程师/研究员之后,就有机会接触到真正的大项目,进行大规模的深度强化学习训练,去培养一堆的智能体,去创造智能,去观察智能的涌现,是不是就会很兴奋呢?
PS:由于作者能力有限,仅是一家之言,每个面试官的喜好都不一样,仅供参考。但相信,如果上面的要求都能满足,一定offer拿到手软。
PS 2:并不一定要完全懂深度强化学习才能参与这方面的项目,比如环境接口对接,仅需要很强的工程能力,比如懂的弄gRPc,Protobuf,比如模型部署,懂的把Tensorflow,Pytorch的模型部署到手机上,服务端,还有大规模分布式强化学习的底层,需要懂系统,架构的同学。所以,如果你有做这个方向项目的热情,但是拥有上面举例的能力,也是OK的。只是最后总是要懂深度强化学习才能更好的协作。
文章来源:https://zhuanlan.zhihu.com/p/186093914?utm_source=wechat_session&utm_medium=social&s_r=0&from=timeline#showWechatShareTip
完
总结3: 《强化学习导论》代码/习题答案大全
总结6: 万字总结 || 强化学习之路
完
第75篇:Distributional Soft Actor-Critic算法
第74篇:【中文公益公开课】RLChina2020
第73篇:Tensorflow2.0实现29种深度强化学习算法
第72篇:【万字长文】解决强化学习"稀疏奖励"
第71篇:【公开课】高级强化学习专题
第70篇:DeepMind发布"离线强化学习基准“
第66篇:分布式强化学习框架Acme,并行性加强
第65篇:DQN系列(3): 优先级经验回放(PER)
第64篇:UC Berkeley开源RAD来改进强化学习算法
第61篇:David Sliver 亲自讲解AlphaGo、Zero
第59篇:Agent57在所有经典Atari 游戏中吊打人类
第58篇:清华开源「天授」强化学习平台
第57篇:Google发布"强化学习"框架"SEED RL"
第53篇:TRPO/PPO提出者John Schulman谈科研
第52篇:《强化学习》可复现性和稳健性,如何解决?
第51篇:强化学习和最优控制的《十个关键点》
第50篇:微软全球深度强化学习开源项目开放申请
第49篇:DeepMind发布强化学习库 RLax
第48篇:AlphaStar过程详解笔记
第47篇:Exploration-Exploitation难题解决方法
第45篇:DQN系列(1): Double Q-learning
第44篇:科研界最全工具汇总
第42篇:深度强化学习入门到精通资料综述
第41篇:顶会征稿 || ICAPS2020: DeepRL
第40篇:实习生招聘 || 华为诺亚方舟实验室
第39篇:滴滴实习生|| 深度强化学习方向
第37篇:Call For Papers# IJCNN2020-DeepRL
第36篇:复现"深度强化学习"论文的经验之谈
第35篇:α-Rank算法之DeepMind及Huawei改进
第34篇:从Paper到Coding, DRL挑战34类游戏
第31篇:强化学习,路在何方?
第30篇:强化学习的三种范例
第29篇:框架ES-MAML:进化策略的元学习方法
第28篇:138页“策略优化”PPT--Pieter Abbeel
第27篇:迁移学习在强化学习中的应用及最新进展
第26篇:深入理解Hindsight Experience Replay
第25篇:10项【深度强化学习】赛事汇总
第24篇:DRL实验中到底需要多少个随机种子?
第23篇:142页"ICML会议"强化学习笔记
第22篇:通过深度强化学习实现通用量子控制
第21篇:《深度强化学习》面试题汇总
第20篇:《深度强化学习》招聘汇总(13家企业)
第19篇:解决反馈稀疏问题之HER原理与代码实现
第17篇:AI Paper | 几个实用工具推荐
第16篇:AI领域:如何做优秀研究并写高水平论文?
第14期论文: 2020-02-10(8篇)
第13期论文:2020-1-21(共7篇)
第12期论文:2020-1-10(Pieter Abbeel一篇,共6篇)
第11期论文:2019-12-19(3篇,一篇OpennAI)
第10期论文:2019-12-13(8篇)
第9期论文:2019-12-3(3篇)
第8期论文:2019-11-18(5篇)
第7期论文:2019-11-15(6篇)
第6期论文:2019-11-08(2篇)
第5期论文:2019-11-07(5篇,一篇DeepMind发表)
第4期论文:2019-11-05(4篇)
第3期论文:2019-11-04(6篇)
第2期论文:2019-11-03(3篇)
第1期论文:2019-11-02(5篇)