简说机器学习(大数据)
人工智能在最近的IT领域可以说是被炒得火热,从AlphaGo打败李世石后,在全世界掀起了一股浪潮。我们在生活中的各个角落,都能感受到一个崭新的奇点时代即将来临。人工智能是一门基于计算机科学、生物学、心理学、神经科学、数学和哲学等综合学科的科学和技术。主要推动力是开发与人类智能相关的计算机功能,例如推理、学习和解决问题的能力。

可能有人会问,现在甚嚣尘上的人工智能、机器学习、深度学习,它们之间是完全等价的关系吗?其实并不是,严格说起来,它们是一个越来越小的关系,如下图所示。

简说机器学习(大数据)
如果把人工智能比喻成孩子大脑,那么机器学习是让孩子去掌握认知能力的过程,而深度学习是这种过程中很有效率的一种教学体系。

  • 人工智能:先进的智能软件和硬件结合的结果,一台人工智能机器或设备就可以模仿人类的行为或像人一样执行任务。

  • 机器学习:实现人工智能的一种途径,旨在通过分析挖掘大量历史数据找到不同数据项之间的映射函数,并利用该函数进行结果预测。

  • 深度学习:一种实现机器学习的技术,它适合处理大数据。深度学习使得机器学习能够实现众多应用,并拓展了人工智能的领域范畴。

引用周志华《机器学习》一书中的一段描述给大家打个比方:“我们根据色泽青绿、根蒂卷缩、敲声浊响就能判断出是正熟的好瓜,因为我们吃过、看过很多西瓜,所以基于色泽、根蒂、敲声这几个特征我们就可以做出相当好的判断。类似的,我们从以往学习经验知道,下足了功夫、弄清了概念、做好了作业,自然会取得好成绩。可以看出,我们能做出有效的预判,是因为我们已经积累了许多经验,而通过对经验的利用,就能对新情况做出有效的决策。”

有人把机器学习比作艺术,认为每一个模型都有它自己独特的样子和训练技巧,正如每一个瓷器都有自己独一无二的美。在你没有把眼睛点上的时候,你永远也不知道自己的龙画的如何。正如每一次重新调整模型参数时,你也不会知道训练的结果将会怎样、是好是坏。

简说机器学习(大数据)
只待你用GPU轻轻地“烘烤”,去探寻那未知的可能。

说到这里我想大家应该已经对机器学习有了一个大体的认知,下面为大家逐一介绍机器学习项目处理流程中的关键步骤。

机器学习项目处理流程

1.关注蓝图

如同常规项目一样,在需求沟通阶段我们需要明确业务目标,选取并构建合理的架构。

在这个阶段需要判断所需解决问题的类别(回归/分类/聚类,有监督/无监督/半监督,在线/离线),模型训练完后又该如何评估模型性能,每个业务目标需要的最低性能是什么等,即对整个项目需要有一个大体的认知。

举个例子,人买瓜从而获得挑瓜经验的这一过程就属于分类、有监督、在线学习。

分类:判断西瓜是好还是坏。

有监督:我们以往买瓜,回家吃了以后就知道它是好瓜还是坏瓜,所以我们要判断的特征(标签)在我们的历史数据中是存在的,是有监督问题。

在线学习:俗话说,吃一堑长一智。人脑能够实时处理数据并不断丰富我们的经验,循序渐进地给系统提供训练数据,逐步积累学习成果。

2.获取数据

该阶段包括数据的授权、访问、格式转换、存储与采样。

其中,采样指的是从数据中抽取出一部分数据用于模型训练(称为训练集),而剩余部分用于模型评估(称为测试集),采样的过程中应尽可能保证训练集和测试集服从同一分布。

这里举一个不服从同一分布的例子:比如在设立训练集和测试集时,将美国和印度的数据归于训练集,而中国和其它国家的数据归于测试集。也就是说我们可以随机地将其中两个区域的数据分配给训练集,另外两个区域的数据分配给测试集。那么模型学习的是美国和印度数据中的“知识”,而将这些知识应用到中国和其它地区的数据上这肯定是行不通的,知行不合一。

3.数据分析与处理

算法对于数据要求是较为苛刻的,有时为了提升算法的准确性须对数据进行处理。比如数据过滤、字段合并、表关联,缺失值、噪声值处理,特征工程的标准化、归一化、正则化等。

数据处理过程也是需要一套指导思想的。指导思想指我们可以把所有的数据处理手段看作为一个工具箱,工具箱中包含三大类别的工具(数据可视化分析、数据清洗、特征工程),我们需要根据数据质量与业务目标选择合适的数据处理手段。这里可类比为软件研发流程中的各个步骤(需求分析、概要设计、详细设计、单元测试、集成测试、配置项测试、研制总结),而在项目执行过程中我们需要根据具体情况对标的物及其章节内容进行裁剪。

这里为了方便大家理解,说明一下归一化的使用场景,比如我们通过身高和体重这两个特征来衡量两个人的差别,两个人体重差10KG,身高差0.02M,由于特征量纲不同,这时体重的差距会把身高的差距完全掩盖。而归一化可以消除量纲对最终结果的影响,使不同变量具有可比性。但并不是说任何情况我们都要使用归一化来处理数据。

目前数据处理更多是依靠数据挖掘人员的经验并结合相关视图组件对数据进行可视化探索分析,通过相关指标统计来引导处理方向。尽管有些组织尽力地去尝试并发布了相关AutoML的工具包,但效果差强人意。

4.模型训练与损失函数

模型训练过程是计算机将数据抽象成x和y,根据大量的历史数据通过迭代计算损失函数(loss)最优值从而求得函数y= f(x)的过程,这里将模型表述为f(x)抽象函数的特殊意义在于模型对于用户来说是一个黑盒,无需知道内部的实现逻辑,但是你给它x,它能返回y的值。

模型训练在业内被称为“炼丹”,我们在炼丹炉(算法)里放入(传参)相关原料(历史数据)。经过GPU的烘烤(损失函数loss的迭代计算),最终出炉(损失函数取得最优值即模型训练成功)。
训练过程中模型的表现(损失函数loss的大小)随训练时间变化的图像如下左图所示:
简说机器学习(大数据)
高低起伏、杂乱无章,这是因为在局限的时间段之内模型所遇到的数据代表性还不够全面。这就像人去处理未经历过的事情总会有些毛手毛脚。

但我们退后一步来看,将时间轴拉长,随着模型学习的数据越来越多,见多识广后,loss图像如上右图所示。

另外,机器学习模型有别于我们传统的业务模型,在机器学习领域没有任何一个模型是可以通用的。比如我们用买西瓜的经验(模型)去挑选(模型预测)哈密瓜,这肯定是行不通的,我们必须根据买哈密瓜的经验(根据新的业务数据训练新的模型)去挑选哈密瓜。这就叫“炼丹有法,丹无定法”。

5.模型评估

丹炼好了(模型训练完毕),我们肯定要鉴定其质量的,要不对用户也不负责啊。鉴定的方式根据丹药(模型)的类别也有区分。例如分类模型有F1、混淆矩阵、ROC、AUC等评估指标;回归模型有平均绝对误差、均方误差、决定系数、校正决定系数等。

还记得在数据获取阶段,提到的测试集么?最初我们通过采样将数据集划分为两部分,一部分用于模型训练称作训练集,另一部分用于模型泛化能力评估称作测试集(一直未使用),我们在模型训练阶段会通过交叉验证、留出法等手段将训练集再次划分为两部分,一部分依旧叫训练集,用于模型的训练,而另外一部分称作验证集。如下图所示:
简说机器学习(大数据)
模型的评估分为两部分,一部分是使用验证集去评估模型性能,另一部分是使用测试集去评估模型的泛化能力,当然评估指标是一致的。

这里可能有些混乱,打个比方:

学生课本中的例题即训练集;老师布置的作业、月考等都算作是验证集;高考即测试集。

学生上课过程中所学习到的知识以及课上做的练习题就是模型训练的过程。
简说机器学习(大数据)
而月考是老师用来检测学生对所学知识掌握程度的。

简说机器学习(大数据)
高考中的题目学生之前都没有见过,只能根据所学的知识以及解题经验,去面对处理这些问题,考察学生举一反三能力,即模型的泛化能力。

简说机器学习(大数据)

在评估过程中我们能够发现模型存在过拟合或欠拟合的问题,那么什么叫过拟合与欠拟合?
简说机器学习(大数据)

Underfitting-厌学、Overfitting-死板。英语是体育老师教的还请大家多多谅解。

所谓过拟合就是模型在训练数据集上表现过于优越,导致在验证数据集以及测试数据集中表现不佳。我们还是举个例子,某学生数学科目基础扎实,平时测试成绩优秀,但大考总是失利,这是为什么?在于该学生学习过于死板,很多知识生搬硬套。而大考虽然考察同样的知识点,但出题模式、解题思路会有变动,注重学生举一反三能力,告诉我们要学会变通。

所谓欠拟合就是该学生平时学习就不够努力,数学公式不背,基础概念不能理解,所以平时作业都不会。对应到模型来说就是在训练集上表现都很糟糕。

造成过拟合的原因有很多,比如参数过多,那么我们可以通过正则化的手段为模型增加惩罚项,这里就不一一例举了。

造成欠拟合的原因一般在模型训练初期。如果不断训练后依旧存在,则可以通过增加模型复杂度或增加特征点来解决。

6.模型部署上线

根据不同业务需求选择合理的模型导出格式,也可以将模型导出成PMML(预测模型标记语言)进行部署,并为其他业务系统提供API接口与使用说明。但由于模型试图预测的目标变量的统计特性随着时间以不可预见的方式发生变化,所以简单来说我们所要预测的结果会受到一些隐性特征的影响,而这个隐性特征会随着时间而变动,并且我们在建立模型阶段并未发现这个特征或是无法收集到相关数据。如,季节虽然没有在温度数据中被明确说明,但是可能会影响温度的数据。类似情况,随着时间的推移,预测的准确性会降低。所以模型上线以后往往需要对模型性能进行实时监控,并定期更换模型,即合理的模型监控要与周密的模型检查、计划相结合,即“吾日三省吾身”,这对于保持模型的准确性是至关重要的。

人工智能技术扩充了人类的学习能力,它允许我们在计算机上来寻找解决问题的方法,帮助我们认识世界,改造世界。

对于机器学习的介绍就到这里了,与一个你喜欢的人谈话总是要留点余地,留点没说完的话,下次再讨论。

简说机器学习(大数据)

坚如大树缘根深,固若磐石入地沉,做产品我们是认真的!

相关文章:

  • 2021-12-05
  • 2021-11-29
  • 2021-11-25
  • 2021-06-29
  • 2021-11-22
  • 2021-08-19
  • 2022-01-18
  • 2021-10-15
猜你喜欢
  • 2021-12-26
  • 2021-09-01
  • 2022-02-18
  • 2021-06-06
  • 2021-10-13
  • 2021-05-26
相关资源
相似解决方案