AI 崛起,科学家的天下,程序员的谢幕

一边,在移动互联网时代掉队的微软迅速组织起来了一个万人的 AI 团队。

另一边,FacebookGoogle 在对各个技术公司进行买买买,为了在 AI 时代的探索中铺好路。

多年前「深蓝」下国际象棋时,所有人都觉得人工智能还是遥不可及的学问。

直到 AlphaGo 的出现,才警醒了世人,刺激了市场。

AI 终究是个要以学术为根本的学科,AI 时代下程序员的下一步该如何走?

回顾一下移动互联网所带来的机遇,不难想象掌握人工智能、深度学习等学科技能,将为一线工作带来怎样的优势。

可是, AI 人才的培养要求严苛的数学门槛、成本高昂的实战训练,让很多一线的程序员望而生畏:

  • 一线互联网公司对 AI 工程师的要求是什么样的?

  • 我应当掌握哪些 AI 技能树?

  • 从事 AI 工作一定要有硕士、博士的知识储备吗?

  • 从零学习人工智能真的需要5年以上时间吗?

  • 系统化学习和实战中总结哪个更高效?

于是,我们请来了一些大厂的 AI 技术专家来给那些迷失在「AI 道路门口」的程序员们,讲讲 AI 工程师细分职业的区别,趋势等等等

如何成为一名数据科学家?

在回答这个问题之前,希望你先想想另外一个问题:为什么要成为数据科学家?

当然,如果你是为了10万美元的年薪也无可厚非,但是我衷心希望你能将这个职业和自己的价值感挂钩。

因为成为数据科学家的路途会很辛苦,但如果你将其看成是实现个人价值的一种方式,那么追寻目标才能带来长久的成就感,在这个过程中会感到快乐并且动力十足。 

一、数据科学家应掌握的技能包

要回答“如何成为……”这样的问题,首先当然需要知道想要成为的对象是个什么样子。图1 是一个数据科学家的技能表。 

image.png

首先编程能力是数据科学家需要的基本技能。数据读取、整合、建模分析和可视化的整个环节都需要用到这些工具。

在业界环境中,整个数据链大概分为5块: 

1. 云端数据存储系统。比如亚马逊的云服务 AWS,大数据可以用分布式存储在 S3中。

AWS 更像是一个生态系统,里面有数据库,也可以在上面运行一些代码,比如实时从社交网站上爬取数据储存在云端数据库中。 

2. 安全门。读写数据都需要经过这道安全门,这个部分主要是由公司的 IT 部门建立。

安全门有3种限制访问权限的方式: IP 地址:只接受从特定 IP 地址的访问;职能:比如只有头衔是数据科学家和数据工程师的人有权限;用户名密码。

公司常常会同时使用上面3种方法,也就是有特定职能,从特定 IP 地址,通过用户名和密码访问。

数据工程师会训练数据科学家穿越这重重安全门。这里对数据科学家的计算机要求并不高,只需要知道一些基本的 Linux 就可以,苦活累活都让工程师们包揽了。

3. SQL 客户端。数据科学家需要通过 SQL 从数据库中读取相应数据。

根据数据库的不同,使用 SQL 的类型和语法也略有不同,但大体上非常相似。掌握基本的数据库读取操作是非常必要的。

4. 数据分析。现在使用最广的数据分析语言是 R Python,熟练使用至少其中一门语言几乎成为数据科学家的标配。

只会 SAS 行不?不行。当然,这些都只是工具,工具是解决问题的手段,而非目的。

你必须要有一个能用来进行数据分析的工具,偏好因人而异,但选择工具的时候最好考虑工具的灵活和可扩展性。

5. 结果报告。这里会用到基于 D3.js 的交互可视化,Rmarkdown 自动化报告以及 Shiny 应用。

image.png

数据科学家需要另外掌握的一个重要的技能是分析建模。图2 是数据流程构架图,这个模块可以进一步细分成下面几个: 

数据科学家应该具备基本的概率统计知识,能够熟练进行 t 检验,开方检验,拟合优度检验,方差分析。

能够清楚地解释 Spearman 秩相关和 Pearson 相关之间的区别。熟悉抽样、概率分布、实验设计相关概念。

了解贝叶斯统计(很快就能在白板上写下贝叶斯定理)。

不是所有的应用数据科学领域都需要用到贝叶斯,即使你所处的行业用得很少,了解贝叶斯的基本概念也是很有必要的。

使用“贝叶斯”这个词的方式有很多。但其主要代表了一种解释概率的特别方式。

用流行的术语表达,贝叶斯推断不外乎计算在某假设下事情可能发生的方式的数目。事情发生方式多的假设成立的可能性更高。

一旦我们定义了假设,贝叶斯推断强制施行一种通过已经观测到的信息进行纯逻辑的推理过程。

所以,在很多应用场景中,贝叶斯也更加合适。 

机器学习相关技能。知道什么是有监督学习,什么是无监督学习。知道重要的聚类、判别和回归方法。

知道基于罚函数的模型,关联法则分析。常用的黑箱模型:随机森林、自适性助推、神经网络模型。

如果从事心理相关的应用的话(如消费者认知调查),还需要知道基本的潜变量模型,如探索性因子分析、验证性因子分析、结构方程模型。

在应用过程中还需要加强对模型中误差的来源分类的理解,知道相应误差的应对方法。

当前存在的机器模型太多,理解模型误差可以帮助你有效地通过尝试少量模型找到足够好的那个。 

除了技术能力以外,还需要其他一些非技术的能力。这些包括将实际问题转化成数据问题的能力,这一过程需要交流,也就要求良好的交流沟通能力。

关注细节,分析是一个需要细心和耐心的职业。还有就是展示结果的能力,如何让没有分析背景的客户理解模型的结果,并且最终在实践中应用模型的结论。

这个单子还可以一直列下去。看起来是不是不只一点吓人?

其实这个技能单是动态的,你一开始不必具有上面列出的所有技能,但在工作过程中,需要不断的学习成长。

一个优秀的数据科学家不是通过数据找到标准答案的人,而是那个接受和适应这个充满不确定性的世界,给出有用方案的人。

一个成熟的数据科学家面对分析项目时会看到多种可能性和多种分析方法,给出结果后依旧时刻关注这个结果,不停地保持小幅度频繁更新。

再次强调自学能力和成为一个终生学习者是优秀的数据科学家的必要条件。

二、如何获取上述技能?

现在你对数据科学家需要具备的技能应该有个大致的概念了。接下来的问题是如何获取这些技能。这个问题的答案部分取决于你的专业背景。

当前数据科学家的背景其实很杂,这里主要着眼于数学、统计、计算机或其它定量分析学科(电子工程、运筹学等)本科以上学历的情况。

数学统计背景的学生,需要加强计算机方面能力的培养。而计算机背景的学生需要更多地了解统计理论。

如果是其他定量分析学科,可能需要同时加强这两者。其他专业的学生成为数据科学家有两种情况:

从事和自己专业相关行业公司的数据分析。比如在一些精准农业应用的公司,会常常看到数据科学家是生态学博士,或者土壤学博士。

其实这些人不能算是广义上的数据科学家。

因为他们处理的问题局限于非常特定的领域,对生态和土壤的了解的要求高于对数据分析的要求。

虽然是其他专业,但是本身有着很强的计算机技能,比如物理学专业的学生会成为数据科学家或者量化交易员,这因为他们通常具有很好的编程能力。

关于数据科学家的学位背景,根据2017年的统计数据,美国的数据科学家41%有博士学位,49%有硕士学位,只有10%是本科。

研究生博士期间的课题最好偏向机器学习、数据挖掘或预测模型。其次需要的是数据库操作技能。

在工作中通常需要用 SQL 从数据库读取数据。对于统计或者数学专业的学生,在校期间可能不需要使用 SQL,因此不太熟悉。

这没有关系,我也是工作以后才开始使用 SQL 的。但你要确保自己至少精通一种程序语言,之后遇到需要用到的新语言可以迅速学习。

现在有大量的 MOOC 课程,以及一些在线的数据科学视频,都是提升自己的很好方法。 

三、在数据科学的应用中有哪些常见误区?

会用函数跑模型就可以了?

会开车的只是司机,要当汽车工程师,仅靠会开车是不行的。这点放在数据科学领域也是一样。

不需要你背下模型背后的所有数学公式,但是至少需要学过一遍,让你可以翻着书解释模型机理。

模型精确度越高越好?

在实际应用中需要同时考虑收益和成本。如果模型精确度是90%,但是提高到95%需要复杂得多的模型。

因此需要大量的计算设备投入,同时带来的边际收益很小的话,满足于精确度小的模型就好了。模型选择和评估可能是数据分析流程中最难的环节。

技术过硬就是尚方宝剑?

人常常是不理性的,我们的行为和对周遭的态度受感情的影响。我们总是会对所有的事情加上自己的主观判断。

当然,你公司的同事,领导看待你的方式也受到主观的影响。很遗憾,这个主观的感受通常更多的来自于你作为人的部分,而不是机器的部分。

你觉得自己技术好是一件事情,领导觉得你技术好是另一件事情,领导觉得你的技术是有用的那又是新的一件事情了。

所以“做技术”不等于“情商低点没关系”。

技术不断更新,被泡沫裹挟着失去方向?

不断升级将会是一种常态,这不仅仅是数据科学,你必须这么做,因为所有的东西都在升级,就像军备竞赛一样,升级已经成为事物本身的存在方式。

面对不懂的技术,要么就说不懂,要么就去学。其实你真正鼓起勇气,开始认真去学习这门技术的时候,会发现其实没有那么神秘。

当然,马上又会有新的神秘的东西出现,这个过程又会重复。但你就是在这样循环反复中成长的,产品是这样,人也是这样。

四、数据科学领域现状

我们从数据上看看数据科学的现状吧。从最大的职业社交网站领英( LinkedIn )的数据看来,数据科学家职位的年薪在7.5~17万美元之间,中位数是11.3万美元。

其中雇佣数据科学家的公司主要集中在微软、IBMFackbook、亚马逊、Google这些计算机互联网公司,图3 为前10名雇佣数据科学家最多的公司。

image.png

数据科学家所处的行业也集中在科技或者研究性组织,图4是排名前10的行业。

image.png

不同公司的数据科学团队架构不一样。主要有如下2种:

1. 独立式。独立的数据科学部门,会有一个数据科学总监这样的领导角色领导。这通常在研究所或者公司科研型的部门。

对于数据科学家而言,在这样部门的优点是能够和很多其他数据科学家有技术上的交流,也有明确的职业轨道。

缺点是,很难脱颖而出,需要和很多其他科学家竞争一些资源(比如培训会议的机会)

2. 嵌入式。数据科学家各自嵌入到不同的职能部门中。常见的是市场部的数据科学家。

领导者就是传统的市场总监。在这样的团队优势在于直接和公司高层接触,影响商业决策。

因为独特很容易脱颖而出获取很多行业内培训和会议的机会,而且市场部是核心部门,如果你想在这个公司发展,这是很好的地方。

缺点就是,无法和其他数据科学家交流,很多东西需要自己决策,周围人只能选择相信或者不相信你,但不能给出特别的帮助。

久了会有在专业上落后的危险,所以需要充分利用在市场部的培训会议资源,积极参与数据科学家社区。

最大的缺点是没有清晰的职业轨迹,因为在市场内部的分析团队不会太大。

如果你的职业目标是最后管理一个大团队或者职能的话,这可能不能满足你的目标。但其职位本身从初级到高级的跨度可以很大。

数据科学家这个职位还比较新,所以从团队建设和职业轨迹上都还在发展,具有很好的前景。

希望你能成为一个不断思考,终生学习的数据科学家!

 

作者:林荟

美国杜邦公司商业数据科学家,美国爱荷华州立大学博士。《套路!机器学习:北美数据科学家的私房课》作者。2017年1月至今主持美国统计协会市场营销在线数据科学讲座。