机器学习与大数据技术(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-14 09:14:38

点击下载

作者:牟少敏

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

机器学习与大数据技术

机器学习与大数据技术试读:

前言

FOREWORD

机器学习是近 20 多年来兴起的涉及计算机科学与技术、概率论与数理统计和认知科学等多领域交叉的学科,主要研究机器模仿人类的学习过程,以进行知识和技能的获取。作为人工智能领域中一个重要的组成部分,机器学习广泛运用于数据挖掘、计算机视觉、自然语言处理,以及机器人研发等领域。

本书是作者在多年讲授“机器学习”和“大数据技术”课程,以及长期从事机器学习和农业大数据研究工作的基础上编写的。全书共分9章,第1章简要介绍机器学习、大数据、人工智能和图像处理技术的基础知识,第2章和第3章主要介绍机器学习和深度学习的理论与方法,第4章和第5章主要介绍大数据和农业智能的相关知识,第6章主要介绍图像处理与分析技术,第7章是作者近年来取得的与机器学习、大数据和图像处理技术相关的部分科研成果,第8章和第9章主要介绍机器学习和大数据的编程基础。

本书的编写得到了王秀美、林中琦、曹旨昊、苏婷婷、孙肖肖、郭嘉和张烁的大力支持和帮助,在此表示感谢。

本书吸收当前微课版教材优点,在书中放置了二维码,读者可以通过扫描二维码获取部分编程源码,以方便使用。

由于作者水平有限,写作时间仓促,书中难免存在错误,敬请读者批评指正。牟少敏2018年3月于山东农业大学第1章绪论

目前,云计算、物联网、大数据、机器学习、人工智能、芯片技术和移动网络等新一代信息技术不断涌现,掀起了新一轮技术革命和产业革命的浪潮,新一代信息技术受到了政府、学术界、媒体和企业的广泛关注,同时也带来了巨大的市场机遇,具有广阔的应用前景。

人工智能不是一个新名词,在 1956 年达特茅斯会议上计算机专家约翰·麦卡锡首先提出了“人工智能”的概念。1980年美国卡耐基·梅隆大学设计并实现了具有知识库和推理功能的专家系统;1997年IBM公司的“深蓝”战胜了国际象棋世界冠军卡斯帕罗夫;2016年谷歌公司的“阿尔法狗”(AlphaGO)战胜了韩国棋手李世石和我国的围棋天才柯洁。这些里程碑式的标志使得人们对人工智能未来的发展充满了渴望和期待。

人工智能至今尚没有一个统一的定义。专家和学者们从不同的角度出发,给出了各自的定义:畅销书《人工智能》的作者伊莱恩·里奇(Elaine Rich)认为人工智能是研究如何利用计算机模拟人脑从事推理、规划、设计和学习等思维活动,协助人类解决复杂的工程问题;麻省理工学院教授温斯顿(Winston)认为人工智能是那些使知觉、推理和行为成为可能的计算的研究;加州大学伯克利分校教授斯图尔特·罗素(Stuart Russell)则把人工智能定义为:像人一样思考的系统,像人一样行动的系统。

机器学习的发展可以追溯到 1950 年,其发展过程大体经历了 3个重要时期,即推理期、知识期和学习期。1970年前称为推理期,主要标志是让机器具有简单的逻辑推理能力;1970年后称为知识期,主要标志是1965年斯坦福大学教授费根鲍姆(E.A.Feigenbaum)等人研制了世界上首个专家系统。20世纪80年代至今称为学习期,主要标志是让机器从样本中学习。1983年,美国加州理工学院霍普菲尔德(J.J.Hopfield)教授提出了著名的Hopfield反馈神经网络;1986年,斯坦福大学教授鲁姆哈特(D.E.Rumelhart)等人提出了 BP 神经网络;1995 年,美国工程院院士瓦普尼克(Vapnik)教授提出了基于统计学习理论的支持向量机,产生了以支持向量机为代表的核机器学习方法,如核聚类和核主分量分析等。深度学习是机器学习和人工智能的一个重要组成部分,来源于人工神经网络研究和发展,最早由加拿大多伦多大学的辛顿(Geoffrey E.Hinton)教授于2006年提出,辛顿通过pre-training较好地解决了多层网络难以训练的问题。深度学习近年来在图像识别和语音识别上取得了突破性的进展,深度学习的成功主要归功于 3 大因素,即大数据、大模型和大算力。深度学习的优越性能将人工智能推向了新的高潮。

目前,大数据背景下机器学习的研究又成为人们研究和关注的热点。传统机器学习的分类算法很难直接应用到大数据环境下,不同的分类算法面临着不同的挑战。大数据环境下的并行分类算法的研究成为一个重要的研究方向。目前,针对并行机器学习的研究方法主要有:基于多核与众核的并行机器学习、基于集群或云的并行机器学习、基于超算的机器学习和基于混合体系结构的并行机器学习。“数据仓库之父”比尔·恩门(Bill Inmon)早在20世纪90年代就经常提起大数据。自2008年9 月国际著名的期刊《自然》(Nature)出版了大数据专刊以来,大数据的处理、分析和利用已经成为各行各业和科研人员关注的焦点。美国把大数据视为“未来的新石油”,我国将大数据上升为国家战略,大数据产业正在逐步地进入成熟期。目前,大数据几乎是家喻户晓,成为当今非常热门的话题。从电视上经常可以看到有关大数据的新闻,比如:中央电视台将大数据分析技术应用于新闻报道中,推出了两会大数据、春运大数据等相关栏目。

当今世界是一个“数据为王”的时代,数据的重要性已经引起各个国家政府、企业和科研人员的高度重视,大数据背后的价值也在发挥着重要的作用。IBM智力竞赛机器人沃森(Watson)收集了2亿页知识文本数据,并采用并行处理集群,利用大数据处理技术进行数据分析,可在1秒内完成对大量非结构化信息的检索。目前,软硬件技术与行业需求正在极大地推动大数据的发展。

大数据首先要有数据,因此大数据的采集技术是非常重要的。物联网技术、电商平台等各种采集技术和方法为大数据的采集提供了有力的支撑。另外,数据采集的完整性、准确性和稳定性,决定了数据采集的质量及数据是否能真实可靠地发挥作用。例如:传统农业田间数据的采集有时必须采用人工手段来进行,由于环境的复杂性等原因,往往存在数据采集不完整和不准确等问题。利用物联网技术进行农业数据的采集具有实时性、多样性和可靠性,又如:农业小气候站采集的气象数据具有实时性、多样性和可靠性的特点,为农业的辅助决策提供较为准确的依据。

研究大数据不仅仅是各种数据的采集和存储,更重要的是如何利用好大数据,通过分析和挖掘海量数据,发现其内在有价值和有规律的知识,并服务于各个领域。大数据的分析挖掘技术又为机器学习的发展和应用提供了广阔的空间。

目前,深度学习成为机器学习热点的同时,又为人工智能的发展提供了巨大的发展空间,例如:利用深度学习感知、识别周围环境,以及各种对车辆有用的信息,使得无人驾驶汽车成为可能;微软和谷歌利用深度置信网络,将语音识别的错误率降低了20%~30%。

深度学习在云计算和大数据背景下取得实质性进展,云计算为深度学习提供了平台。云计算平台服务的优点:搭建快速、操作简捷、智能管理、运行稳定、安全可靠和弹性扩展。国内云计算平台有很多,如著名的阿里巴巴公司和百度公司等。

物联网(Internet of Things)的概念是由麻省理工学院自动识别(MIT Auto-ID)中心阿什顿(Ashton)教授1999年提出的,其原理是利用各种传感设备,如射频识别装置、红外感应器、全球定位系统、激光扫描器等种种装置与互联网结合起来从而形成的一个巨大网络。《传感器通用术语》(GB7665—87)对传感器的定义是:“能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成”。通俗地讲,物联网就是物与物相连的互联网。目前,各种传感器广泛地应用到我们的衣食住行等日常生活中,如湿度传感器、气体烟雾传感器、超声波传感器和空气质量传感器等。传感器正在朝着微型化、智能化、多功能化和无线网络化的方向发展。与发达国家相比,我国自主传感器核心技术仍需不断提高,高端传感器芯片以进口为主,市场竞争较为激烈。

当前,新一代信息技术革命已经成为全球关注的重点。同时,新产品、新应用和新模式不断涌现,改变了传统经济发展方式,极大地推动了新兴产业的发展壮大。这也给研究计算机技术的专业人员和企业带来新的机遇和挑战,这就需要加速学科深度交叉和融合,需要学术界和企业界深度交叉和融合,需要充分利用各行各业大数据,学习和研究人工智能、深度学习和大数据等新技术的基本概念、基本思想、基本理论和技术,掌握常用的相关开发工具,需要挖掘大数据背后的价值,发现规律、预测趋势,并辅助决策。

大数据必须和具体的领域、行业相结合,才能真正地为政府和企业决策提供帮助,才能产生巨大的实用价值和应用前景。本书以农业为应用背景,重点研究机器学习、深度学习、图像处理技术,以及大数据技术在农业领域中的应用。1.1 机器学习1.1.1 概述

机器学习简单地讲就是让机器模拟人类的学习过程,来获取新的知识或技能,并通过自身的学习完成指定的工作或任务,目标是让机器能像人一样具有学习能力。

机器学习的本质是样本空间的搜索和模型的泛化能力。目前,机器学习研究的主要内容有3类,分别是模式识别(Pattern Recognition)、回归分析(Regression Analysis)和概率密度估计(Probability Density Estimation)。模式识别又称为模式分类,是利用计算机对物理对象进行分类的过程,目的是在错误概率最小的情况下,尽可能地使结果与客观物体相一致。显然,模式识别的方法离不开机器学习。回归分析是研究两个或两个以上的变量和自变量之间的相互依赖关系,是数据分析的重要方法之一。概率密度估计是机器学习挖掘数据规律的重要方法。

机器学习与统计学习、数据挖掘、计算机视觉、大数据和人工智能等学科有着密不可分的联系。人工智能的发展离不开机器学习的支撑,机器学习逐渐成为人工智能研究的核心之一。大数据的核心是利用数据的价值,机器学习是利用数据挖掘价值的关键技术,数据量的增加有利于提升机器学习算法的精度,大数据背景下的机器学习算法也迫切需要大数据处理技术。大数据与机器学习两者是互相促进、相互依存的关系。1.1.2 评价准则

评价指标是机器学习非常重要的一个环节。机器学习的任务不同,评价指标可能就不同。同一种机器学习算法针对不同的应用,可以采用不同的评价指标,每个指标的侧重点不一样。下面介绍常用的机器学习评价指标。1.准确率

样本分类时,被正确分类的样本数与样本总数之比称为准确率(Accuracy)。与准确率对应的是错误率,错误率是错分样本数与总样本数之比。

显然,准确率并没有反映出不同类别错分样本的情况。例如:对于一个二类分类问题,准确率并不能反映出第一类和第二类分别对应的错分样本的个数。但是,在实际应用中,因为不同类别下错分样本的代价或成本不同,往往需要知道不同类别错分样本的情况。例如:在医学影像分类过程中,未患有乳腺癌被错分类为患有乳腺癌,与患有乳腺癌被错分类为未患有乳腺癌的重要性显然是不一样的。另外,数据分布不平衡时,样本占大多数的类主导了准确率的计算等情况,这就需要求出不同类别的准确率。2.召回率

召回率(Precision-Recall)指分类正确的正样本个数占所有的正样本个数的比例。它表示的是数据集中的正样本有多少被预测正确。3.ROC曲线

ROC(Receiver Operating Characteristic)曲线是分类器的一种性能指标,可以实现不同分类器性能比较。不同的分类器比较时,画出每个分类器的ROC曲线,将曲线下方面积作为判断模型好坏的指标。ROC曲线的纵轴是“真正例率”(True Positive Rate,TPR),横轴是“假正例率”(False Positive Rate,FPR)。ROC曲线下方面积(The Area Under The ROC Curve,AUC)是指ROC曲线与x轴、点(1,0)和点(1,1)围绕的面积。ROC曲线如图1-1所示。显然,0≤AUC≤1。假设阈值以上是阳性,以下是阴性,若随机抽取一个阳性样本和一个阴性样本,分类器正确判断阳性样本的值高于阴性样本的概率。在图1-1示例中,有3类分类器,AUC值分为0.80、0.78和0.80,AUC值越大的分类器正确率越高。图1-1 ROC曲线4.交叉验证

交叉验证(Cross-Validation)的基本思想是将数据分成训练集和测试集。在训练集上训练模型,然后利用测试集模拟实际的数据,对训练模型进行调整或评价,最后选择在验证数据上表现最好的模型。

交叉验证法的优点是可以在一定程度上减小过拟合,还可以从有限的数据中获取尽可能多的有效信息。常用的交叉验证的方法如下。(1)K折交叉验证

K折交叉验证的基本思想:将数据随机地划分为K等份,将其中的K-1份作为训练集,剩余的1份作为测试集,计算K组测试结果的平均值作为模型精度的估计,并作为当前K折交叉验证下模型的性能指标。

K折交叉验证实现了数据的重复利用。一般情况下,K的取值为 10。针对不同的应用场景,可以根据实际情况确定K值,数据量或样本数较大时,K的取值可以大于10。 数据量或样本数较小时,K的取值可以小于10。(2)留一交叉验证

留一交叉验证(Leave One Out Cross Validation)的基本思想:假设有N个样本,将每一个样本作为测试样本,其他N-1个样本作为训练样本,得到N个分类器和N个测试结果。用这N个结果的平均值来衡量模型的性能。留一交叉验证是K折交叉验证的特例。5.过拟合与欠拟合问题

机器学习过程中,模型对未知数据的预测能力称为泛化能力(Generalization Ability),是评估算法性能的重要评价指标(Evaluation Metrics)。泛化指的是训练模型对未知样本的适应能力。优秀的机器学习模型其泛化能力强。

过拟合(Over-fitting)是由于训练模型中涉及的参数过多,或参加训练的数据量太小等原因,导致了微小的数据扰动都会产生较大的变化或影响,造成了模型对已知数据预测精度很高,而对未知数据预测精度较低的现象,即测试样本输出和期望的值相差较大,也称为泛化误差较大。

通常情况下,解决过拟合问题的方法有以下两种。(1)利用正则化来控制模型的复杂度,改善或减少过度拟合的问题。(2)根据实际问题增加足够的训练数据。

欠拟合(Under-fitting)是模型在训练和预测时,其准确率都较低的现象。产生的原因可能是模型过于简单,没有充分地拟合所有的数据。解决欠拟合问题的方法是优化和改进模型,或采用其他的机器学习算法。1.1.3 分类

根据机器学习算法的学习方式,机器学习分为以下3种。1.有监督学习

有监督学习(Supervised Learning)是利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的学习过程,也称为有老师的学习。有监督学习的过程是:首先利用有标号的样本进行训练,构建相应的学习模型。然后,再利用这个模型对未知样本数据进行分类和预测。这个学习过程与人类认识事物的过程非常相似。常用有监督学习的算法有:贝叶斯分类、决策树和支持向量机等。2.无监督学习

无监督学习(Unsupervised Learning)是对无标号样本的学习,以发现训练样本集中的结构性知识的学习过程,也称为无老师的学习。无监督学习事先并不需要知道样本的类别,而是通过某种方法,按照相似度的大小进行分类的过程。它与监督学习的不同之处在于,事先并没有任何训练样本,而是直接对数据进行建模。常用无监督学习的算法有:聚类算法和期望最大化算法。3.半监督学习

半监督学习(Semi-Supervised Learning)是有监督学习和无监督学习相结合的学习,是利用有类标号的数据和无类标号的数据进行学习的过程。其特点是利用少量有标号样本和大量无标号样本进行机器学习。在数据采集过程中,采集海量的无标号数据相对容易,而采集海量的有标号样本则相对困难,因为对无标号样本的标记工作可能会耗费大量的人力、物力和财力。例如,利用计算机辅助医学图像分析和判读的过程中,可以从医院获得海量的医学图像作为训练数据,但如果要求把这些海量图像中的病灶都标注出来,则是不现实的。现实世界中通常存在大量的未标注样本,但有标记样本则比较少,因此半监督学习的研究是非常重要的。

此外,根据算法的功能和形式可把机器学习算法分为:决策树学习、增量学习、强化学习、回归学习、关联规则学习、进化学习、神经网络学习、主动学习和集成学习等。1.1.4 常用工具1.WEKA

WEKA 是一款常用的、开源的机器学习和数据挖掘工具,主要功能有数据预处理、分类、回归和关联规则等。WEKA 内集成了决策树和贝叶斯分类等众多机器学习算法,是数据分析和挖掘的技术人员常用的工具之一。2.Python语言

Python是一种面向对象的编程语言,由荷兰人吉多·范罗苏姆(Guido van Rossum)发明,最早的公开发行版诞生于1991年。Python提供了大量的基础代码库,极大地方便了用户进行程序编写。Python 语言在数据挖掘和分析、机器学习和数据可视化等方面发挥了巨大的作用。目前,Python 是最热门的人工智能和机器学习的编程语言。3.Matlab

Matlab是美国MathWorks公司出品的一款商用软件,是科研工作者、工程师和大学生必备的数据分析工具之一,主要用于科学计算,如数值计算、数据分析、数据可视化、数字图像处理和数字信号处理等。4.R语言

R语言是一种为统计计算和图形显示而设计的语言环境,是贝尔实验室开发的S语言的一种实现。它提供了有弹性的、互动的环境分析,也提供了若干统计程序包,以及一系列统计和图形显示工具,用户只需根据统计模型,指定相应的数据库及相关的参数,便可灵活机动地进行数据分析等工作。目前,R 语言在数据挖掘和分析、机器学习和数据可视化方面发挥了巨大的作用。5.深度学习框架

深度学习的发展离不开高性能的框架与硬件的支持。随着半导体工艺和微电子等技术的飞速发展,支持深度学习的硬件环境也在飞速发展,出现了以多核CPU(Central Processing Unit)、高性能图形处理器GPU(Graphics Processing Unit)、APU(Accelerated Processing Unit)等处理器为代表的高性能并行计算系统,为深度学习分析和挖掘奠定了硬件基础。目前,深度学习大都使用GPU在各种框架上进行模型训练,深层神经网络在GPU上运算的速度要比CPU快一个数量级。

随着深度学习研究和应用的不断深入,各种开源的深度学习框架不断涌现,目前常用的深度学习框架有Caffe、TensorFlow、Theano、Torch和CNTK等。下面简单介绍几种常用的深度学习框架。(1)Caffe

Caffe是一种被广泛使用的开源深度学习框架,由加州大学伯克利分校的贾扬清开发。Caffe是首个主流的工业级深度学习工具,运行稳定,代码质量高,适用对稳定性要求高的生产环境。目前在计算机视觉领域Caffe依然是最流行的工具包,并且有很多扩展。Caffe最开始设计时的目标只针对图像,没有考虑文本、语音等数据,因此对卷积神经网络的支持非常好,但对时间序列RNN、LSTM等的支持不是特别充分。许多研究人员采用Caffe做人脸识别、位置检测和目标追踪等,很多深度学习的论文也都是使用Caffe来实现其模型的。(2)TensorFlow

Google公司开源的TensorFlow框架是相对高阶的机器学习库,用户可以方便地用它设计各种神经网络结构,是理想的深度学习开发平台。TensorFlow 使用了向量运算的符号图方法,使指定新网络变得比较容易,但是不支持双向RNN和3D卷积。TensorFlow移植性高,一份代码几乎不经过修改就可轻松地部署到有任意数量CPU或GPU的PC、服务器或者移动设备上。TensorFlow框架针对生产环境高度优化,产品级的高质量代码和设计可以保证其在生产环境中稳定运行。(3)Theano

Theano由Lab团队开发并维护,是一个高性能的符号计算及深度学习库。Theano因其出现时间早,一度被认为是深度学习研究和应用的重要标准之一。Theano 专门为处理大规模神经网络训练的计算而设计,其核心是一个数学表达式的编译器,可以链接各种可以加速的库,将用户定义的各种计算编译为高效的底层代码。(4)Torch

Torch是一个高效的科学计算库,含有大量的机器学习、计算机视觉、信号处理和网络的库算法。Torch对卷积网络的支持非常好,通过很多非官方的扩展支持大量的RNN模型。(5)CNTK

CNTK 是由微软公司推出的开源深度学习工具包,性能优于 Caffe、Theano、TensoFlow,支持CPU和GPU两种模式。

各种框架的底层语言和操作语言的比较,详见表1-1所示。表1-1 各种深度学习框架的比较续表1.2 大数据

大数据迅速发展成为当今科技界和企业界甚至世界各国政府关注的热点。《自然》(Nature)和《科学》(Science)等国际顶尖学术期刊相继出版专刊探讨大数据带来的机遇和挑战。美国把大数据视为“未来的新石油”,一个国家拥有数据的规模和运用数据的能力将成为综合国力的重要组成部分,对数据的占有和控制将成为国家间和企业间新的争夺焦点。“大数据时代”已然来临。

迄今为止并没有公认的关于“大数据”的定义。一般认为大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。从宏观世界角度看,大数据是融合物理世界、信息空间和人类社会三元世界的纽带。从信息产业角度看,作为新一代信息技术重要组成部分的大数据已成为经济增长的新引擎。从社会经济角度看,大数据已成为第二经济的核心和支撑。第二经济是指处理器、传感器和执行器等,以及运行在其上的经济活动。

相较于传统数据,人们将大数据的特征总结成“4V”,即数据量大(Volume)、多样性(Variety)、价值密度低(Value)和高速度(Velocity)。大数据的主要难点并不在于数据量大,因为通过对计算机系统的扩展可以在一定程度上缓解数据量大带来的挑战。大数据真正难点来自数据多样性和高速度。数据类型多样使得系统不仅要处理结构化数据,还要处理文本和视频等非结构化数据。在金融分析、航空航天等行业,数据处理速度要求非常高,时间就是效益。传统的数据处理算法无法满足快速响应的需求,因此迫切需要新型算法的支持。为了应对大数据面临的挑战,以Google为代表的互联网企业近几年推出了各种不同类型的大数据处理系统,推进了深度学习、知识计算和可视化等技术在大数据背景下的发展。1.3 人工智能

人工智能(Artificial Intelligence,AI)定义为:一门融合了计算机科学、统计学、脑神经学和社会科学的综合性学科,其目标是希望计算机拥有像人一样的智力,可以替代人类实现识别、认知和决策等多种能力。

在发展过程中,人工智能主要形成了 3 大学术流派,即符号主义(Symbolicism)、连接主义(Connectionism)和行为主义(Actionism)。(1)符号主义又称逻辑主义或计算机学派。符号主义最早在1956年提出“人工智能”的概念,学派的代表人物有纽厄尔(Newell)和西蒙(Simon)等。符号主义认为,人工智能起源于数学逻辑,人的过程就是符号操作的过程,通过了解和分析人的认知过程,让计算机来模拟实现人所具有的相应功能。符号主义的发展大概经历了2个阶段:推理期(20世纪50~70年代)和知识期(20世纪70年代以后)。在“推理期”,人们基于符号知识表示,通过演绎推理技术取得了很大的成就;在“知识期”,人们基于符号表示,通过获取和利用领域知识来建立专家系统,在人工智能走向工程应用中取得了很大的成功。(2)连接主义又称仿生学派或生理学派。连接主义认为,人工智能源于仿生学,特别是对人脑模型的研究,人的思维基元是神经元,而不是符号处理过程。20世纪60~70年代,连接主义(尤其是对以感知机(Perceptron)为代表的脑模型的研究)出现过热潮,由于受到当时的理论模型、生物原型和技术条件的限制,脑模型研究在20世纪70年代后期至80年代初期落入低潮。直到霍普菲尔德(Hopfield)教授在1982年和1984年发表2篇重要论文,提出用硬件模拟神经网络以后,连接主义再次焕发生机。1986年,鲁梅尔哈特(Rumelhart)等人提出多层网络中的反向传播算法(BP)算法。进入21世纪后,连接主义卷土重来,提出了“深度学习”的概念。(3)行为主义又称进化主义或控制论学派。行为主义认为,人工智能源于控制论,早在20世纪40~50 年代,控制论思想就成为时代思潮的重要内容,对早期人工智能工作者有较大的影响。早期的研究工作重点是在研究模拟人在控制过程中的智能行为和作用,例如:对自适应、自寻优、自组织,以及自学习等控制论体系的基础上,进行对“控制论动物”的研制。20世纪60~70年代,基于上述控制论体系的研究取得了一定的进展,为80年代出现的智能控制和智能机器人奠定了基础。在20 世纪末,行为主义以人工智能新学派的面孔出现,麻省理工学院教授布鲁克斯(Brooks)的六足行走机器人是典型代表,该机器人是一个基于感知-动作模式模拟昆虫行为的控制系统,被认为是新一代的“控制论动物”。

20世纪80年代,机器学习成为一个独立的科学领域,各种机器学习技术百花初绽。费根鲍姆等人在著名的《人工智能手册》一书中,把机器学习分为机械学习、示教学习、类比学习和归纳学习。机械学习将外界的输入信息全部存储下来,等到需要时原封不动地取出来;示教学习和类比学习就是“从指令中学习”和“通过观察和发现学习”;归纳学习就是“从样例中学习”。80 年代后研究最多的就是归纳学习,它包括:监督学习、无监督学习、半监督学习、强化学习等。

归纳学习有两大主流:符号主义学习和连接主义学习。前者代表算法有决策树和基于逻辑的学习,后者代表算法有基于神经网络的学习。

20世纪90年代中期,统计学习闪亮登场,并迅速占据主流舞台,代表性技术是支持向量机,以及更一般的“核方法”。目前所说的机器学习方法,一般认为是统计机器学习方法。

人工智能的“智能”之处主要体现在计算智能、感知智能和认知智能 3 个方面。计算智能是机器可以智能化存储和运算的能力,感知智能是使机器具有像人类一样的“听、看、说、认”的能力,认知能力是使机器具有思考和理解的能力。推动人工智能发展的 3 大要素是数据资源、核心算法和计算能力。当前人工智能领域技术主要包括语言识别、机器人、自然语言处理、图像识别和专家系统等。

人工智能、机器学习和深度学习三者之间是包含关系,人工智能的研究最早包含了机器学习,或者说机器学习是其核心组成部分,人工智能与机器学习密不可分。目前,人工智能的热点是深度学习,深度学习是机器学习的一种方法或技术。深度学习在图像识别和语音识别中识别精度的大幅提高,加速了人脸识别、无人驾驶、电影推荐、机器人问答系统和机器翻译等各个领域的应用进程,逐步形成了“人工智能+”的趋势。1.4 图像处理技术

照片、视频等各种数字图像是机器学习和大数据技术重要的应用对象之一。图像处理就是对输入的原始图像进行某种线性或非线性的变换,使输出结果符合某种需求。图像处理技术的基本内容有图像变换、图像增强、图像去噪、图像压缩、图像复原、图像分割和二值图像处理,还有常用的小波变换、傅里叶变换和图等模型等。图像的理解与分析是对原始图像进行特征的选择和提取,对原始图像所包含的知识或信息进行解读和分析的过程。图像处理技术是计算机视觉的基础。计算机视觉通过图像分析和对场景的语义表示的提取,让计算机模拟人眼和人脑进行工作。计算机视觉的发展离不开机器学习的支持,随着深度学习的不断发展,图像识别精度的大大提高,计算机视觉领域的发展前景非常广阔。第2章机器学习的理论与方法

学习是人类区别于低级动物,自身所具有的重要智能行为。机器学习则是研究机器模仿人类的学习过程,进行知识和技能获取,其应用十分广泛。例如数据挖掘、计算机视觉、自然语言处理、语音和手写识别,以及机器人研发等各个领域。本章主要介绍机器学习的理论,并阐述了几种常用的机器学习算法。2.1 回归分析与最小二乘法

在有监督学习任务中,若预测变量为离散变量,则称其为分类问题;而预测变量为连续变量时,则称其为回归问题。

回归分析是一种用于确定两种或两种以上变量间相互依赖关系的统计分析方法。按照问题所涉及变量的多少,可将回归分析分为一元回归分析和多元回归分析;按照自变量与因变量之间是否存在线性关系,分为线性回归分析和非线性回归分析。如果在某个回归分析问题中,只有两个变量,一个自变量和一个因变量,且自变量与因变量之间的函数关系能够用一条直线来近似表示,那么称其为一元线性回归分析。

回归分析的基本步骤如下:

① 分析预测目标,确定自变量和因变量;

② 建立合适的回归预测模型;

③ 相关性分析;

④ 检验回归预测模型,计算预测的误差;

⑤ 计算并确定预测值。

最小二乘法又称为最小平方法,是一种常用的数学优化方法。最小二乘法的原理是通过最小化误差平方和寻找与数据匹配的最佳函数。最小二乘法的应用十分广泛,既可以用于参数估计,也可以用于曲线拟合,以及一些其他的优化问题。

下面以一元线性回归问题为例,来解释最小二乘法的具体用法。ii

对于一元线性回归模型,假设从总体中获取了n组观察值(x,y),iii=1,2,",n,其中x,y∈R。那么这n组观察值在二维平面直角坐标系中对应的就是平面中的n个点,此时有无数条曲线可以拟合这n个点。通常情况下,希望回归函数能够尽可能好地拟合这组值。综合来看,当这条直线位于样本数据的中心位置时似乎最合理。因此,选择最佳拟合曲线的标准可确定为:总拟合误差(即总残差)最小。对于总拟合误差,有3个标准可供选择。(1)用“残差和”表示总拟合误差,但“残差和”会出现相互抵消的问题。(2)用“残差绝对值”表示总拟合误差,但计算绝对值相对较为麻烦。(3)用“残差平方和”表示总拟合误差。最小二乘法采用的就是按照“残差平方和最小”所确定的直线。用“残差平方和”计算方便,而且对异常值会比较敏感。

假设回归模型(拟合函数)为:ii

则样本(x,y)的误差为:iiii

其中 f(x)为x的预测值(拟合值),y为x对应的实际值。

最小二乘法的损失函数Q也就是残差平方和,即:01

通过最小化Q来确定直线方程,即确定β和β,此时该问题变成了求函数Q的极值问题。根据高等数学的知识可知,极值通常是通过01令导数或者偏导数等于0而得到,因此,求Q关于未知参数β和β的偏导数:

通过令偏导数为0,可求解函数的极值点,即:ii

将样本数据(x,y),i=1,2,",n代入,即可得到和的具体值。这就是利用最小二乘法求解一元线性回归模型参数的过程。2.2 聚类2.2.1 简介

聚类(Cluster Analysis)是将数据集中的所有样本根据相似度的大小进行划分,形成两个或多个类(簇)的过程。作为一种无监督机器学习方法,聚类经常用于数据挖掘和模式识别。簇是数据集中相似的样本集合。聚类没有训练过程,是一种无监督学习。它同分类的根本区别在于:分类需要有标号的样本进行训练。常用的聚类算法可分为基于划分方法的、基于层次方法的、基于密度方法的、基于网格方法的和基于模型方法的聚类。目前常用的聚类算法是基于层次的聚类和基于划分的聚类。基于层次的聚类主要有:平衡迭代削减聚类法、基于密度的聚类方法和使用代表点的聚类方法等;基于划分的聚类方法主要有:K均值聚类算法、K中心点聚类算法和随机搜索聚类算法等。2.2.2 基本原理

聚类是按照相似性大小,将无标号的数据集划分为若干类或簇的过程。聚类的结果是类内样本的相似度高,类间样本的相似度低。相似性的度量通常采用样本间的距离来表示,距离函数值的大小反映相似的程度。相似度越大,两个样本间的距离函数的值越小;相似度越小,两个样本间的距离函数值越大。

常用的距离计算方法如下。1.欧氏距离

欧氏距离(Euclidean Distance)是最常见的距离表示法。12n12n

假设x={x,x,",x},y={y,y,",y},则它们之间的距离为:

即两项间的差是每个变量值差的平方和再取平方根,目的是计算其间的整体距离,即不相似性。欧氏距离的优点是计算公式比较简单,缺点是不能将样本的不同属性(即各指标或各变量)之间的差别等同看待,在某些特定的应用背景中不能满足要求。一般的聚类大都采用欧氏距离。2.曼哈顿距离

曼哈顿距离(Manhattan Distance)也称为城市街区距离(CityBlock Distance),是在欧氏空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。1212

二维平面两点a(x,x)与b(y,y)间的曼哈顿距离定义为:11121n21222n

两个n维向量a(x,x,",x)与b(x,x,",x)间的曼哈顿距离:

需要注意的是,曼哈顿距离依赖坐标系统的转度,而非系统在坐标轴上的平移或映射。3.明氏距离

明氏距离(Minkowski Distance)也被称作闵氏距离,可以理解11121n为N维空间的距离,是欧氏距离的扩展,两个n维变量a(x,x,",x)21222n与b(x,x,",x)间的明氏距离定义为:

其中p是一个变参数。

根据变参数的不同,明氏距离可以表示以下的距离。(1)当p=1时,明氏距离即为曼哈顿距离。(2)当p=2时,明氏距离即为欧氏距离。(3)当p→∞时,明氏距离即为切比雪夫距离。4.余弦距离

余弦距离(Cosine Similarity)也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。

对于二维空间,其定义为:1122

假设向量a、b的坐标分别为(x,y)、(x,y),则:12n12n

设向量A=(A,A,",A),B=(B,B,",B),推广到多维:

余弦距离通过测量两个向量内积空间夹角的余弦值来度量它们的相似性。余弦值的范围在[-1,1]之间,值越趋近于1,代表两个向量的方向越接近,越相似;越趋近于-1,它们的方向越相反,越不相似;越趋近于0,表示两个向量趋近于正交。余弦距离可以用在任何维度的向量比较中,在高维正空间中采用较多。2.2.3 常用聚类算法

下面介绍几种常用的聚类算法。1.K近邻算法(KNN)

K近邻算法是一种常见的有监督的聚类算法,也是非参数分类的重要方法之一。K近邻算法的优点在于算法原理比较简单,容易理解和实现,不需要先验知识等;缺点在于计算量较大,在处理孤立点或噪声方面精度较低。(1)K近邻算法基本思想

K近邻算法的基本思想是针对测试集中的一个样本点,在已经学习并且完成分类的样本空间中找到K个距离最近的样本点,距离的计算通常采用欧氏距离或明氏距离。如果找到的K个样本点大多属于某一个类别,则可以判定该样本也属于这个类别。

K近邻算法的实现主要有以下3个要素。

① 数据特征的量化。如果数据特征中存在非数值类型,则需要运用一定的手段量化成数值。若样本中存在颜色这一特征属性,可将颜色转化成灰度值来计算距离;或为了保证参数取值较大时的影响力覆盖参数取值较小时的影响力,通常需要对样本的特征数值进行归一化处理。

② 样本间距离计算公式的选择。常见的距离计算公式有欧氏距离、曼哈顿距离、明氏距离、余弦距离等。不同情况下对公式的选择不同,例如:样本变量为连续型时,通常采用欧氏距离;样本变量为非连续型时,通常采用明氏距离。

③ K值的选择。K为自定义的常数,K值的选择对聚类的结果有很大的影响。通常采用交叉验证法确定K的取值,且K的取值一般小于训练样本数的平方根。(2)K近邻算法过程

K近邻算法过程具体描述如下。

① 构建训练集和测试集,使训练集按照已有的标准分成离散型数值类或连续型数值类。

② 根据样本集为离散型或连续型选择适当的距离计算公式,计算测试集中的数据与各个训练集数据之间的距离,并排序。

③ 利用交叉验证法确定K的取值,并选择距离最小的K个点。

④ 确定K个点所在类别的出现频率,选择出现频率最高的类别作为测试集的预测类。2.K均值聚类(K-means)

K均值聚类是划分方法中经典的聚类算法之一。其优点是算法简单,聚类效果较好,效率较高,对于处理大数据集有较好的可伸缩性;缺点是 K 值需要事先指定,受孤立点或噪声的影响较大,而且由于算法本身是迭代的,最终得到的结果有可能是局部最优而不是全局最优。(1)K均值算法基本思想

K均值算法的基本思想是将n个样本点划分或聚类成K个簇,使簇内具有较高的相似度,而簇间的相似度较低。首先确定所要聚类的最终数目 K,并从样本中随机选择 K 个样本作为中心;其次将集合中每个数据点被划分到与其距离最近的簇中心所在的类簇之中,形成 K 个聚类的初始分布;然后对分配完的每一个类簇内对象计算平均值,重新确定新的簇中心,继续进行数据分配过程;迭代执行若干次,若簇中心不再发生变化,且聚类准则函数收敛,则将数据对象完全分配至所属的类簇中;否则继续执行迭代过程,直至聚类准则函数收敛。(2)K均值算法过程

K均值算法具体描述如下。(i)n

假设给定的n个样本是,每个x∈R,其中样本间的距离选择欧氏距离。

输入:n个样本和簇的数目K。

输出:K个簇,且平方误差准则最小。

具体步骤如下。

① 确定所要聚类的最终数目K,并从样本中随机选择K个样本作n12k为中心,即μ,μ,",μ∈R。

② 重复以下过程,直至误差平方和准则函数E收敛至某个固定值。

{

对每个样本i,计算并确定其应属类别:

对于每一个类j,重新计算类的簇中心:

计算E,并判断其是否收敛于某个固定的值。

}(i)

其中K为确定的值,C代表样本i与K个类中距离最近的类,取值j为[1,K],簇中心μ代表对属于同一个类的样本中心点的预测。

聚类准则函数用于判断聚类质量的高低,一般采用误差平方和准则函数 E 的值变化情况判断是否继续进行迭代过程,E的值在每次迭代过程中逐渐减小,最终收敛至一个固定的值,则迭代过程结束,否则继续执行迭代过程,直至E收敛。

误差平方和准则函数E定义如下:i

其中,E是所有样本点的平方误差的总和,p是某一样本点,mi是簇C的平均值。3.K中心点聚类(K-mediods)

K中心点聚类算法是对K均值聚类的改进,属于基于划分方法的聚类。与K均值聚类算法相比,优点是减轻了对孤立点的敏感性,提高了聚类结果的准确率;缺点是算法的复杂性比 K 均值聚类算法高。K 中心聚类算法与 K 均值聚类算法最大的区别在于选择将簇内离平均值最近的对象作为该簇的中心,而不是将簇内各对象的平均值作为簇的中心。(1)K中心点算法基本思想

K中心点算法的基本思想如下。

① 确定所要聚类的最终数目K,并从样本中随机选择K个样本作为中心。

② 将集合中每个数据点被划分到与其距离最近的簇中心所在的类簇之中,形成K个聚类的初始分布。

③ 反复地利用各簇中的非中心点样本来替代中心点样本,并计算各簇中各中心点样本与非中心点样本的距离之和。

④ 迭代执行若干次,寻找最小距离之和,通过不断更新各距离值来不断调整聚类的结果。(2)K中心点算法过程

K中心点算法具体描述如下。(i)n

假设给定的n个样本是,每个x∈R,其中样本间的距离选择欧氏距离。

输入:n个样本和簇的数目K。

输出:K个簇。

具体步骤如下。

① 确定所要聚类的最终数目K,并从样本中随机选择K个样本作12kk为中心,即o,o,",o(o∈D)。

② 对每个样本p,计算并确定其应属类别,使得其欧氏距离M最小。randomm

③ 调整聚类中心,随机选取一个非簇中心样本o代替o (1≤m≤k),重新分配所有剩余样本p,使得randommm

④ 若M′−M <0,则o=o,否则本次迭代中o不发生变化。

⑤ 重复执行以上步骤,直到步骤③中M′−M <0不再成立,否则继续迭代执行②。2.3 遗传算法2.3.1 简介

遗传算法(Genetic Algorithm,GA)也称为进化算法,是密歇根大学的霍兰(Holland)教授受达尔文的进化论的启发,借鉴生物进化过程,于1975年提出的一种随机启发式搜索算法。2.3.2 基本原理

遗传算法的基本思想是对一定数量个体组成的生物种群进行交叉、变异和选择操作,通过比较每个个体的适应度值,淘汰差的个体,最终求得最优解或满意解。

遗传算法具体步骤如下:

① 初始化群体;

② 计算群体上每个个体的适应值;

③ 按由个体适应度值所决定的某个规则选择将进入下一代的个体;

④ 按一定的交叉方法,生成新的个体;

⑤ 按一定的变异方法,生成新的个体;

⑥ 没有满足某种停止条件,则转第②步,否则进入步骤⑦;

⑦ 输出种群中适应度值最优的个体作为问题的满意解或最优解。

最简单的程序停止条件有两种:完成预先给定的进化代数则停止;种群中的最优个体在连续若干代没有改进或平均适应度在连续若干代基本没有改进时停止。

遗传算法流程图如图2-1所示。图2-1 遗传算法流程图

遗传算法的实现有 6 个主要因素:参数的编码、初始种群的设定、适应度函数的设计、遗传操作、算法控制参数的设定和约束条件的处理。相关具体内容的介绍如下。(1)编码与解码

编码是将一个问题的可行解从其解空间转换到遗传算法的搜索空间的转化方法。主要的编码方法有二进制编码、浮点数编码、格雷编码及多参数编码等。编码的 3 个准则是完备性、健全性和非冗余性。解码又称为译码,是由遗传算法解空间向问题空间的转换。(2)选择

选择是在群体中选择出生命力较强的个体产生新的群体的过程,目的是使群体中个体的适应度接近最优解。常见的选择算子有随机竞争选择、轮盘赌选择、最佳保留选择、确定式选择、期望值选择、均匀排序等。(3)交叉

交叉是按某种方式对两个相互配对的染色体进行相互交换部分基因的操作,从而形成两个新的个体。常见的适用于二进制编码与浮点数编码的交叉算子有两点交叉、多点交叉、算子交叉及均匀交叉等。(4)变异

变异是指将个体染色体编码串中的某些基因位上的基因值用该基因位上的其他等位基因替换,从而形成新的个体。常见的适用于二进制编码与浮点数编码的变异算子有基本位变异、均匀变异、边界变异、非均匀变异及高斯近似变异等。(5)适应度函数

适应度函数又称为评价函数,是根据目标函数确定的、用于区分群体中个体好坏的标准。目标函数可正可负,而适应度函数是非负的,因此需要在目标函数与适应度函数之间进行适当的变换。

设计适应度函数时主要遵照以下4条标准:

① 函数满足连续、非负、单值及最大化;

② 合理性和一致性;

③ 计算量小;

④ 通用性强。

评价个体适应度的一般过程:①对个体编码串进行解码处理,得到个体的表现型;②通过个体的表现型计算对应的个体目标函数值;③根据最优化问题的类型,将目标函数值按照一定的转换规则计算出个体的适应度。(6)约束条件处理

约束条件处理主要有搜索空间限定法和可行解变换法。搜索空间限定法是通过对遗传算法的搜索空间大小加以限制,在搜索空间中表示一个个体的点与解空间中表示一个可行解的点间建立一一对应的关系。可行解变换法是在个体基因型向表现型变换的过程中,增加使其满足约束条件的处理过程,也就是说,寻找个体基因型与表现型多对一的变换关系,扩大搜索空间,使得进化过程中所产生的个体可以通过这种变换转化成解空间中满足约束条件的一个可行解。2.3.3 特点与应用1.遗传算法的特点

与传统的优化算法相比,遗传算法主要特点如下。(1)以决策变量的编码作为运算对象。借鉴染色体和基因的概念,模仿自然界生物的遗传和进化机理。(2)使用概率搜索技术,而不是确定性规则。(3)直接以适应度作为搜索信息,无需借助导数等其他辅助信息。(4)使用多个点的搜索信息,具有隐含并行性。2.遗传算法的应用

遗传算法不依赖于问题的具体领域,对问题的种类有很强的稳健性,所以广泛应用于函数优化、组合优化,例如,遗传算法已经在求解旅行商问题、背包问题、装箱问题和图形划分问题等方面得到成功应用。此外,遗传算法在生产调度问题、自动控制、机器人学和图像处理等方面也获得了广泛运用。2.4 蚁群算法2.4.1 简介

蚁群算法(Ant Colony Optimization,ACO)最早是由马尔科·多里戈(Marco Dorigo)等人于1991 年提出的,是在图中寻找优化路径的概率型算法。基本思想来自蚂蚁在寻找食物过程中发现最短路径的行为。蚁群在寻找食物时,通过分泌信息素交流觅食信息,从而能在没有任何提示的情况下找到从食物源到巢穴的最短路径,并在周围环境发生变化后,自适应地搜索新的最佳路径。蚁群算法的优点是算法简单,实现容易。2.4.2 基本原理

首先介绍蚁群算法中的参数:设蚁群中所有蚂蚁的数量为 m,所有城市之间的信息素为矩阵pheromon,最短路径为bestLength,最佳路径为bestTour。每只蚂蚁都有自己的内存,内存中用一个禁忌表(Tabu)来存储该蚂蚁已经访问过的城市,表示其在以后的搜索中将不能访问这些城市,用一个允许访问的城市表(Allowed)存储该蚂蚁还可以访问的城市,用一个矩阵(Delta)存储它在一个循环(或者迭代)中给所经过的路径释放的信息素。此外还有一些数据,包括运行次数MAX_GEN、运行时间t、控制参数(α,β,ρ,Q)、蚂蚁行走完全程的总成本或距离(tourLength)等。

蚁群算法计算过程如下。1.初始化

t=0时,对所有参数进行初始化。设置bestLength为正无穷,bestTour为空,将所有蚂蚁的Delta矩阵所有元素初始化为 0,Tabu 表清空,向 Allowed 表中加入所有的城市节点,用随机选择或人工指定的方法确定它们的起始位置,在Tabu表中加入起始节点,Allowed表中去掉该起始节点。2.选择节点

为每只蚂蚁选择下一个节点,该节点只能从Allowed表中以通过公式(2-18)计算得到的概率搜索到,得到一个节点,就将该节点加入到Tabu表中,并从Allowed表中删除该节点。重复n-1次该过程,直到所有的城市都遍历过一次。遍历完所有节点后,将起始节点加入 Tabu 表中。此时 Tabu表元素数量为n+1(n为城市数量),Allowed表元素数量为0。接下来按照公式(2-19)计算每个蚂蚁的Delta矩阵值。最后计算最佳路径,比较每个蚂蚁的路径成本。之后与bestLength比较,若它的路径成本比bestLength小,则将该值赋予bestLength,将其Tabu赋予BestTour,并将该城市节点加到bestTour中。ij(ij

其中k表示第k个蚂蚁,pt)表示选择城市j的概率,τ(t)表示城市i,ijj在第t时刻的信息素浓度,η表示从城市i到城市j的可见度,,ijd表示城市i,j之间的成本。表示蚂蚁k在城市i与j之间留下的信息k素。L表示蚂蚁k完成一个循环所经过路径的总成本,即tourLength,其中α,β,Q均为控制参数。3.更新信息素矩阵

令t= t+n,按照公式(2-20)更新信息素矩阵phermone:ij

其中τ(t+n)为t+n时刻城市i与j之间的信息素浓度,ρ为控制参数,ijΔτ为城市i与j之间信息素经过一个迭代后的增量,且,其中由公式计算得到。4.检查终止条件

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载