机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。其专门研究计算机是怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构,使之不断改善自身的性能。此外,数据挖掘和机器学习有很大的交集。本文将从架构和应用角度去解读这两个领域。
数据挖掘是从海量数据中获取有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程。数据挖掘中用到了大量的机器学习界提供的数据分析技术和数据库界提供的数据管理技术。从数据分析的角度来看,数据挖掘与机器学习有很多相似之处,但不同之处也十分明显,例如,数据挖掘并没有机器学习探索人的学习机制这一科学发现任务,数据挖掘中的数据分析是针对海量数据进行的,等等。从某种意义上说,机器学习的科学成分更重一些,而数据挖掘的技术成分更重一些。
学习能力是智能行为的一个非常重要的特征,不具有学习能力的系统很难称之为一个真正的智能系统,而机器学习则希望(计算机)系统能够利用经验来改善自身的性能,因此该领域一直是人工智能的核心研究领域之一。在计算机系统中,“经验”通常是以数据的形式存在的,因此,机器学习不仅涉及对人的认知学习过程的探索,还涉及对数据的分析处理。实际上,机器学习已经成为计算机数据分析技术的创新源头之一。由于几乎所有的学科都要面对数据分析任务,因此机器学习已经开始影响到计算机科学的众多领域,甚至影响到计算机科学之外的很多学科。机器学习是数据挖掘中的一种重要工具。然而数据挖掘不仅仅要研究、拓展、应用一些机器学习方法,还要通过许多非机器学习技术解决数据仓储、大规模数据、数据噪声等实践问题。机器学习的涉及面也很宽,常用在数据挖掘上的方法通常只是“从数据学习”。然而机器学习不仅仅可以用在数据挖掘上,一些机器学习的子领域甚至与数据挖掘关系不大,如增强学习与自动控制等。所以笔者认为,数据挖掘是从目的而言的,机器学习是从方法而言的,两个领域有相当大的交集,但不能等同。
图1是一个典型的推荐类应用,需要找到“符合条件的”潜在人员。要从用户数据中得出这张列表,首先需要挖掘出客户特征,然后选择一个合适的模型来进行预测,最后从用户数据中得出结果。
把上述例子中的用户列表获取过程进行细分,有如下几个部分(见图2)。
业务理解:理解业务本身,其本质是什么?是分类问题还是回归问题?数据怎么获取?应用哪些模型才能解决?
数据理解:获取数据之后,分析数据里面有什么内容、数据是否准确,为下一步的预处理做准备。
数据预处理:原始数据会有噪声,格式化也不好,所以为了保证预测的准确性,需要进行数据的预处理。
特征提取:特征提取是机器学习最重要、最耗时的一个阶段。
模型构建:使用适当的算法,获取预期准确的值。
模型评估:根据测试集来评估模型的准确度。
模型应用:将模型部署、应用到实际生产环境中。
应用效果评估:根据最终的业务,评估最终的应用效果。
整个过程会不断反复,模型也会不断调整,直至达到理想效果。
机器学习的算法有很多,这里从两个方面进行介绍:一个是学习方式,另一个是算法类似性。
学习方式
根据数据类型的不同,对一个问题的建模可以有不同的方式。在机器学习或人工智能领域,人们首先会考虑算法的学习方式。在机器学习领域有如下几种主要的学习方式。
在企业数据应用的场景下,人们最常用的可能就是监督式学习和非监督式学习。在图像识别等领域,由于存在大量的非标识数据和少量的可标识数据,目前半监督式学习是一个很热门的话题。而强化学习更多地应用在机器人控制及其他需要进行系统控制的领域。
算法类似性
根据算法的功能和形式的类似性,可以对算法进行分类,如基于树的算法、基于神经网络的算法等。当然,机器学习的范围非常庞大,有些算法很难明确归到某一类。而对于有些分类来说,同一分类的算法可以针对不同类型的问题。这里,我们尽量把常用的算法按照最容易理解的方式进行分类。
前面了解了机器学习和数据挖掘的基本概念,下面来看一下业界成熟的案例,对机器学习和数据挖掘有一个直观的理解。
尿布和啤酒的故事
先来看一则有关数据挖掘的故事——“尿布与啤酒”。
总部位于美国阿肯色州的世界著名商业零售连锁企业沃尔玛拥有世界上最大的数据仓库系统。为了能够准确了解顾客在其门店的购买习惯,沃尔玛对其顾客的购物行为进行购物篮分析,想知道顾客经常一起购买的商品有哪些。沃尔玛数据仓库里集中了其各门店的详细原始交易数据,在这些原始交易数据的基础上,沃尔玛利用NCR数据挖掘工具对这些数据进行分析和挖掘。一个意外的发现是:跟尿布一起购买最多的商品竟然是啤酒!这是数据挖掘技术对历史数据进行分析的结果,反映了数据的内在规律。那么,这个结果符合现实情况吗?是否有利用价值?
于是,沃尔玛派出市场调查人员和分析师对这一数据挖掘结果进行调查分析,从而揭示出隐藏在“尿布与啤酒”背后的美国人的一种行为模式:在美国,一些年轻的父亲下班后经常要到超市去买婴儿尿布,而他们中有30%~40%的人同时也为自己买一些啤酒。产生这一现象的原因是:美国的太太们常叮嘱她们的丈夫下班后为小孩买尿布,而丈夫们在买完尿布后又随手带回了他们喜欢的啤酒。
既然尿布与啤酒一起被购买的机会很多,于是沃尔玛就在其各家门店将尿布与啤酒摆放在一起,结果是尿布与啤酒的销售量双双增长。
决策树用于电信领域故障快速定位
电信领域比较常见的应用场景是决策树,利用决策树来进行故障定位。比如,用户投诉上网慢,其中就有很多种原因,有可能是网络的问题,也有可能是用户手机的问题,还有可能是用户自身感受的问题。怎样快速分析和定位出问题,给用户一个满意的答复?这就需要用到决策树。
图3就是一个典型的用户投诉上网慢的决策树的样例。
图像识别领域
这项功能的名字叫“面孔相册”,可以利用图像分析技术,自动地对云相册照片内容按照面孔进行分类整理。开启“面孔相册”功能后,可以自动识别、整理和分类云相册中的不同面孔。
“面孔相册”还支持手动调整分组、移出错误面孔、通过系统推荐确认面孔等功能,从而弥补机器识别的不足。
这项功能的背后其实使用的是深度学习技术,自动识别图片中的人脸,然后进行自动识别和分类。
马云在2015 CeBIT展会开幕式上首次展示了蚂蚁金服的最新支付技术“Smile to Pay”(扫脸支付),惊艳全场。支付宝宣称,Face++ Financial人脸识别技术在LFW国际公开测试集中达到99.5%的准确率,同时还能运用“交互式指令+连续性判定+3D判定”技术。人脸识别技术基于神经网络,让计算机学习人的大脑,并通过“深度学习算法”大量训练,让它变得极为“聪明”,能够“认人”。实现人脸识别不需要用户自行提交照片,有资质的机构在需要进行人脸识别时,可以向全国公民身份证号码查询服务中心提出申请,将采集到的照片与该部门的权威照片库进行比对。
也就是说,用户在进行人脸识别时,只需打开手机或电脑的摄像头,对着自己的正脸进行拍摄即可。在智能手机全面普及的今天,这个参与门槛低到可以忽略不计。
用户容易担心的隐私问题在人脸识别领域也能有效避免,因为照片来源权威,同时,一种特有的“脱敏”技术可以将照片模糊处理成肉眼无法识别而只有计算机才能识别的图像。
前面两个案例介绍的都是图片识别,比图片识别更难的是图片语义的理解和提取,百度和Google都在进行这方面的研究。
百度的百度识图能够有效地处理特定物体的检测识别(如人脸、文字或商品)、通用图像的分类标注,如图4所示。
来自Google研究院的科学家发表了一篇博文,展示了Google在图形识别领域的最新研究进展。或许未来Google的图形识别引擎不仅能够识别出图片中的对象,还能够对整个场景进行简短而准确的描述,如图5所示。这种突破性的概念来自机器语言翻译方面的研究成果:通过一种递归神经网络(RNN)将一种语言的语句转换成向量表达,并采用第二种RNN将向量表达转换成目标语言的语句。
而Google将以上过程中的第一种RNN用深度卷积神经网络CNN替代,这种网络可以用来识别图像中的物体。通过这种方法可以实现将图像中的对象转换成语句,对图像场景进行描述。概念虽然简单,但实现起来十分复杂,科学家表示目前实验产生的语句合理性不错,但距离完美仍有差距,这项研究目前仅处于早期阶段。图6展示了通过此方法识别图像对象并产生描述的过程。
自然语言识别
自然语言识别一直是一个非常热门的领域,最有名的是苹果的Siri,支持资源输入,调用手机自带的天气预报、日常安排、搜索资料等应用,还能够不断学习新的声音和语调,提供对话式的应答。微软的Skype Translator可以实现中英文之间的实时语音翻译功能,将使得英文和中文普通话之间的实时语音对话成为现实。
Skype Translator的运作机制如图7所示。
在准备好的数据被录入机器学习系统后,机器学习软件会在这些对话和环境涉及的单词中搭建一个统计模型。当用户说话时,软件会在该统计模型中寻找相似的内容,然后应用到预先“学到”的转换程序中,将音频转换为文本,再将文本转换成另一种语言。
虽然语音识别一直是近几十年来的重要研究课题,但是该技术的发展普遍受到错误率高、麦克风敏感度差异、噪声环境等因素的阻碍。将深层神经网络(DNNs)技术引入语音识别,极大地降低了错误率、提高了可靠性,最终使这项语音翻译技术得以广泛应用。
Artificial Intelligence(人工智能)是人类美好的愿望之一。虽然计算机技术已经取得了长足的进步,但截至目前,还没有一台计算机能够产生“自我”的意识。的确,在人类和大量现有数据的帮助下,计算机可以表现得十分强大,但是离开了这两者,它甚至都不能分辨两只小动物。
深度学习算法自动提取分类所需的低层次或者高层次特征。高层次特征是指该特征可以分级(层次)地依赖其他特征。例如,对于机器视觉,深度学习算法从原始图像去学习得到它的一个低层次表达,如边缘检测器、小波滤波器等,然后在这些低层次表达的基础上再建立表达,如这些低层次表达的线性或者非线性组合,然后重复这个过程,最后得到一个高层次的表达。
深度学习能够得到更好地表示数据的特征,同时由于模型的层次、参数很多,容量足够,因此,模型有能力表示大规模数据。所以对于图像、语音这种特征不明显(需要手工设计且很多没有直观的物理含义)的问题,能够在大规模训练数据上取得更好的效果。此外,从模式识别特征和分类器的角度来看,深度学习框架将特征和分类器结合到一个框架中,用数据去学习特征,在使用中减少了手工设计特征的巨大工作量,因此,不仅效果更好,而且使用起来也有很多方便之处。
当然,深度学习本身并不是完美的,也不是解决任何机器学习问题的利器,不应该被放大到一个无所不能的程度。
本文主要介绍了机器学习、数据挖掘以及当前最热门的深度学习。深度学习可以说掀起了人工智能的又一次热潮,但是大家要清楚地认识到,这离真正的AI(人工智能)还差得很远。但总的来说,我们离电影中描述的未来世界更近了一步,不是吗?
CIO之家 www.ciozj.com 公众号:imciow