近十年来,“数据科学”和“数据科学家”备受争论。对于哪些人可以被称为是“数据科学家”,争论不休,我们最后达成一致:只要取得数据科学相关学位、认证的研究数据的,不论是在大学还是从在线课程,我们都称之为数据科学家。统计数据是枯燥单一的,是非自然的,只有各种各样的数据才使得世界丰富多彩。那么,如何去分析多样的数据呢?数据科学家便应需求而生。
数据科学领域飞速发展,一大波数据专家正在袭来。在企业中,他们被称为“数据科学家”或“数据科学团队”,包括:
- 普通员工:执行临时的分析或报告任务(包括商业智能和商业分析)
- 数据分析者:负责统计分析,建模,包括实验和测试
- 机器学习建模者:构建模型原型
那么问题来了。创造出“数据科学家”此概念并且从数据中挖掘出产品的DJ Patil 和Jeff Hammerbacher属于哪一类呢?他们看似并不属于以上任何一种。若非要归类,他们大概更倾向于被看做是机器学习的建模者。他们是研究者,并没有通过数据进行产出。那么,究竟如何定义数据科学家呢?我们认为,数据科学家不仅仅是统计学家,他们一般拥有计算机科学领域的博士学位,有着大量的数据实践经验,有着很强的编码能力,精通数据提取、清洗、建模、将原型变成产品、产品设计以及数据基础建设,等等。实际上,数据科学家更应该被称作为硅谷的“独角兽”,稀有且昂贵。
“数据科学”不分领域不分专业,它不只是精算统计、商务智能、数据仓库等,它打破了已有行业的壁垒,比如软件、市场、管理、人力等。数据科学的灵魂所在是它涵盖了数据的方方面面,各个领域。而数据科学家的任务便是收集、使用所有数据,而不是某一领域的数据。
然而,找到这些稀有的“独角兽”是极其困难的。因此,我们把其职能根据专业性进行划分,数据工程师便诞生了。数据工程师精通数学和统计学,但他们不只是数学家或统计学家,他们精通软件开发和编程,但又不只是程序员。数据工程师负责数据栈操作和维护,Hadoop或Spark的构建和维护,以及众多数据库(比如HBase和Cassandra)和平台(比如Kafka,Spark Streaming和Apache Flink)等等。他们要知道如何操作云端,如何使用Amazon Web Services,Microsoft Azure 和Google Compute Engine。
2015年有一篇被广泛引用的文献突出强调,真实世界的机器学习系统不只是分析模型。各个公司开始着眼于研发基于数据的产品,并把相关技术投入生产中去。在这众多项目中,严格属于“机器学习”的部分并不是很多。然后,我们发现越来越多的公司组成了机器学习工程师团队。这并不难想象,当今机器学习盛行,数据工程师肯定会顺应潮流寻求突破。那么,机器学习工程师与数据工程师有什么区别呢?
一般来讲,机器学习工程师的职责涵盖软件工程师(和一些好的数据工程师)的职责。图中所示是机器学习工程师的重要特征:
- 他们拥有比普通数据科学家更强的软件编码能力。
- 由于他们的工作重心是产出数据产品,他们需要通观全局。
- 他们监管数据型产品的生产,并了解产品可能会出现的问题。
- 深度学习的盛行引领一个相关的更专业的职位出现:深度学习工程师。
机器学习工程师不仅仅要了解,更要参与到软件架构和设计中去。比如,他们了解A/B测试,同时也要知道如何A/B测试。他们了解日志或安全性问题,同时也要知道如何让数据工程师能够有效使用日志数据。对于机器学习工程师这个头衔来说,并无新鲜和特殊之处,更多的是深挖而不是改变。
机器学习与数据科学有什么区别呢?数据科学涵盖面更广。最大的区别是深度学习的运作方式。容易想象的是数据科学家如何挖掘数据,比如Tukey的Exploratory Data Analysis中介绍了挖掘并分析大量数据去发现其价值所在。
但是深度学习改变了数据挖掘方式。我们不直接接触数据,我们只是知道结果,让程序自己去建模并发现数据的价值。比如,如何构建一个能够打败围棋冠军的智能机器人,如何准确地标记图片,如何精准地翻译。这些问题,需要大量的数据和维度,人力难以实现,而机器学习便是构造一个模型,让这个模型自主发掘数据。那么,数据科学家的工作便不再是自己从数据中发掘价值,而是构建一个能够分析数据并产生结果的机器。实现“平民化”是机器学习领域的梦想,其含义便是任意领域的专家都能构建一个机器学习系统,而非AI博士。比如,我们希望一个围棋选手便能够构建下一代AlphaGo,一个西班牙语者便能够构建一个西班牙语翻译引擎,而非机器学习专家。
这种转变影响着机器学习工程师。机器学习模型不是静态的,会随着需求变化而成长。应该有专人去监管机器学习系统并在必要时进行重新训练。
所有从事软件或IT行业的人都知道安全问题很重要。如今,机器学习系统的安全性上还未出现问题,但依然要防范于未然。那么,如今的机器学习系统在哪方面容易被攻击?系统中的数据是否会被感染?是否能够强迫系统进行非必要的重训练?由于该系统的自主训练模式,我们需要重新认知其在安全性上的易攻击点。
随着系统日益完善,我们发现更多的数据科学家使之转变为生产系统。比如,云端和SaaS使数据科学家得以充分利用数据模型并运用到生产中,一些开源项目像是Clipper和Ground(加州大学伯克利分校的RISELab的新项目)也逐渐开始进行。但是我们依旧需要数据工程师和机器学习工程师:精通数据科学和机器学习,深入理解数据如何进行产出,敢于挑战创造基于机器学习的产品。他们是“humans in the loop”的终点。
|