数据智能系列文章之二:机器学习的核心要素

 

本文介绍数据智能及机器学习方法的核心要素。从上面的定义可以看出,机器学习有三个核心要素:数据,用现在流行的提法,也可以叫大数据;算法:主要指数据处理与机器学习算法,主体关注机器学习算法;算力,即计算能力,由于进入现代,在大数据基础上进行智能计算,算力已经越来越成为一个不可忽略的要素了。

1. 资料:大数据再析

数据,显然是数据智能最本质的核心要素,是生产资料,是产生智能的母体。也就是说,人们所寻找的智能,蕴藏在数据之中,所有的其它要素,都只是协助从中将其发掘出来的手段而已。

在BI作为数据工程主体的时代,也有采用学习算法处理数据的情况,但那时主要针对的是数据库表格类型数据(俗称结构化数据)。随着互联网应用的兴起,日志类型的半结构化数据的处理对业务应用越来越重要,也越来越得到重视,而日志类的半结构化数据的数据量则比经典关系数据库数据要大上一个数量级,百GB级别数据处理从过去的少量大型单位才会有,变成几乎所有企业都需要有能力处理。由于传统经典数据库手段无法有效处理上百GB级别的半结构化数据(这是从成本、性能综合来讲的),因此,以Hadoop/Spark为代表的大数据技术手段兴起,也包括阿里巴巴的ODPS,华为的GaussDB等产品,都是解决百GB以上级别结构化/半结构化数据的处理需求而产生与推广起来的。人们流行将其称为大数据,其绝大多数情况的意思是指类Hadoop的工具处理海量的结构化/半结构化数据,这时“大数据”概念包含两部分内容:Hadoop类计算工具+结构化/半结构化数据。这其实正是人工智能概念大火之前,信息科技领域最热门的话题:“大数据”的真正涵义。

如果把“数据”上升到“大数据”来作为“数据智能”的核心要素时,“大数据”的传统涵义需要发生变化,计算工具与方法不能再做为“大数据”概念的组成部分,它应该只跟数据本身有关。但这时,大数据需要包括人类可以数字化的所有类型的所有数据,即除了结构化/半结构化数据以外,还应该包括文本、图像、音频、视频、流媒体等等所谓非结构化数据,即文、音、视、图。很明显这些非结构化数据的数据量又比“大数据时代”的主体“半结构化”数据又大了好几个数量级。如下图1所示:

 

 

                                                                                  图1 大数据发展历程

 

        另外,从数据计算的目的来讲,数据智能时代与之前也有所不同。可以说,以分布式计算为主要特征的大数据时代,以及以关系模型计算为主要特征的BI时代,虽然处理的数据量不同,但其计算目标基本一致:输出已有数据中明确包含的各种信息,也就是说,并不创造真正的新信息;而数据智能则不同,它永远都是在创造新信息,它所输出的信息并不会明确包含在已有信息中。

        从另一个角度来讲,数据智能之前的数据工程所生产,要么没有产生信息,要么就产生100%准确的信息;而数据智能所生产的信息,还必须附加一个可能性(Possibility),基本不会达到100%准确。

        综上,如果在数据智能时代,我们还依然采用“大数据”来描述数据资源时,它将只与全结构海量的数据有关;如果我们认为“大数据时代”的概念也囊括了“数据智能”时代,那么,机器学习将成为这个新的大数据时代数据计算的主体方法。

2. 工具:特征工程与机器学习

本小节介绍数据智能的计算方法,一般包括两类:特征工程与机器学习。特征工程指进行机器学习之前的数据计算活动,其核心目的是将样本数据处理成为能够参与机器学习的格式,其中包括清洗、补全、去重这些传统数据处理,也包括将图像、语音、文字等转变成可以被学习算法处理的矩阵的方法。从本质上讲特征工程与传统数据工程中的数据预处理没有区别,不过,由于面向机器学习数据预处理的核心目标几乎都是为了得到合格的样本属性,即特征,因此,通常都将数据智能领域的数据预处理称为特征工程。

当数据(预)处理完成后,使开始数据智能的核心计算:机器学习。如前文所述,机器学习类算法是一种特殊的软件程序,它不同于一般的计算机算法那閪直接面向解决问题而编制程序逻辑,而是通过对已知“数据”样本的学习,而使计算机程序产生一种“模型”,通过对这种“模型”输入未知数据,可以得到判断、预测等类似人类智能的能力。

因此,机器学习算法在相当程度上是不可解释的,即即使它很好的解决了问题,但很可能无法非常精准明确地阐明原因,特别是目前最为流行的深度学习类算法,更是如此。研究者们也在努力采用各种方法找到机器学习算法的解释,例如通过对深度学习过程每一步的输出进行可视化从而发现一些显式的规律,但还停留在“大概理解”的印象阶段,而不是精准无误的解释。

特征工程与机器学习的方法与算法都很多。例如特征工程除了全面包括传统数据预处理方法之外,还包括统计学方法,以及机器学习算法本身(就是说在正式的机器学习算法运行之前,采用机器学习方法进行特征处理);而机器学习算法则包括大量的经典机器学习与深度学习算法,也可以按照自然语言处理NLP、图像处理、语音处理、表格数据处理等应用领域分类,还可以大致分为监督学习与无监督学习两类。充分深入的学习为些算法的原理,而不是只会使用,对我们正确理解数据智能、规划数据智能定位与发展策略有着至关重要的意义,因此,对这算法原理进行本质性的介绍与分析,也是本书的重要内容之一。

一般情况下,人们会认为机器学习算法更加重要,但其实在实践中,很多情况下,特征工程却更加重要些。也就是说,在现阶段各种算法的使用趋于丰富成熟方便的前提下,如何得到合格的特征样本反倒成了更加需要技术与经验的任务,它往往成了决定机器学习算法效果好坏的关键。关于这一点,本书在后文还会详细阐述与论述。

除了特征工程与机器学习以外,数据智能领域还有一项非常重要的工作:模型评估,即如何评价算法输出模型的好坏,这其中包括精确率、准确率、召回率等概念,也包括混淆矩阵、ROC曲线、AUC值、KS曲线等方法,以及大量的统计学知识与方法,在数据智能技术体系中都占有非常重要的地位,无论是想很好的实施数据智能,还是想探究数据智能的内在本质,都需要对这些知识与技能进行掌握,因此也属于本书的重要内容。

3. 能力:算力

本小节简要介绍数据智能的第三个关键要素:算力,顾名思义,即是计算的能力。有了算法与数据,从理论上,似乎是够了,但实际上,由于机器学习算法一般涉及到大量的数据,同时需要大量的迭代类计算,因此,计算能力更成为数据智能发展与普及的另一个瓶颈。

对算力的要求,在经典机器学习算法时代并不十分突出,虽然这些算法比一般的BI计算需要占用更多的计算资源,但同样的算力水平仍然可以应付日常的需求。然而,到了深度神经网络学习时代,情况则大不相同。

深度神经网络学习的大多数模型计算,需要占用巨大的计算资源,以至于一般的计算机通常无法满足这种需求;同时其计算方式也有自己的特点,主要是矩阵运算与迭代运算。因此,深度学习通常都需要采用专用的硬件来实现,例如GPU计算机、FPGA计算机、人工智能芯片等。

因此,在我们列举数据智能的关键要素时,就必须将“算力”加进来,其核心意图是:需要把数据智能的发展与普及与“算力”发展与普及紧密关联,这种相关性与如BI等数据工程所需要的算力相关性有着质的区别:在传统数据工程时代,算力虽然也能影响计算完成的时间窗口,对一些时间关键任务的执行也会起到关键的作用,但绝大多数情况下,对计算模型的设计并不需要与算力强相关;而在数据智能时代,绝大多数情况下,与算力模型同时设计是机器学习算法模型设计的必选项。

数据智能时代的算力模型至少包括以下两个层面的内容,一是计算设施物理类型,如GPU还是CPU;二是计算设施的软架构设计,如是单机还是分布式计算模型,如MapReduce,MPI,专门面向大规模迭代与海量参数更新的参数服务器等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值