2022 AI 岗位风向标
点击下方卡片,关注“新机器视觉”公众号
视觉/图像重磅干货,第一时间送达
原创 | 晏茜资料来源 | 单博01
AI 算法岗能力需求
1.1 人工智能现在在哪里?
人工智能无处不在,它早已融入我们日常生活的方方面面,人工智能的出现,彻底改变人们的工作和生活方式。有没有发现每天的抖音给你推荐的视频,你是不是越看越爱看?每次上淘宝,你是不是总能看到自己喜欢的东西?网易云音乐中是不是依靠推荐歌单,你已经收藏了很多歌曲?你的手机是不是能够自动识别你的脸部?你的 Office PPT 或者 WPS 是不是能自动排版了?坐高铁或者飞机的时候,是不是基本上都自动身份检测了?这些在生活中司空见惯的场景,无一不是人工智能技术的具体体现。人工智能产业的迅速发展,需要依靠大量的人工智能领域的科技人才来实现,为了顺应时代,对于人工智能人才的培养势在必行。
1.2 为什么要从事 AI 行业?
① 政策频出——人工智能产业迎来飞速发展政策红利
2017 年 7 月,国务院发布《新一代人工智能产业战略规划》的通知,标志着人工智能上升到国家战略层面。现阶段及未来几年,人工智能产业仍将处于其政策红利和技术红利期。
② 人才短缺——人工智能人才整体缺口达 500 万
人工智能人才缺口巨大。据统计,在2017 年全球人工智能人才储备中,中国仅占 5 % 左右,而未来人才缺口将超过 500 万人,人工智能产业的基础层、技术层、应用层人才均处于紧缺状态。
③ 高薪职业——多部委发布新职业,AI 领域普遍高薪
人工智能行业从业者的平均薪资普遍高于其他行业的相关从业人员。不到 1 年经验的 AI 工程师年薪已经可以达到 30 万 + 的水平了,算法工程师年薪更可达 40 万 +;AI 应届生的薪水较之往年,上涨了 10 % ~ 20 % 或者更多;博士生的薪水则从 2017 年的 50 万元直接猛涨到 80 万元。
21届互联网大厂校招薪资大比拼
上图展示了 21 届毕业生在各大互联网公司校招时期所获得的薪资的情况。白菜 Offer 指普通档薪资,SP(Special Offer)、SSP(Super Special Offer)是指高于一般水平的薪资。据统计,互联网大厂提供给算法岗同学的普通档薪资在 30 万左右,给到 SP 等级同学的薪资在 40 万左右,而给到 SSP 等级同学的薪资水平更是达到了 40 万 + 的水平。不难看出,算法岗的薪资水平的确是相当可观的。
1.3 人工智能就业与行业发展
目前,市面上最具前景的五大算法岗位是 ML 工程师,CV 工程师,BI 工程师,数据科学家,和算法工程师。ML 是 Machine Learning 的缩写,ML 工程师是机器学习工程师;CV 是 Computer Vision 的缩写,CV 工程师是计算机视觉工程师;BI 是 Business Intelligence,也就是商业智能的缩写,推荐系统,数据挖掘和高级商业分析也都被称为 BI;还有从事数据挖掘的科学家,也就是数据科学家;另外还包括算法工程师,这五种职业都对应着高薪的算法工程师的岗位。
在人工智能的影响下,各大互联网公司纷纷投入到人工智能产业中去,不断革新其相关技术,力求顺应科技发展的新潮流。下图展示了 2020 年度人工智能商业模式落地成熟的前 60 强企业,不难发现,各大互联网企业及不同行业的独角兽公司均在其列,其中包括阿里、云从科技、商汤、大疆、美团等等。由此可见,发展人工智能并培养人工智能领域的科技人才是现阶段许多互联网公司的选择。
2020中国人工智能商业落地成熟企业60强
1.4 成为算法工程师的基本能力要求(以计算机视觉算法工程师为例)
上述内容已经为大家简单介绍了人工智能的行业发展现状,那么这一部分会以计算机视觉算法工程师为例, 通过分析市面上热度较高的互联网大厂的招聘需求,来探讨一下成为计算机视觉算法工程师应该具备的基本能力。大家可以通过对比分析,查看自己与该职业的匹配度,如果有成为算法工程师的规划,可以及时发现哪一部分有所欠缺,及时查缺补漏。
以下图片展示了互联网公司对于 CV 算法工程师的招聘需求。不难发现,成为 CV 算法工程师其实是有许多共通的能力的,包括人脸检测,GAN 生成式对抗网络,人脸关键点检测,3D 人脸重建,传感器配准,人体姿态估计,手势识别等等,这些都是计算机视觉某一方向的内容。从对技术的需求来看,是能够使用 C++ 或者 Python 的编程语言。C++ 或是 Python 是成为算法工程师最常用的两种编程语言。对于一个初级或中级的算法工程师而言,熟练使用 Python 已经足够了,如果想追求更长远的职业发展,了解 C++ 是更有帮助的。对深度学习框架的需求是熟悉使用目前市面上主流的框架,包括 Pytorch 和 TensorFlow,你需要熟悉其中的一种框架即可。
成为算法工程师大致可以分为三个方向,包括计算机视觉,自然语言处理,推荐系统或称为数据挖掘、商业分析、推荐系统等等。而根据知识技能的深度和广度,又可将能力水平分为三个等级,分别为基础,进阶,和高级能力。
人工智能核心能力
如图所示,CV,NLP 和 BI 所需要的基础能力是一致的。所以,如果你还不能明确未来的职业方向,不妨从 AI 基础开始了解,充分夯实你的 AI 基础后,再选择任一方向的核心能力进行提升。在掌握了某一方向的核心能力后,你其实已经可以胜某一方向的初级或中级的算法工程师的工作了。有了核心能力,再加上项目实战的经验,就可以胜任一些高级的算法工程师的工作了。笔者了解到,一般学生在学校里能够接触到的实际的项目落地机会是很少的,这里还是建议大家积极地寻找项目实践的机会,提高自己的项目实战能力。
既然人工智能的三个方向,CV,NLP 和 BI 的基础能力是共通的,那么基础能力又包含哪些内容呢?
人工智能的基础能力包括机器学习和深度学习两个部分。其中,机器学习分为监督学习,无监督学习,强化学习三个部分,他们分别解决不同的问题。监督学习主要解决分类、回归这类的数学问题,无监督学习主要解决聚类、无标签的问题,强化学习主要解决行为决策的问题。因为深度学习的出现,我们一般将机器学习称为传统的机器学习,它主要指逻辑回归,支持向量机方法,K 近邻方法,浅层的人工神经网络方法,AdaBoost 等等这些算法。深度学习,主要指的是 CNN 和 RNN,也就是卷积神经网络和循环神经网络。
人工智能基础
上图所示的技能树展示了人工智能基础的发展路径和其知识结构。我们按照不同的流派,将人工智能基础划分为符号主义,连接主义,统计主义,行为主义四个派别的的算法。可以看出,深度学习和强化学习位于这棵技能树较末端的分支上。人工智能经历了长时间的发展和更迭,以现在相对完善的形式呈现在我们的面前,了解人工智能,并将其发展成为未来的职业,不能只局限于了解当下热门的强化学习和深度学习算法,我们要充分了解它的发展历史,才能对其有更深刻的认知和理解。
那么成为 CV 算法工程师具体有哪些能力需求呢?以下内容将以人脸识别和自动驾驶为例,带大家了解成为 CV 算法工程师所需要的基本技能。
知识基础
① 计算机视觉与图像处理
想要做 CV 算法工程师需要掌握图像处理的知识基础。很多同学会陷入这样的思维误区,认为做 CV 只需用 YOLO 做目标检测就好了,没有必要学习图像处理。这种想法显然是错误的,学好基础是未来进行更深层次学习的关键。同样地,图像处理也是未来学习 CV 的一个非常重要的知识基础,它能够帮助你更好地建立起计算机视觉的知识体系。
② 目标检测的基本流程
这里说到的基本流程是一个传统的基于机器学习目标检测的基本流程。实现目标检测分为三步,第一步是滑窗,或者说是用 SS 等算法去做区域推荐;第二步是提特征,包括哈尔特、LBP 等基本特征;第三步是用 SVM、决策树、AdaBoost 等等来做分类,最终实现人脸检测。
③ 越来越深的卷积神经网络结构
卷积神经网络的网络结构是必须要了解的,原因是无论是做目标检测还是图像分类都会涉及到网络结构。从最早的 LeNet,到 2012 年在 ImageNet 挑战赛上直接导致深度学习大火的 AlexNet,后来又相继出现了 ZFNet,VGG 和 GoogLeNet,再到2015年,由何恺明提出的在图像分类视觉挑战赛中战胜了人类的算法 ResNet,都是作为 CV 算法工程师需要掌握的。
④ 目标检测两阶段(two-stage)方法
目标检测的算法是学习的重点,因为对于 CV 算法工程师,无论是做识别、分割、跟踪等等,检测都是你应当掌握的基础内容。目标检测分为两类,基于深度学习的目标检测,有两阶段的方法。代表的算法就是 R-CNN 系列,作者调侃第一代为“slow” R-CNN,后又衍生出 Fast R-CNN 和 Faster R-CNN 这些算法。当你去面试 CV 算法工程师时,大概率会被问到目标检测的相关内容,如果之前没有系统地了解过,你很可能会被面试官质疑你的能力。
⑤ 目标检测一阶段(one-stage)方法
SSD: Single Shot MultiBox Detector
除了 R-CNN 系列算法外,另外一个更可能会被面试官问到的算法是 YOLO 系列算法。它是目标检测一阶段的算法,也叫做端到端。自 2013 至 2014 年间,YOLO v1 算法的出现,经过不断地发展更迭,现在已经出现了 YOLO v5 这样的第五个版本的 YOLO 系列算法了。
人脸识别
刚才我们已经提到了,学习了 YOLO,R-CNN 等算法就可以进行目标检测了。但是在实际的工作场景中,会有诸多的不确定因素,挑战着我们的检测效果。在公共场景中,比如商场、车站、马路等等,光照、人流量等因素都会对检测效果产生影响,所以在这些复杂的场景下要做检测,就没有在实验室的环境里那么单纯了。除此之外,某些遮挡物同样也会影响着检测效果,比如疫情期间需要佩戴的口罩,还有一些特定的民族文化中,需要佩戴的帽子或是遮挡脸部的布等等。在这些复杂的场景下,怎么来做人脸的检测和识别,也是 CV 算法工程师需要掌握的实战技能之一。
自动驾驶
除了人脸识别项目外,另一个与检测识别高度相关的项目就是自动驾驶了。车辆行人的检测,车道线的检测和分割,车道线的跟踪,还有红绿灯的识别,交通标识的识别等项目,都属于自动驾驶的范畴之内,需要 CV 算法工程师去掌握。
02
学习 AI 的六大误区
2.1 基础不牢,开篇学习 CNN、RNN
以深度学习、 CNN、RNN 开篇,会造成神经网络学习入门门槛过高,增加对本就抽象的神经网络的理解难度。人工智能循序渐进,从一个神经元讲起,由单入、单出、单层的一元线性回归到深度循环神经网络,条分缕析其演变过程,避免“一步到位”带来的不知所措。
2.2 缺乏案例,难以接触广泛的数据集
一些同学对于许多有名的数据集,比如自动驾驶里面非常有名的数据集 KITTI,自然语言处理里面中文的数据集 CLUE,仅有很少的了解,甚至从未听说过,所以会导致出现缺乏案例,难以接触到一些更好的数据集的问题。
2.3 跳过原理,直接调用深度学习框架
直接使用已有深度学习框架,会使神经网络学习的过程变成无源之水,无本之木。学习深度学习需要“庖丁解牛”,通过基础类函数的演进,搭建 Mini 深度学习框架,加深读者对原理的理解。这里建议大家一定要夯实理论基础,不要只做“调包侠”。
2.4 公式堆砌,没有原理讲解过程
生硬简短的公式堆砌往往让人望而却步,没有推导过程则会使人“知其然,而不知其所以然”。AI学习需要以实例化、图形化、层次化的方式对 DNN、CNN、RNN 等公式进行解释分解,形象地还原推导过程。
2.5 资源紧缺,要求必须要有 GPU
基目前深度学习领域要求的计算能力和数据量都很大,要求必须有 GPU 才能实现,但对于初学者和上机实验而言略显困难。
2.6 没有代码,无法理解工作过程
面对复杂的神经网络,抽象的工作过程让人摸不着头脑,AI 学习应该更细致化的推演、几何代数的多方面解释、步骤化的空间变换,抽丝剥茧,让难以描绘的神经网络不再是人工智能学习领域的“黑匣子”。
另外,很多同学会陷入这样的误区,认为只掌握书本上的内容就足够了,于是一味地潜心于书本上知识的研究,而忽略了实践。其实,在未来的无论是实习还是真正的投入到工作中的时候,都需要进行代码的推演。有些同学未来的职业规划可能是成为 AI 产品经理或是 AI 相关的管理工作,虽然这些岗位很少会涉及到敲代码的工作,但是也需要你对代码有一定的了解,这样才能更好和我们的算法工程师进行沟通,从而推进你的业务落地。
03
总结
人工智能现在已经成为企业发展的必然方向。马云曾在 2018 年世界人工智能大会上谈论到,在未来的 30 年,人工智能技术将渗透到社会生活的方方面面,彻底重塑传统制造业,企业如果不能从规模化、标准化向个性化、智能化转变,将难以为继。人工智能仍处于快速发展阶段,而人工智能人才的缺口,为我们未来的职业发展提供了更多的可能性。
本文仅做学术分享,如有侵权,请联系删文。—THE END—