0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AI工程师和算法工程师在应聘时究竟应该怎么准备

工程师人生 来源:工程师吴畏 2019-04-03 16:24 次阅读

今天我们来讨论 AI 工程师算法工程师在应聘方面的问题。一起来看看,作为 AI 工程师,在面试一家公司时,究竟应该怎么准备,有哪些信息是需要了解的。

希望今天的内容对正在思考进入这个行业的年轻学者、工程师有所帮助,从大的方向上为你的应聘提供一些可借鉴的内容。

1

AI 工程师应聘的“硬”实力

对于 AI 工程师来说,最核心的竞争力无疑是他们对人工智能机器学习等技术的知识积累以及融会贯通的能力。

我们之前的一系列分享中已经提到了这些“硬”实力的大范畴,这里我做一个简单的归纳。

首先,我们需要理解和掌握一些机器学习的基本概念和理论。 第一个重点无疑就是监督学习

什么是监督学习呢?监督学习就是指我们通过外部的响应变量(Response Variable)来指导模型学习我们关心的任务从而达到我们需要的目的这一过程。监督学习中需要彻底掌握三个最基础的模型,包括线性回归(Linear Regression)、对数几率回归(Logistic Regression)和决策树(Decision Trees)。

怎么理解我说的“彻底掌握”呢?这里的彻底掌握有三层含义。

第一,需要了解这些模型的数学含义,能够理解这些模型的假设和解法。比如,线性回归或者对数几率回归的目标函数是什么;写好了目标函数之后,如何求解最优解的过程。对于这些核心模型,必须能够做到完全没有差错地理解。

第二,需要了解什么场景下使用这些模型是最合适的,以及怎样把一个实际问题转化成为这些模型的应用,如果不能直接转换还有什么差距。

第三,能不能写实际的代码或者伪代码来描述这些模型的算法,真正达到对这些算法的掌握。

监督学习当然不限于这三个算法,但是这三个算法是绝大多数机器学习任务在工业界应用的起点,也是学习其他算法模型的支点,可以按照这个思路去了解更多的算法。在面试中,能够对这些基本算法的理解有扎实的基本功,这一点很重要。

了解机器学习的第二个重点就是无监督学习

无监督学习并没有明显的响应变量,其核心往往是希望发现数据内部潜在的结构和规律,从而为我们进行下一步决断提供参考。

从面试角度来说,“K 均值算法”往往是考察数据科学家整个无监督学习能力的一个核心点。因此,对于这个算法有必要认真学习,做到真正的、彻底的理解。

怎么学习呢?和前面我们提到的监督学习一样,也需要从编程实现和算法本身两个方面入手对 K 均值进行把握。在掌握了 K 均值之后,还可以进一步去了解一些基于概率模型的聚类方法,扩宽视野,比如“高斯混合模型”(Gaussian Mixture Model)。

其次,虽然机器学习和统计学习有不少的重合部分,但是对于合格的数据科学家和人工智能工程师来说,一些机器学习方向不太容易覆盖到的统计题目也是需要掌握的。

第一,我们必须去理解和掌握一些核心的概率分布,包括离散分布和连续分布。这里的重点不仅仅是能够理解概念,而且是能够使用这些概率分布去描述一个真实的场景,并且能够去对这个场景进行抽象建模。

第二,那就是要理解假设检验。这往往是被 AI 工程师和算法工程师彻底遗忘的一个内容。我们要熟悉假设检验的基本设定和它们背后的假设,清楚这些假设在什么情况下可以使用,如果假设被违背了的话,又需要做哪些工作去弥补。

第三,那就是去学习和理解因果推断(Casual Inference)。这虽然不是经典的统计内容,但是近年来受到越来越多的关注。很多学者和工程师正在利用因果推断来研究机器学习模型所得结果的原因。

再次,还有一个很重要的“硬”技能,就是要对系统有一个基本了解。

第一,就是具备最基本的编程能力,对数据结构和基础算法有一定的掌握。编程语言上,近年来,Python 可以说受到了诸多数据相关从业人员的青睐。因为其语言的自身特点,相对于其他语言而言,比如 C++ 或者 Java,Python 对于从业人员来说是降低了学习和掌握的难度。但另一方面,我们也要意识到,大多数人工智能产品是一个复杂的产品链路。整个链路上通常是需要对多个语言环境都有所了解的。因此,掌握 Python,再学习一两个其他的语言,这时候选择 Java 或者 C++,是十分必要的。另外,很多公司都采用大数据环境,比如 Hadoop、Spark 等来对数据进行整合和挖掘,了解这些技术对于应聘者来常常说是一个让用人单位觉得不错的“加分项”。

第二,就是对于搭建一个人工智能系统(比如搜索系统、人脸识别系统、图像检索系统、推荐系统等)有最基本的认识。机器学习算法能够真正应用到现实的产品中去,必须要依靠一个完整的系统链路,这里面有数据链路的设计、整体系统的架构、甚至前后端的衔接等多方面的知识。考察候选人这方面的能力是查看候选人能否把算法落地的一个最简单的方式。因此,从我们准备面试的角度来说,这部分的内容往往就是初学者需要花更多时间了解和进阶的地方。

2

数据科学家应聘的“软”实力

前面我们聊了数据科学家应聘的“硬”技能,下面,我们再来看看候选人还需要注意和培养哪些“软”技能。

数据科学家的第一“软”技能就是如何把一个业务需求转化成机器学习设置的“翻译”能力。什么意思呢?和纯理论学习的情况有所不同,大多数真实的业务场景都是非常复杂的。当产品经理提到一个产品构思的时候,当设计人员想到一个业务创新的时候,没有人能够告诉你,作为一个数据科学家而言,这个问题是监督学习的问题还是无监督学习问题,这个问题是可以转换成一个分类问题还是一个回归问题。有时候,你会发现好像几条路都走得通。因此,如何能够从逻辑上,从这些不同的设置所依赖的假设上来对业务场景进行分析,就成了数据科学家必不可少的一个核心能力。

分析业务场景这个“软”技能的确非常依赖工作经验。这里不仅仅是一个机器学习问题的“翻译”,还需要对整个系统搭建有所了解,因为真正合适的场景“翻译”往往是机器学习的问题设置和系统局限性的一个平衡和结合。举一个例子,一个推荐系统需要在百毫秒级给一个用户进行推荐,那么相应的方案就必然有一个计算复杂度的限制。因此,场景的“翻译”其实是考察数据科学家和人工智能工程师的一个非常重要的步骤,也是看候选人是否真正能够学以致用的有效手段。

说到这里,你是不是会有疑问:如果我没有相关的从业经验,那如何来锻炼这种“翻译”能力呢?其实,现在丰富的互联网产品已经为我们提供了一个无形的平台。当你在现实中看到一个真实产品的时候,比如京东的产品搜索、科大讯飞的语音识别系统等等,你设想一下,如果你是设计者,如果你是需要实现这个产品功能的数据科学家,你会怎么做?实际上,很多面试问题,都是面试官直接询问你对某一个现成产品的设计思路,比如谷歌的面试官可能会询问你如何设计一个搜索查询关键字拼写检查组件。这个方法一方面是帮助你“开脑洞”,另一方面也是一种非常好的思维锻炼。

另外一个很重要的“软”技能就是数据科学家的沟通表达能力。这可能会让有一些人感到意外,因为大家也许认为数据科学家和人工智能工程师完全是技术岗位,并不需要与人打交道。其实,这个理解是片面的。就像刚才提到的,数据科学家的一个重要职责就是把现实的业务场景“翻译”成机器学习的设置,那么在这个过程中,会和业务人员、其他工程师、科学家进行高频的沟通和交流。如何把你的思路、方案清晰地表达给同事和团队成员是非常重要的职责。实际上,数据科学家不仅在公司内部承载着的这样的沟通任务,我们往往还需要在社区中做演讲、参与讲座等活动,成为社区中的一份子,都离不开沟通表达能力的磨练。

如何锻炼沟通表达能力呢?这里,我给初学者一个简单而实用的方法,那就是用一两句话来总结你的方案。你尝试用一小段话,但是不夹带任何专业术语,把你的方案说给不懂机器学习的人听。这个训练方法可以让你反复思考,直到找到一个最简洁有力的表达。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工程师
    +关注

    关注

    59

    文章

    1569

    浏览量

    68502
  • 算法
    +关注

    关注

    23

    文章

    4607

    浏览量

    92837
  • AI
    AI
    +关注

    关注

    87

    文章

    30728

    浏览量

    268886
收藏 人收藏

    评论

    相关推荐

    FPGA算法工程师、逻辑工程师、原型验证工程师有什么区别?

    逻辑工程师和 FPGA 原型验证工程师工作重点和职责上存在一定的区别: FPGA 算法工程师: 主要关注
    发表于 09-23 18:26

    正是拼的年纪|65岁电子工程师上班VLOG #65岁退休 #电子工程师 #搞笑 #上班vlog

    电子工程师
    安泰小课堂
    发布于 :2024年07月25日 11:31:02

    用二创,1:1复刻工程师的职场现状

    工程师
    扬兴科技
    发布于 :2024年07月19日 18:30:07

    嵌入式软件工程师和硬件工程师的区别?

    ,并且了解嵌入式系统的工作原理。此外,他们还需要具备良好的逻辑思维能力,能够快速解决复杂的软件问题。嵌入式软件工程师软件开发方面有着丰富的经验,能够编写高效稳定的嵌入式软件,并且熟悉实时系统开发和调试
    发表于 05-16 11:00

    大厂电子工程师常见面试题#电子工程师 #硬件工程师 #电路知识 #面试题

    电子工程师电路
    安泰小课堂
    发布于 :2024年04月30日 17:33:15

    如何入门硬件工程师

    想跨行业做硬件设计工程师应该如何学习规划呢
    发表于 03-17 21:49

    企业老工程师和高校老师有啥区别

    电子工程师硬件
    电子发烧友网官方
    发布于 :2024年02月28日 17:50:00

    如何搞崩一个硬件工程师心态?试试对ta说这几句

    硬件工程师
    扬兴科技
    发布于 :2024年02月20日 18:05:49