如何成为一名卓越的数据科学家 ——桃树七剑之三:算法调优

算法,是数据科学全部环节中最为神秘的部分。

关于作者:

杨滔,桃树科技(TaoData)创始人,专注于下一代人工智能产品的研发、应用与商业化。拥有超过十年机器学习研究与应用经验。奥克兰大学机器学习博士,悉尼科技大学博士后。创立桃数科技前,任职阿里巴巴集团数据科学家,建立淘宝网数据科学团队,首创聚划算爆款模型。

来源:微信公众号【桃树科技】(ID:TaoDataRobot)

如何成为一名卓越的数据科学家 ——桃树七剑之三:算法调优

算法,是数据科学全部环节中最为神秘的部分。

正是因为人们对于算法过高的敬畏之心,才使得算法的应用仅仅局限于少数数据科学家的手中,许多非常有杀伤力的算法并没有在实际问题中产生应有的价值。

其实,机器学习算法的本质是一种工具,是一种让数据创造价值的工具。

很多工程师脑中有一个巨大的误会,以为成为数据科学家要从修炼一堆复杂的理论开始。——那些开出一堆书单的人,只能为出版商代言。

数据科学的技能,与人类许多其他的技能一样,其实是从使用工具开始的。因此,面对开源工具严重缺乏的现实情况,桃树一直坚持自主开发数据科学工具,让工程师立刻拥有数据科学的技能,我们相信这个工具将会改变世界。

你可以想象一下工具的力量有多大:当别人隐归多年苦苦练就降龙十八掌,而你只需要掏出一把左轮手枪。

数据科学家的使命并不是发明算法,而是用一系列算法工具来解决实际问题,让算法帮助数据创造价值。

每天都有不同的算法在学术期刊中被发明,但只有少数算法可以在实际问题上真正派上用场。

为何算法在理想的赛道上狂奔,数据却在现实的角落里浪费?

正是因为许多数据科学家并没有意识到,算法只不过是工具。许多数据科学家为了算法而发明算法,为了炫技而忽略了解决问题最简单的路径。

机器学习算法是什么?

算法是一种语言,一种可以让机器执行人思想的语言。机器学习算法,是让机器可以持续从人所设定的目标中去从数据中学习和执行的语言。

普通意义上的算法,是人为机器设定的一系列“死命令”,这些命令告诉机器该如何执行人预设的命令。在这种情况下,机器并没有自主学习的能力,人需要一直为机器“出主意”。

与普通算法不同,机器学习算法让数据与算法结合起来,告诉机器在不同的情况(数据)下执行不同的命令,并让机器在经验中不断自我学习和优化。

能从不同环境(数据)中学习的机器是具备思维能力的机器。让机器可以从数据中学习的算法,究其本质是在模拟人的思维。

算法是在数据科学家思维的框架下,自动化从数据材料中学习,从而可以灵活解决不同问题的技术。

如何成为一名卓越的数据科学家 ——桃树七剑之三:算法调优

机器学习算法的类别

正如人有许多不同的思维模式,机器学习算法也有许多不同的种类。在我看来,每一种机器学习算法都可对应一种人类思维模式:

理性主义信徒:它们假设需要学习的数据服从某类理想的统计分布,并利用数学技术从理想数据中推断规律。

经验主义信徒:它们不从数据中做任何推理,而是找到不同案例之间的关联关系。

规则派:它们不对数据做出任何假设,而是直接从现实数据中提炼一系列决策规则,并假设这些决策规则适用于一切新数据。

模拟人脑的神经网络派:通过层层神经元模拟人脑的决策方式。目前最火热的深度学习算法便属于这个类别。

机器学习算法还有许多其他不同的派别,但无论哪个学派,机器学习技术本质上都是人思维的产物。卓越的数据科学家不拘泥于算法的派别,而是汲取融合不同派别算法的优势,最大程度发挥数据的价值。

以桃树最新研发的数据科学引擎DataBrain为例,其架构并不是单一的某一种算法或者算法的组合,而是和人脑一样的左右脑结构。

桃树DataBrain的左脑负责逻辑思维,基于机器学习框架从数据中学习规律;DataBrain的右脑,负责发散思维,将一系列原始数据源整合、清洗为一张宽表,并从中发现人原本发现不了的新特征。我们最近正闭关将DataBrain打造成细分领域最前沿的数据科学产品。

关于DataBrain的构架,与卓越数据科学家系列的主题有点远,也许以后兴之所至,会单独开文再写一篇。

如何成为一名卓越的数据科学家 ——桃树七剑之三:算法调优

机器学习算法工具箱

数据科学家不是数学家,并不需要深入理解每个复杂算法的数学原理。实际上,理解发动机的原理并不能帮你拥有更高超的开车技能。

学者喜爱发明算法,数据科学家擅长利用算法解决实际问题。在真实的数据科学项目中,没有最好的算法,只有最适合的算法。在不同的问题和数据中,数据科学家需要使用不同的算法。每个算法都有自己适合应用的数据范围,而每个数据都有最适合的算法。

因此,卓越的数据科学家需要有一个机器学习算法工具箱

拥有了这个武器,数据科学家可以针对不同的数据快速尝试多种算法,并基于实际结果挑选算法。同时,数据科学家还可以根据实验效果设定自动挑选算法和自动调参的算法,让机器自动选择当前数据最适合的算法和工具。

完成单项任务的效率,是衡量数据科学家能力最重要的指标之一。许多数据科学家在遇到实际问题的时候,还要花费大量精力去重新造轮子(重新实现一遍成熟算法)。因此在更关键的步骤,如对问题和数据本身的理解上反而没有花费足够的精力。

卓越的数据科学家一定是开源软件的发烧友。他们喜欢动手实践,忍不住的要把最好用的开源软件拿来玩一玩,看看是否能提高自己数据的准确率,是否速度够快。

而研究型的数据科学家呢?他们总喜欢自己造轮子,幻想自己从无到有造出一个新平台。殊不知,造一个平台容易,而持续的维护一个平台则需要一个团队甚至多个团队的协同。

因此,开源软件才是最简单的集成团队智慧的方式。

那么,一个让数据科学家变得卓越的算法工具箱到底是怎么样的呢?我认为其必须具备以下两个重要功能。

可视化

如果说机器学习算法是强大的发动机,那么这个算法发动机需要一个简单易用的“方向盘”,可视化便是机器学习技术的方向盘。

当机器学习过程被充分分解和展现,数据科学家便可以更好地把控算法优化的方向,包括如何选择算法,如何选取参数,如何在不同打分下评估模型的效果。

在许多问题中,数据科学家需要让算法具可解释性,而让算法可解释的重要手段之一就是可视化。许多机器学习算法让数据升维,将数据投射到一个复杂的数学空间中并找到规律。而可视化技术可将模型中的数据结果降维: 将复杂结果简化为与决策最相关的决策信息。

这个从升维到降维的过程,正是让机器说人话的过程。

可视化也是机器吸纳人经验的一个过程。只有当人充分理解算法的输出,人的输入才能更好地被算法应用。可视化是人机协作的前提,而人机协作是处理复杂问题的最有效方式。

分布式计算

所谓分布式计算,是把一台计算机的压力分解到多台机器中去完成。传统机器学习算法都是在单个机器中完成,而分布式机器学习算法是让多台机器完成机器学习算法。如此,机器学习算法可以处理的数据量和计算效率得到质的提升。

机器学习技术最新的进展离不开分布式计算技术,因为分布式机器学习技术让算法可以从更多数据中建模学习。在大数据时代,数据科学家需要将单机版算法改造为分布式版本,让大数据成为提升机器学习效果的核心武器。人工智能技术质的提升,离不开大数据。

具备可视化和分布式计算功能的机器学习算法工具箱,是数据科学家最厉害的武器。只要驾驭好这些武器,数据科学家便可以高效的充分关注问题本身,实现数据价值最大化。

推荐阅读:

1、如何成为一名卓越的数据科学家——开篇七剑

2、如何成为一名卓越的数据科学家 ——七剑之一:问题定义

3、如何成为一名卓越的数据科学家——第一剑之再谈问题定义

4、如何成为一名卓越的数据科学家 ——桃树七剑之二:数据准备

5、如何成为一名卓越的数据科学家 ——桃树七剑之二:数据准备中那些不为人知的数据源

本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。

(0)
张乐的头像张乐编辑
上一篇 2017-07-21 21:22
下一篇 2017-07-24 19:18

相关文章

  • 深度学习名词表:57个专业术语加相关资料解析(附论文)

    本文整理了一些深度学习领域的专业名词及其简单释义,同时还附加了一些相关的论文或文章链接。本文编译自 wildml,作者仍在继续更新该表,编译如有错漏之处请指正。

    2016-09-29
    0
  • 大数据到底怎么影响我们的生活

    信息大爆炸的今天,不讨论大数据这个话题似乎就是跟不上时代。从医药到教育,再到其他各个领域,大数据充斥着现代社会的每个角落。而我们最关心的还是大数据最终将以什么样的形式,怎么样影响甚至改变我们的生活。来听听四位专家告诉你大数据到底有多少可能。

    2016-07-19
    0
  • 看上去很美, 谈谈阿里云的大数据平台「数加」

    首先来看看阿里是如何宣传其数加平台的,爆点还是蛮多的,以下引自网上新闻: 2016年1月阿里云全球首发了可以提供一站式大数据处理能力的平台——“数加”,并全新亮相了20款新产品,覆盖数据采集、计算引擎、数据加工、数据分析、机器学习、数据应用等数据生产全链条,据说“这些技术至少领先业界三年”。 大数据计算服务(MaxCompute)、分析型数据库(Analyt…

    2016-04-25
    0
  • 数据会说谎?从大选预测说开去

    纽约时报对美国大选结果的可视化分析:大数据时代的第一次美国大选,地理学和可视化像透镜一样,可以让我们更加清楚地认识数据。

    2016-11-10
    0
  • 一文带你为机器学习打下坚实的Python基础

    首先,什么是 Python?根据 Python 创建者 Guido van Rossum 所言,Python 是一个:高级编程语言,其设计的核心理念是代码的易读性,以及允许编程者通过若干行代码轻松表达想法创意。实际上,我选择学习 Python 的首要原因是其编程的优美性,用它编码和表达想法非常自然。 Python 是一个高层次的结合了解释性、编译性、互动性和…

    2018-07-23
    1
关注我们
关注我们
分享本页
返回顶部