腾讯丨算法工程师丨超详细的面经
5677
2021.04.08
2021.04.08
发布于 未知归属地

【一面】大概60min

1.自我介绍,从本科到研二大概过了一遍流水账,捡相对丰富的实习和强相关的论文引入话题。

2.介绍简历上的项目,我就讲了当前投出去的论文,首先简单说了一下轨迹预测任务,而后分三点说了一下主要工作,听我用到了condition-GAN和多模态就详细问了一下。

3.问RL项目,目前我RL只有基于模仿学习的一个算法还在做,没啥实质性成果,因此就讲了一下以前基于carla尝试做的自动驾驶DQN,对方来了兴趣细问这个任务的状态、动作空间,模型的结构、遇到的问题等,两年前做的,东西也不难,大概答了一下没什么错漏。开始问RL相关了,我已经一年没接触强化学习了,最近才开始慢慢看模仿学习,赶面试前一天总结了一下相关内容就面了。

4.RL分类,知道的RL算法:基础题没什么好说的,按部就班答,大概说到PPO和SAC就停了,SAC、TRO、PPO等就说了一下大概原理,细节直接坦白没用过不了解代码细节,遂跳过。

5.Model-based RL了解吗?事后感觉面试官是想听我说MCTS(因为阿尔法狗和王者荣耀AI貌似都用到了),可惜当时没想到这一层,想到了也不会,于是另辟蹊径从以前做自动驾驶的层面介绍了下MPC模型预测控制,可以认为MPC是model-given的纯动态规划RL吧,面试官也认可这一看法。

6.既然说到了MPC,来详细讲讲:没想到啊没想到对方也懂控制,挖了个坑,就答了一下MPC的基于模型的状态预测、带约束的二次优化模型、控制等三部分,问求解二次规划的求解器,答OSQP、OOQP、CppAD。

7.有用过其他最优控制吗?看你简历有写LQR,讲讲:这个坑太深了,就讲了下LQR目标函数设计、无约束二次优化模型、黎卡提方程的迭代式求解等。

8.讲一讲实习中自动驾驶决策规划部分的工作:比较得心应手了,且目前在深蓝学院做运动规划课程助教,非常熟悉,就自上而下介绍了下状态机、行为树、A*寻路、全覆盖路径规划、避障算法等,比较全面,双方还强调了一下状态机/行为树本身就是游戏AI的主流方法。

9.再问论文工作:手头第二篇基本做完还没写好发出去的论文也被我拿出来说了,因为是基于GNN图神经网络的,于是问graph的构建,我从异质、动态、有向三个方面说了一下,然后问GNN的特点和典型的应用,先说了下频域和空域的图卷积,然后举了社交网络、论文引用关系等任务,再问其他创新点,答基于参数化曲线的轨迹预测(多项式曲线贝塞尔曲线什么的),比模型直接输出轨迹点质量要高。

10.话题回到RL,DQN相关:先问DQN主要想法,答经验池回放打破数据相关性,两个Q网络延迟更新参数。追问打破数据相关性的作用,答满足深度学习独立同分布。

11.介绍一下DDPG:PG+DQN,4个网络,比较经典不再详细写了。

12.问Actor-Critic类方法的了解:AC-A2C(引入优势函数)-A3C(多个actor)-SAC(引入最大熵)逐个介绍了一下,追问优势函数,答动作a在状态s下的动作状态价值相对于其在动作a下的平均值的优势(或劣势),再追问优势函数估计,答GAE,再追问GAE,答没读过论文只是知道这么个东西,书到用时回头看,转而问最大熵作用,答鼓励动作探索,到这里终于问罢了。

13.问探索的方式:答epsilon-greedy、UCB、最大熵、加噪声等。

14.之前介绍论文提了一嘴第三篇在用GAIL尝试做轨迹预测,于是开问模仿学习:先讲行为克隆,状态到动作的映射复现专家行为,监督学习,问缺点,答专家未示教的行为表现差,再问改进方法,简单讲了一下DAgger,顺便说这样治标不治本,否定了一下行为克隆;再讲IRL,就直接讲了GAIL,结合GAN一起讲,区别Discriminator和critic的意义。

15.最后问RL基础:问on-policy和off-policy区别,简单问题,经明白意思并各自举几个例子,后再问激进保守的问题,举SARSA和q-learning的例子说SARSA更保守谨慎。

16.以前经历中遇到的问题,如今再做会怎么做?举了个以前做***时候的例子,做仿地形定高飞行控制,对地高度一开始用激光测做反馈控制,但地面植被复杂,高度数据质量很差,后改用毫米波雷达等但依旧不佳;如今做会提前对目标区域建立高程数据地图,排除传感器的负面影响查表获取相对高度,然后基于前馈的方式做定高,控制指标(尤其响应速度)应该会好很多。

17.问平时玩游戏吗,都玩什么游戏?非腾讯系的游戏都没说,提了英雄联盟和王者荣耀,非moba的游戏提了下地下城与勇士。

18.了解multi-agent吗?仅限于知道,做轨迹预测涉及到交互建模,看了一些博弈论的东西,就坦白说没接触过具体方法,从方法论层面谈一下自己的理解,然后就协作竞争纳什均衡什么的扯了一通,然后问我论文中有用到吗,答博弈论更多的是指导意义上的,对方也说难以真正引入算法设计中。

19.给你一个multi-agent任务如何做?还是基于自己理解说了三个方向,第一,简化问题,挨个agent来考虑问题;第二,对agent做状态增广,加入其他agent的信息;第三,把多智能体系统视为一个单智能体,动作空间为所有agent动作空间的叠加,然后基于单智能体的方法来做,将多智能体建模的任务交给网络,追问第二种可以视为是对队友或对手的建模是吗,答是的。

20.reward设计问题:举了多个场景记不清了,答得一般没啥清晰思路,就说可以收集高端玩家数据做模仿学习,规避reward难设计的问题。

21.开放世界类游戏如何做RL?不懂什么是开放世界类游戏,遂反问,对方也不知道怎么解释,双方鸡同鸭讲,妨碍我面试的竟然是游戏打的不够多。。。。

22.问做自动驾驶和游戏AI有无顾虑,区别在哪?答自动驾驶仿真中做RL同游戏AI没有任何区别,但自动驾驶还有sim2real的问题,上游感知定位给到的状态仍有质量问题,相比之下游戏AI做RL条件前景要理想得多。

23.问你做过的东西挺多的,是出于什么?答个人注重顶层设计,注重全面的认知,喜欢拓展自己的知识面和技能树,巴拉巴拉扯了扯。

24.问以后的职业规划,想做研究还是工程:答目前做模式识别类任务的多(如视觉语音等),做智能决策的少,在自动驾驶领域更是如此。我想持续目前的这一方向接着做,实习也找的这一类职位,研究和工程应用并不冲突,我想两条腿走路吧。

25.反问环节

1.技术类问题一连问了几个对方都表示不方便回答,建议我去看他们的论文和王者荣耀绝悟AI,我又从大的方面问一些不具体的方向性的问题也是如此。

2.我问部门定位,研究or产品等:对方答都做,也涉及工程应用 。

3.我问实习安排:对方答至少三个月。
我的C++神功大成竟然一句没问,一些异构并行计算的东西也没咋问,几乎都是研究相关的问题一直往深了问到不会为止,面试官知识面相当的广,没有问什么太基础的诸如深度学习相关的内容,和网上面经不太一样,晚上面完第二天中午接到约复试的电话。

欢迎来公众号【面经熊】学习互联网大厂面试经验,每日上午九点准时发布最新的互联网大厂面试经验,岗位齐全~回复 面经 可以获取精心整理的一千多篇互联网大厂面试经验哦~互联网大厂求职必备!

【二面】大概30min 

1.海谈个人情况,涉及隐私就不说了。

2.谈项目,把目前轨迹预测已做在做的三个算法都详细讲了下,涉及GAN、CNN、参数化轨迹拟合、多模态、GNN等,对方认可工作做的很好很多,但CNN、GNN等不够深入,就进一步讲了讲GNN。

3.谈RL相关,讲了讲自己做过的DQN和GAIL以及遇到的一些动作空间探索、reward设计等方面的具体问题。

4.算法题说思路,三个容量不一的容器,互相倒,目标是达到规定量的水,一开始状态转移推的有问题,一度怀疑是否有解,后来在提示下艰难做出来了,败笔。

5.问最有深度的工作,答robotics自主智能决策规划方面,对方貌似不懂就没再问。

6.问玩什么游戏,答英雄联盟和毒奶粉,王者也玩一点,一面问过的问题,也没再多问。

7.反问环节:

1.游戏RL的状态获取问题,我问是通过游戏画面还是后台传感器类数据,后者是否有作弊嫌疑?——>对方答后台数据也是规则允许下的画面内的状态数据,比如视野外的数据就一样拿不到,因此不存在这一问题。

2.例如王者荣耀,考虑英雄移动、技能、装备等方面。agent的动作空间非常大,维度高,有连续量也有离散量,训练中如何探索?——>对方答算力很高,且会有分层RL等方法,探索速度和效率有保障。

3.***类游戏的不完全信息下的RL如何思路做?——>答那是另一个RL方向,没有具体回答。

4.我玩游戏的过程中没有看到智能NPC的RL应用,是因为哪些难点?——>答不同于PVP,这类RL任务难点不同,且每个NPC需针对性设计。

5.面试环节和实习安排上的常规疑问,就不详细写了。

【HR面】

轻松愉快的聊天,已oc,也没什么好写的,就聊天确认实习安排offer流程什么的。

评论 (0)