自动驾驶决策规划-控制方向2023届秋招总结

隔了这么久,终于打算好好总结一些自己的秋招历程了。。

1. 基本情况

985本硕,研究方向是深度强化学习与机器人控制。今年秋招投递的岗位主要是自动驾驶的决策规划或控制岗位,当然前期也投递了一些机器人公司的规划控制岗位和部分机器学习算法岗位。

研究生期间,由于研究方向都是深度强化学习相关,所以做的项目都是深度强化学习的,对传统的控制或者规划方法基本不涉及。另外由于导师比较push,所以没有机会出去实习,但好在跟着导师混发了几篇论文,虽然不是什么顶会顶刊,但在机器人领域还是比较拿得出手的。

2. 前期准备

我的秋招准备得特别特别晚,一方面因为我是我导师的第一届学生,没有师兄师姐传播传播经验,另外一方面是我导师太push了,一有时间就是在水项目,留给自己的时间并不多。。。我大概是在22年的6月份正式开始准备秋招的,包括力扣刷题、c++复习、决策规划控制方面的知识点学习。

最终我确定往自动驾驶方向去主要有几个原因,一个是我的研究方向是强化学习与机器人控制,更偏向于应用,这也导致我对理论掌握地不深,找强化学习工作时比较困难,另外目前强化学习用在游戏上比较多,落地很困难。其次是我的专业是控制工程的,所以从专业角度来看,我去做机器人或者车辆相关是比较对口的。在对自动驾驶有个大致的了解后,发现自动驾驶的规划控制这一块对我来说还蛮合适的,所以后面我就以这一块准备工作了。

3. 投递经历

我大概7月中旬的时候陆陆续续开始投递简历(简历的制作不妨可以使用这个超级简历,方便快捷)。前前后后投了大概50份简历,其中包括车企、自动驾驶头部和初创企业、机器人公司、互联网企业。一开始我是想着海投多多面试积攒经验,但后来面了将近10家后发现自己精力有限,所以一些陆陆续续的小厂就没再面试了。

我获取招聘信息的主要渠道包括牛客,对应的公司官网,内推君微信公众号,boss直聘等。其中我获取的招聘信息基本90%以上都能够在内推君公众号上看到,这给我省下了很多精力。 我一般就是在内推君公众号获取招聘信息,然后再在相应的公司官网上投递,对于内推码我也会在牛客上找。当然在亲身经历后我不太建议使用牛客上的内推码,因为后面很多简历石沉大海后都不知道自己找谁去问哈哈哈

4. 面经

我投递的企业主要有华为、中兴、蔚来、滴滴、小马、文远、小米、京东、虹软、荣耀、大疆、网易、吉利、上汽、中国一汽、长安汽车、比亚迪、海康威视、众星智能等。

面试流程一般会包含几个部分

  1. 自我介绍
  2. 面试官自我介绍(看公司)
  3. 面试官问个人项目(二面时提及比较多)
  4. 面试官问岗位相关的知识点(二面时提及比较多)
  5. 编程相关知识点(一面时较多)
  6. 手撕代码题(一般每一面都会有)
  7. 面试结束时允许向面试官提问一到两个问题

自我介绍我一般准备不超过1分钟的稿子,快速地介绍一下基本情况和做过什么项目。

面试过程中面试官主要会问几个方面:岗位相关的专业知识、自己所做的项目、编程相关知识点等。我整理了自己的科研项目并做了一个ppt,一般面试官让我讲述自己的项目时,我会先询问面试官是否可以通过ppt来讲解,用ppt的方式可以让面试官对你所做的工作有个比较详细的大致的了解,所以我是偏向于做一个ppt展进行示的,大部分时候还是很有帮助的。

最后5分钟在向面试官提问时,可以聚焦于询问团队和工作内容等比较不犀利的问题(我一般都会问他们公司对强化学习应用的情况)。

另外在每次面试完我都会简单地做个面试复盘,对面试官问的一些问题进行总结。下面是我当时面的一部分公司的面试问答。

鉴智机器人

面试岗位:决策规划岗位

笔试

笔试出的是力扣原题。2道中等难度+1道困难题。

一面

  • DDPG,TD3算法流程,区别
  • 路径规划算法了解的讲一下
  • 对强化学习落地难、应用少的看法

二面

  • A星算法介绍以及实际应用的优缺点,如何解决。在搜索的时候有什么技巧?
  • SAC的梯度传递方式
  • 参数正则化trick
  • 强化学习落地难的看法
  • 模仿学习了解
  • 混合A星
  • Lattice规划

总结

当时鉴智机器人是最早面试的几个公司之一,所以体验并非很好,不出意外在二面阶段就挂了。

暴露出的问题:对基础掌握不扎实,底层不够了解,优缺点也不够了解。

科大讯飞

岗位:自然语言处理——智能语音方向

笔试

科大讯飞的笔试并不算简单,选择题+3道编程题。
编程题出了一道实现K-means算法的题。

一面

  • 问个人项目
  • 问强化学习知识点
    • 各种常用的强化学习算法的原理
    • 机器学习过拟合、欠拟合知识点

二面

  • 主要问个人项目

总结

科大讯飞原本报的岗位是决策规划岗位,后来被转到了智能语言方向进行面试。科大讯飞的面试相对来说还是非常简单的,单纯的询问项目和一些知识点问答。不过二面时面试官问我期望薪资多少,我当时并不知道他们能开的是多少,所以随意说了一个较高的数字,然后就没下文了。。

地平线

面试岗位:自动驾驶规划控制岗位

一面

  • 问个人项目

  • 做一道数学题:给一个多项式式子,化成二次型表示
    f ( x 1 , x 2 , x 3 ) = ( x 1 − 1 ) 2 + ( x 2 − 2 ) 2 + ( x 3 − 3 ) 2 + ( x 1 − x 2 ) 2 + ( x 2 − x 3 ) 2 x 1 , x 2 , x 3 ∈ R f\left(x_1, x_2, x_3\right)=\left(x_1-1\right)^2+\left(x_2-2\right)^2+\left(x_3-3\right)^2+\left(x_1-x_2\right)^2+\left(x_2-x_3\right)^2\\ x_1, x_2, x_3 \in \mathbf{R} f(x1,x2,x3)=(x11)2+(x22)2+(x33)2+(x1x2)2+(x2x3)2x1,x2,x3R

    • 将该函数写成矩阵和向量的二次型形式。
    • 该函数取最小值的充分必要条件是?
  • 手撕代码:已知一条线段两端点坐标A,B以及一点C,求点C到线段AB的投影点坐标。

  • 意向地

  • 职业规划

二面

先手撕代码题。

在这里插入图片描述

总结

地平线一面时问了我许多数学题目,面试体验很好,但是比较可惜,二面一开始先手撕代码,由于我当时没写出来,所以面试官直接通知很遗憾了。。

蔚来

岗位:自动驾驶规划控制岗位

笔试

笔试比较简单,选择题+3道编程题,编程题是力扣题目。

一面

问答

  • 介绍强化学习怎么用的。
  • 强化学习用作参数拟合做过吗?
  • 说一些自动驾驶的强化学习的应用
  • 强化学习与经典方法的优劣
  • PID算法阐述
  • 积分饱和现象怎么解决
  • LQR原理
  • PID与LQR的区别
  • MPC原理
  • MPC与LQR区别
  • QP的原理
  • 模型的参数辨识有了解过吗
  • 汽车动力学模型知识点–车轮的侧偏力
  • MPC或LQR在动力学模型上应用有熟悉吗?
  • 强化学习与经典方法哪种方式比较好
  • 目前为什么使用MPC在汽车上的比较少?
  • 最优控制与强化学习的联系与区别

手撕代码题

  • C++实现PID类,需要包含积分饱和的处理。

二面

问个人项目。

总结

蔚来也是面的较早的一批,大概8月份左右,当时做的准备不够充足,二面半小时就结束了。非常可惜。。。

文远

岗位:自动驾驶决策规划岗位

一面

  • 问个人项目

  • 手撕代码

    • 求平方根
      • 牛顿法的复杂度
    • 求矩阵的最长递增路径长度
      • dfs
      • dp搜索方向

总结

文远的一面手撕代码只写出来一道,第二道题没写出来,所以没了。。所以题还是得多练,一般手撕题都是力扣原题或者类似的题。

滴滴

岗位:自动驾驶决策规划岗位

提前批无笔试。

滴滴提前批一面(40分钟)

  • 问个人项目
  • 手撕代码:找到 K 个最接近的元素

滴滴提前批二面(40分钟)

  • 面试官介绍(真的太赞啦,好喜欢这个面试官!)
    • 行为规划
    • 逻辑回归
    • rule-based 使用率:70-80%
    • 优化 使用率:10-20%
    • 数据驱动:10-20%
    • 控制、规划、交互决策
  • 问个人项目
  • vector八股知识点及手动实现相关函数
    • vector底层
    • push_back实现原理
    • 原生数组有什么缺点
    • size()和capacity()区别
    • public,protected,private
    • 手撕:实现push_back函数

滴滴提前批三面(50分钟)

  • 问个人项目(30多分钟)
  • 手撕:给了一道寻找起点到终点的所有路径的编程题

滴滴提前批四面(30分钟)

  • 个人项目

总结

滴滴的面试前三面是连在一起的,中间可能只隔了10分钟左右,所以需要预留出面试的时间。滴滴四面时自己答得不是很好,感觉还是蛮遗憾的。

5.校招面试技巧分享

这里再附上秋招时一个网上认识的小伙伴分享给我的面试技巧,非常感谢!

  1. 背景
    到了2022年,早已不是简单调包就可以满足要求。虽然ai岗一般还能分为预研岗和工程岗,现在公司很少有纯research的岗位,基本都合入业务线。

  2. 岗位信息
    了解岗位基本信息,会被认为有一定意向,也减少面试官的重复介绍。从JD中大致判断,岗位部门,偏预研或工程等。这些信息可以通过搜索引擎、社交关系获取,也反映信息收集能力。

  3. 自我介绍
    建议准备多版本,时长对应1、2和5分钟。介绍有亮点,比如顶会/顶刊、实习经历和竞赛,1-3个亮点就很好。竞赛和论文要写难度,比如top3%,1/200。面试官会判断概括能力和事先重视程度。

  4. 项目面
    简历上项目要有可量化的产出。有失败的项目没有问题,但要有复盘。不懂的知识或者项目中不是自己负责的内容,大方承认不太了解,硬拗感官上比较差。

  5. 代码面
    Leetcode有时间还是练一练,代码风格也需注意。这段时间面试,很多有顶会/顶刊的同学简单题不会做,或代码风格特别差,很难PASS。AI工程师也是工程师,需要基本的开发素养。

  6. 结束提问
    能在准备工作中搜到的信息就不用问。比较安全的问题就是,团队和工作内容。

5. 后记

我的秋招开始得猝不及防,准备得也匆匆忙忙,结果可想而知不够如人意,但也就此重拾心情,扬帆起航,开始人生的必经之旅,争取能够成为战地之王!
感兴趣的小伙伴们就不用问我最后去了哪里啦,后面有机会的话会提到。
另外,我整理了我的学习资料,免费分享,没有套路,感兴趣的可以移步我的另一篇文章。

你可能感兴趣的:(自动驾驶,自动驾驶,人工智能,机器学习)