人工智能时代前沿技术社区

首页 > 人工智能 > 热点

一篇文章,带你了解 “机器学习工程师” 必备技能图谱

5月8日,谷歌召开一年一度的Google I O大会。在现场演示的演示中,Google Assistant表现得自然流畅,电话那头的理发店员工丝毫没有察觉到

作者: | 2018-05-15 10:51:16 | 来源:程序视界

34_副本.jpg

5月8日,谷歌召开一年一度的Google I/O大会。在现场演示的演示中,Google Assistant表现得自然流畅,电话那头的理发店员工丝毫没有察觉到自己竟然是在和AI对话!

阿里的王坚博士曾在一次主题演讲里谈到:「不要担心 AI 毁灭人类,要相信人们能够设计出一个好的架构让 AI 好好为人类工作」

要让AI好好为人类工作,离不开AI 工程师和科学家。腾讯近期发布的报告显示,目前人工智能领域合格的研究人员数量仅为30万,其中包括相关研究领域的学生。然而,全国范围内,人工智能的人才缺口却为一百万甚至更多。因此,2018年及未来的几年内,“抢得到人才”绝对是人工智能企业发展的前提及关键。


与之前的云计算、移动互联网相比,成为 AI 工程师,门槛相对较高,而且需要在现有技能树的基础上再有较长时间的积累才行。要成为一名合格的人工智能工程师,在掌握开发工程师的通用技能以外,还需要掌握一张不算小的知识网络。

如果以机器学习算法工程师的技能图谱为例,大概就是这样子的 ↓

对于机器学习工程师来说,想要入门,先得解决以下三个基础知识拦路虎。

基础一:数学基础

  • 线性代数和微积分基础

  • 统计学相关基础

  • 相关线性分析

基础二:编程基础

  • 掌握相关的编程语言,比如 C++ / Python / Go / Java 等,目前 Python 是机器学习深度学习领域最主流的编程语言,热的发烫。

基础三:机器学习的基础

  • 对基础概念的理解,比如拟合、关联规则(Apriori、FP-Growth)、回归(Linear Regression、Logistics Regression)、决策树(ID3、C4.5、CART、GBDT、RandomForest)、降维……等等。

在互联网领域从事机器学习的人,有下列两类背景的人比较多:

1.程序员出身,这类同学工程经验相对会多一些

2.学数学统计领域出身,这部分同学理论基础相对扎实一些。

因此对比上图,2类同学入门机器学习,所欠缺和需要加强的部分是不一样的。下面就上述图中的部分,展开来分别扯几句:

数学基础

机器学习相对于其他开发工作更有门槛的根本原因就是数学。基本所有常见机器学习算法需要的数学基础,都集中在微积分、线性代数和概率与统计当中。

典型算法

绝大多数问题用典型机器学习的算法都能解决,粗略地列举一下这些方法如下:

机器学习里所说的“算法”与程序员所说的“数据结构与算法分析”里的“算法”略有区别。前者更关注结果数据的召回率、精确度、准确性等方面,后者更关注执行过程的时间复杂度、空间复杂度等方面。 当然,实际机器学习问题中,对效率和资源占用的考量是不可或缺的。

编程语言、工具和环境

看了无数的理论与知识,总归要落到实际动手实现和解决问题上。对初学者而言,Python和R语言是很好的入门语言,很容易上手,同时有活跃的社区支持,丰富的工具包帮助我们完成想法。

基本工作流程

以上我们基本具备了机器学习的必要条件,剩下的就是怎么运用它们去做一个完整的机器学习项目。工作流程如下: 抽象成数学问题—— 获取数据——特征预处理与特征选择——训练模型与调优——模型诊断——模型融合——上线运行。

这些工作流程主要是工程实践上总结出的一些经验,并不是每个项目都包含完整的一个流程。只有大家自己多实践,多积累项目经验,才会有自己更深刻的认识。