【转载】 再励学习面试真题 (强化学习面试真题)

摘要:
)前言本人于17年4月对再励学习产生了兴趣,8月将其定为自己未来学习的核心。这两个月的面试中,被问到了大量强化学习问题。17年3月在与一个北大学弟聊天时,他说他在看强化学习。本文按郭老师教材的章节顺序,尽量回忆起再励学习的面试真题。对再励学习求职者和面试官,则是非常好的题库。有监督学习靠样本标签训练模型,强化学习靠的是什么?

原文地址:

https://zhuanlan.zhihu.com/p/33133828

(本文最开始写在WPS里,往知乎粘贴后格式和高亮都没有了。大家可以从CSDN再励学习面试真题-CSDN下载下载本文。百度文库、道客巴巴强行不让公开。)

前言

本人于17年4月对再励学习产生了兴趣,8月将其定为自己未来学习的核心。在10月~12月的求职中,一直将增强学习作为自己简历的要点。这两个月的面试中,被问到了大量强化学习问题。就像郭老师《深入浅出强化学习:原理入门》是第一本reinforcement learning中文教材一样,我也想以此文填补再励学习面经的空白。

首先说一下本人是如何与再励学习结缘的:周志华教授《机器学习》有一章专门讲强化学习,16年秋天看书时没看明白也没在意。然而16年12月李航老师(《统计学习方法》作者)在滴滴学院回答提问时说,他觉得强化学习这种方法很好。这是其第一次引起我的重视。17年3月在与一个北大学弟聊天时,他说他在看强化学习。硕士二年级下学期结束实习后比较闲,想学些新东西,于是从“五一”开始断断续续看Silver的录像。《程序员》杂志时不时也有强化学习文章。17年夏天看了《不一样的技术创新:阿里巴巴2016“双十一”背后的技术》和《科技之巅2:<麻省理工科技评论>2017年10大全球突破性技术深度剖析》这两本书,决定就把宝押在强化学习上!

1 绪论

1.1 这是一篇什么文章?

本文按郭老师教材的章节顺序,尽量回忆起再励学习的面试真题。这些问题主要来自于快手、猎户星空、京东商城、景驰科技、四维图新、禾多科技、滴滴出行、魔门塔科技、新浪微博等公司的校招面试,在此对所有这些带给我启发的面试官表示感谢。因为都是口头提问,面试真题不可能像事先精心设计好的书面试卷一样严谨、逻辑性强。有些题很容易搜到答案;有些题则是正在研究的开放性设计方案;有的问题更是还没有比较好的解决办法。本文中,常考知识点都用红色标记。

对于系统学过强化学习的朋友(特别是看郭老师教材的),本文可以检验学习效果。对再励学习求职者和面试官,则是非常好的题库。以后再编纂增强学习书,欢迎引用本文内容。同时,本文收录的开放性设计题亦可作为reinforcement learning研究者的参考方向。

因为本文是想填补再励学习面经的空白,为了保持特色和针对性,其他机器学习、深度学习、算法设计、数据结构、数学、C++、操作系统原理、Linux使用、分布式计算等已经被充分总结过的问题就不再赘述了。

1.2 强化学习可以解决什么问题

1.2.1 我面试过的公司里:

1)推荐系统

阿里巴巴、京东商城商业提升事业部等大电商和部分新媒体公司都在把再励学习用在推荐系统计算广告搜索引擎中。

2)游戏AI

因为本人平时不玩游戏,了解很少,有公司尝试做德州扑克。

3)机器人控制

有做机械臂控制的。

跟书上写的不一样——自动驾驶公司几乎都不用再励学习!自动驾驶公司的研发重点多在车道线识别计算机视觉感知问题上,决策方面主流用的还是 基于规则的有限状态机

1.2.2 北京学术界:

境内计算机学科研究再励学习的很少(我只看过PKU北京大学、ISCAS中科院软件学院、ICT CAS中科院计算机、THU清华计算机系,可能有遗漏),用上的也多将其作为对话系统、自动驾驶、序列预测的工具。

CASIA中科院自动化研究所 将其作为核心课题:模式识别和复杂系统两大国重都有组在研究星际争霸;自动驾驶在复杂实验室有研究;空天中心搞机器人避障。

1.3 强化学习如何解决问题

1)举出强化学习与有监督学习的异同点。有监督学习靠样本标签训练模型,强化学习靠的是什么?

2)强化学习解决的是什么样的问题?

我答:“序列决策问题。”

面试官又问:“【转载】 再励学习面试真题 (强化学习面试真题)第1张 只是一步,没有序列呀?”

第一篇 强化学习基础

2 马尔科夫决策过程

2.1 MDP理论

1)强化学习的损失函数(loss function)是什么?

2)POMDP是什么?马尔科夫决策过程是什么?里面的“马尔科夫”体现了什么性质?马尔科夫过程是什么?(因为是口头交互式提问,确实是先难后易。)

3)写出贝尔曼方程。

4)最优值函数和最优策略为什么等价?

5)如果不满足马尔科夫性怎么办?当前时刻的状态和它之前很多很多个状态都有关。

recurrent state。

3 基于模型的动态规划方法

求解马尔科夫决策过程都有哪些方法?有模型用什么方法?动态规划是怎么回事?

第二篇 基于值函数的强化学习方法

4 基于蒙特卡洛的强化学习方法

简述蒙特卡罗估计值函数的算法。

5 基于时间差分的强化学习方法

1)简述时间差分算法。

2)蒙特卡洛和时间差分的对比:MC和TD分别是无偏估计吗,为什么?MC、TD谁的方差大,为什么?

3)简述Q-Learning,写出其Q(s,a)更新公式。它是on-policy还是off-policy,为什么?

4)写出用第n步的值函数更新当前值函数的公式(1-step,2-step,n-step的意思)。当n的取值变大时,期望和方差分别变大、变小?

5)TD(λ)方法:当λ=0时实际上与哪种方法等价,λ=1呢?

6 基于值函数逼近的强化学习方法

6.1 基于值函数逼近的理论讲解

写出蒙特卡洛、TD和TD(λ)这三种方法更新值函数的公式。

6.2 DQN及其变种

6.2.1 DQN方法

这是本人这么多次面试中被问到次数最多的再励学习问题。

1)详述DQN。DQN的两个关键trick分别是什么?

2)不打破数据相关性,神经网络的训练效果为什么就不好?

3)画出DQN玩Flappy Bird的流程图。在这个游戏中,状态是什么,状态是怎么转移的?奖赏函数如何设计,有没有奖赏延迟问题?

6.2.2 Double DQN

1)DQN都有哪些变种?引入状态奖励的是哪种?

2)简述double DQN。

第三篇 基于直接策略搜索的强化学习方法

7 基于策略梯度的强化学习方法

7.1 理论讲解

策略梯度方法中基线b如何确定?

8 基于置信域策略优化的强化学习方法

8.1 理论基础

为什么TRPO能保证新策略的回报函数单调不减?

9 基于确定性策略搜索的强化学习方法

9.1 理论基础

1)画出DDPG框架。

2)actor-critic框架中的critic起了什么作用?

3)DDPG是on-policy还是off-policy,为什么?

4)简述A3C算法。

5)A3C是on-policy还是off-policy,为什么?

第五篇 强化学习的商业落地

15 推荐系统

1)强化学习如何用在推荐系统中?

我主要复述《不一样的技术创新:阿里巴巴2016“双十一”背后的技术》第七章。阿里后来新写了《强化学习在电商环境下的若干应用与研究》。新发现京东写的《Deep Reinforcement Learning for List-wise Recommendations》。

2)推荐场景中奖赏函数如何设计?

3)场景中状态是什么,当前状态怎么转移到下一状态?

4)研究课题:绝大部分强化学习用的都是智能体与环境交互得来的数据。但是智能体在一开始表现很差,线上训练试错成本过高,如何用强化学习前的静态历史数据训练模型呢?

16 自动驾驶和机器人决策

1)自动驾驶和机器人的场景如何建模成强化学习问题?MDP各元素对应真实场景中的哪些变量?

2)用什么算法实现决策?

我复述的是DDPGTORCS的例子。

3)强化学习需要大量数据,如何生成或采集到这些数据?(本题亦可作研究课题。)

17 深度学习

研究课题:传统的注意力机制是soft attention,每时刻的特征通过attention值进行加权,实现端到端的训练。但由于需要把每个时刻的attention都算一遍,soft attention速度慢。于是“取attention值最大的时刻对应的特征”的新方法hard attention应运而生。除了计算量大大降低,hard attention还有解码方便的优点。可因为是hard,没法像soft一样将误差梯度反向传导回去。如何用再励学习的方法训练hard attention模型参数?(本人只知道注意力机制,此题复述得非常费劲,可能有错误。)

18 序列预测

已知且仅知全国所有城市距今千年来的每天(包括今天)最高最低气温,阴晴雨雪和风力风向,要预测明天北京的最高气温,请详述如何构造样本点和几大类特征会使得预测会很准确。

(此题非再励学习方法更实用。但北大有教授想用强化学习做序列预测,于是就写在这里了。)

后记

本文虽然提出了问题,但很多问题本人在面试时回答得并不好。非常欢迎大家一起讨论这些问题的答案!

虽然DeepMind时不时就能刷屏,但再励学习直到18年初仍然没有推广开。我17年主攻增强学习属于打出很大提前量的“左侧买入”,个人感觉17年的强化学习就像13年的深度学习一样方兴未艾,但短则两年长则五年内必能大红大紫!

深度学习12年大发展以来,直到17年还在不断推陈出新,CTR预估领域的应用尚未普及,总体仍在当打之年。reinforcement learning远比supervised learning难理解,对machine learning (deep learning)、数学等先验知识要求高,中文资料也少。想落地的话,还必需有原领域的功底。总之,学习曲线很陡!对绝大多数独立性不强、爱随大流的同学,远不如deep learning那么喜闻乐见、平易近人。

免责声明:文章转载自《【转载】 再励学习面试真题 (强化学习面试真题)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇java 修改文件名java单例类下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

“AI+”改变世界!不同领域的5大人工智能趋势

“AI+”改变世界!不同领域的5大人工智能趋势 人工智能是当代最热门和关注度最高的话题,它将改变人们对20年后世界的看法。 AI相关工作的需求频繁增加,尤其是在数据科学和机器学习职位方面,人们相信,正如约100年前电力改变世界一样,人工智能也将改变世界。吴恩达教授(美国斯坦福大学计算机科学系和电子工程系副教授)曾反复强调一句名言:“人工智能是新电力。” 人...

机器学习策略(二)---误差分析、训练集与开发测试集不相配怎么办、迁移学习/多任务学习、端到端深度学习

1.误差分析 1.1 误差分析 当算法还没有到达human level时,你需要去分析算法带来的误差,并且决定接下去应该如何优化,从而减小误差。这个过程叫做误差分析。 将设在猫狗分类的任务上,若dev set上的error有10%,此时你需要找出这些错误的case,然后统计猫错分成狗,和狗错分成猫各自的比例,如果你发现:狗错分成猫的比例是5%猫错分成狗的比...

【集成学习】sklearn中xgboost模块中plot_importance函数(绘图--特征重要性)

直接上代码,简单 1 # -*- coding: utf-8 -*- 2 """ 3 ############################################################################### 4 # 作者:wanglei5205 5 # 邮箱:wanglei5205@126.com 6 # 代码:htt...

L1-064 估值一亿的AI核心代码 (20分) 团体程序设计天梯赛-练习集

以上图片来自新浪微博。 本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 无论用户说什么,首先把对方说的话在一行中原样打印出来; 消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉; 把原文中所有大写英文字母变成小写,除了 I; 把原文中所有独立的 can you、could y...

轻松学Pytorch-详解Conv2D卷积处理

轻松学Pytorch-详解Conv2D卷积处理 原创 gloomyfish OpenCV学堂 4月25日 收录于话题 #轻松学Pytorch系列 30个 图片 点击上方蓝字关注我们 微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识 Conv2D基本原理与相关函数 常见的图像卷积是二维卷积,而深度学习中Conv2D卷积是三维卷积,图示...

Python机器学习(5)——朴素贝叶斯分类器

朴素贝叶斯分类器是一个以贝叶斯定理为基础,广泛应用于情感分类领域的优美分类器。本文我们尝试使用该分类器来解决上一篇文章中影评态度分类。 1、贝叶斯定理 假设对于某个数据集,随机变量C表示样本为C类的概率,F1表示测试样本某特征出现的概率,套用基本贝叶斯公式,则如下所示: 上式表示对于某个样本,特征F1出现时,该样本被分为C类的条件概率。那么如何用上式来...