1、第3章 机器学习PARTPART1 1机器学习的定义机器学习的定义 机器学习的定义1 1在维基百科上,对机器学习提出以下几种定义:“机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能”;“机器学习是对能通过经验自动改进的计算机算法的研究”;“机器学习是用数据或以往的经验,以此优化计算机程序的性能标准”。机器学习的定义1.1三个关键词:算法、经验、性能 机器学习是数据通过算法构建出模型并对模型进行评估,评估的性能如果达到要求就拿这个模型来测试其他的数据,如果达不到要求就调整算法来重新建立模型,再次进行评估,如此循环往复,最终获得满意的经验来处理
2、其他的数据。PARTPART2 2机器学习的历机器学习的历史史机器学习的发展历史机器学习的发展历史2.1机器学习是人工智能应用研究比较重要的分支,它的发展过程大体上可分为4个阶段:n第一阶段是在50年代中叶到60年代中叶,属于热烈时期;n第二阶段在60年代中叶至70年代中叶,被称为机器学习的冷静时期;n第三阶段从70年代中叶至80年代中叶,称为复兴时期;n机器学习的最新阶段始于1986年。一方面,由于神经网络研究的重新兴起,另一方面,对实验研究和应用研究得到前所未有的重视。我国的机器学习研究开始进入稳步发展和逐渐繁荣的新时期。机器学习的发展现状机器学习的发展现状2.2n在搜索引擎方面Googl
3、e的成功,使得Internet搜索引擎成为新兴产业。机器学习技术正在支撑着各类搜索引擎;nDARPA(美国国防先进研究项目局)于2003年开始启动5年期PAL计划,这是一个以机器学习为核心的计划(涉及到AI的其他分支,如知识表示和推理、自然语言处理等);n汽车自动驾驶。机器学习的主要任务是从立体视觉中学习如何行驶,根据观察人类的驾驶行为记录各种图像和操纵指令,并将它们进行正确分类;n在对天文物体进行分类、计算机系统性能预测、信用卡盗用检测、邮政服务属性识别、网络文档自动分类等方面,机器学习也在快速发展壮大。PARTPART3 3机器学习的分机器学习的分类类机器学习的分类机器学习的分类3.1监督
4、学习监督学习无监督学习无监督学习半监督学习半监督学习强化学习强化学习机器学习的分类机器学习的分类-监督学习监督学习3.2n 监督学习是从给定的训练数据集中学习一个函数(模型),当新的数据到来时,可以根据这个函数(模型)预测结果;n 在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如,对防垃圾邮件系统中“垃圾邮件”、“非垃圾邮件”;n 在建立模型时,监督式学习建立一个学习过程,将预测结果与“测试数据”的实际结果进行比较,不断调整预测模型,直到模型的预测结果达到一个预期的准确率。常见的监督学习算法包括回归分析和统计分类。机器学习的分类机器学习的分类-无监督学习无监督
5、学习3.3n 在无监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构;n 常见的应用场景包括关联规则的学习以及聚类等。常见算法包括Apriori算法和k-Means算法。n 监督学习和无监督学习的区别:训练集目标是否被标注。他们都有训练集,且都有输入和输出。机器学习的分类机器学习的分类-半监督学习半监督学习3.4n 半监督学习是介于监督学习与无监督学习之间一种机器学习方式,主要考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的问题;n 应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进
6、行预测,如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM)等;n 半监督学习从诞生以来,主要用于处理人工合成数据,无噪声干扰的样本数据是当前大部分半监督学习方法使用的数据,而在实际生活中用到的数据却大部分不是无干扰的,通常都比较难以得到纯样本数据。机器学习的分类机器学习的分类 -强化学习强化学习3.53.5n 强化学习通过观察来学习动作的完成,每个动作都会对环境有所影响,学习对象根据观察到的周围环境的反馈来做出判断;n 在强化学习下,输入数据直接反馈到模型,模型必须对此立刻做出调整;n 常见的应用场景包括动态系统以及机器人控制等。常见算法包括Q
7、-Learning 以及时间差学习(Temporal difference learning)。机器学习的分类机器学习的分类 -总结总结3.63.6n 在企业数据应用的场景下,人们最常用的可能就是监督式学习和无监督式学习的模型。n 在图像识别等领域,由于存在大量的非标识的数据和少量的可标识数据,目前半监督式学习是一个很热的话题。n 强化学习更多地应用在机器人控制及其他需要进行系统控制的领域。PARTPART4 4机器学习的算机器学习的算法法4.14.1机器学习的常用算法机器学习的常用算法n 回归算法(监督学习)n 神经网络(监督学习)n SVM支持向量机(监督学习)n 聚类算法(无监督学习)n
8、 降维算法(无监督学习)n 推荐算法(特殊)n 其他算法常见算法常见算法 -回归算法回归算法4.24.2n 回归算法有两个重要的子类:即回归算法有两个重要的子类:即线性回归线性回归和和逻辑回归逻辑回归;n 线性回归就是如何拟合出一条直线最佳匹配所有的数据,逻辑回归是一种线性回归就是如何拟合出一条直线最佳匹配所有的数据,逻辑回归是一种与线性回归非常类似的算法;与线性回归非常类似的算法;n 线性回归处理的问题类型与逻辑回归不一致:线性回归处理的问题类型与逻辑回归不一致:线性回归处理的是数值问题,也就是最后预测出的结果是数字,例如房价。逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类,例
9、如判断这封邮件是否是垃圾邮件,以及用户是否会点击此广告等等。常见算法常见算法-回归算法回归算法4.34.3假设有一组肿瘤患者的数据,这些患者的肿瘤中有些是良性的(图中的蓝色点),有些是恶性的(图中的红色点)。这里肿瘤的红蓝色可以被称作数据的“标签”。同时每个数据包括两个“特征”:患者的年龄与肿瘤的大小。我们将这两个特征与标签映射到这个二维空间上,形成了上图的数据。当有一个绿色的点时,该判断这个肿瘤是恶性的还是良性的呢?根据红蓝点我们训练出了一个逻辑回归模型,也就是图中的分类线。这时,根据绿点出现在分类线的左侧,因此我们判断它的标签应该是红色,也就是说属于恶性肿瘤。逻辑回归算法划出的分类线基本都
10、是线性的(也有划出非线性分类线的逻辑回归,不过那样的模型在处理数据量较大的时候效率会很低),这意味着当两类之间的界线不是线性时,逻辑回归的表达能力就不足。常见算法常见算法-神经网络神经网络4.4u神经网络(也称之为人工神经网络,ANN)的诞生起源于对大脑工作机理的研究。早期生物界学者们使用神经网络来模拟大脑,后来,机器学习的学者们使用神经网络进行机器学习的实验,发现在视觉与语音的识别上效果都相当好。u神经网络算法是80年代机器学习界非常流行的算法。不过,进入90年代,神经网络的发展进入了一个瓶颈期。其主要原因是神经网络的训练过程很困难。u现在,携着“深度学习”之势,神经网络重装归来,重新成为最
11、强大的机器学习算法之一。常见算法常见算法 -神经网络神经网络4.54.5 比方说,一个正方形,分解为四个折线进入视觉处理的下一层中。四个神经元分别处理一个折线。每个折线再继续被分解为两条直线,每条直线再被分解为黑白两个面。于是,一个复杂的图像变成了大量的细节进入神经元,神经元处理以后再进行整合,最后得出了看到的是正方形的结论。这就是大脑视觉识别的机理,也是神经网络工作的机理。常见算法常见算法 -SVM-SVM支持向量机支持向量机4.64.6n SVM算法是诞生于统计学习界,同时在机器学习界大放光彩的经典算法。n 从某种意义上来说,支持向量机算法是逻辑回归算法的强化:通过给予逻辑回归算法更严格的
12、优化条件,支持向量机算法可以获得比逻辑回归更好的分类界线。n 支持向量机是一种数学成分很浓的机器学习算法(相对的,神经网络则有生物科学成分)。通过支持向量机算法,既可以保持计算效率,又可以获得非常好的分类效果。因此支持向量机在90年代后期一直占据着机器学习中最核心的地位,基本取代了神经网络算法。直到现在神经网络借着深度学习重新兴起,两者之间才又发生了微妙的平衡转变。常见算法常见算法-SVM支持向量机支持向量机4.7n 通过跟高斯函数的结合,支持向量机可以表达出非常复杂的分类界线,从而达成很好的分类效果。比如,可以将低维的空间映射到高维的空间。n 如何在二维平面划分出一个圆形的分类界线?在二维平
13、面可能会很困难,但是通过高斯函数可以将二维空间映射到三维空间,然后使用一个线性平面就可以达成类似效果。常见算法常见算法 -聚类算法聚类算法4.84.81.聚类算法是无监督学习算法中最典型的代表。聚类算法是无监督学习算法中最典型的代表。2.聚类算法就是计算种群中的距离,根据距离的远近将聚类算法就是计算种群中的距离,根据距离的远近将数据划分为多个族群。数据划分为多个族群。3.聚类算法中最典型的代表就是聚类算法中最典型的代表就是K-Means算法。算法。常见算法常见算法 -降维算法降维算法4.94.9 降维算法也是一种无监督学习算法,主要特征是将数据从高维降低到低维。维度表示数据的特征量的大小。例如
14、,房价包含房子的长、宽、面积与房间数量四个特征,也就是维度为4维的数据。可以看出来,长与宽事实上与面积表示的信息重叠了,例如面积=长 宽。通过降维算法,可以去除冗余信息,将特征减少为面积与房间数量两个特征,即从4维的数据压缩到2维。这样,不仅利于表示,同时提高计算的性能。降维算法的主要作用是压缩数据与提升机器学习的效率。通过降维算法,可以将具有几千个特征的数据压缩至若干个特征。另外,降维算法的另一个好处是数据的可视化,例如将5维的数据压缩至2维,然后可以用二维平面来可视。降维算法的主要代表是PCA算法(即主成分分析算法)。常见算法常见算法 -推荐算法推荐算法 推荐算法是目前业界非常火的一种算法
15、,如亚马逊,天猫,京东等都在广泛地运用。推荐算法的主要特征就是可以自动向用户推荐他们最感兴趣的东西,从而增加购买率,提升效益。常见算法常见算法 -推荐算法推荐算法n 推荐算法有两个主要的类别:一类是基于物品内容的推荐,是将与用户购买的内容近似的物品推荐给用户,这样的前提是每个物品都得有若干个标签,因此才可以找出与用户购买物品类似的物品,这样推荐的好处是关联程度较大。另一类是基于用户相似度的推荐,则是将与目标用户兴趣(注:用户画像)相同的其他用户购买的东西推荐给目标用户,例如小A历史上买了物品B和C,经过算法分析,发现另一个与小A近似的用户小D购买了物品E,于是将物品E推荐给小A。n 两类推荐都
16、有各自的优缺点,在一般的电商应用中,一般是两类混合使用。推荐算法中最有名的算法就是协同过滤算法。常见算法常见算法 -其他算法其他算法 除了以上算法之外,机器学习界还有其他的如高斯判别,朴素贝叶斯,决策树等等算法。但是上面列的六个算法是使用最多,影响最广,种类最全的典型。机器学习界的一个特色就是算法众多,发展百花齐放。除了这些算法以外,有一些算法的名字在机器学习领域中也经常出现。但他们本身并不算是一个机器学习算法,而是为了解决某个子问题而诞生的。可以理解他们为以上算法的子算法,用于大幅度提高训练过程。其中的代表有:梯度下降法,主要运用在线性回归,逻辑回归,神经网络,推荐算法中;牛顿法,主要运用在
17、线性回归中;BP算法,主要运用在神经网络中;SMO算法,主要运用在SVM中。机器学习的基本过程机器学习的基本过程 计算机从给定的数据中学习规律,即从观测数据(样本)中寻找规律、建立模型,并利用学习到的规律(模型)对未知或无法观测的数据进行预测。PARTPART5 5机器学习的操作流机器学习的操作流程程机器学习的操作流程5.1n 操作流程主要分7步:数据导入;数据预处理;特征工程;拆分;训练模型;评估模型;预测新数据。机器学习示例机器学习示例n 预测美国某大学某人是否是终身教授:机器学习的常见应用机器学习的常见应用 机器学习已广泛应用于数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、
18、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人等领域。流行的开源机器学习框架TensorFlowTensorFlow是谷歌基于C+开发、发布的第二代机器学习系统。开发目的是用于进行机器学习和深度神经网络的研究。目前Google 的Google App 的语音识别、Gmail 的自动回复功能、Google Photos 的图片搜索等都在使用 TensorFlow。GitHub项目地址:https:/ 模块,它建立在SciPy之上。基本功能主要被分为六个部分:分类、回归、聚类、数据降维、模型选择、数据预处理。GitHub项目地址:https:/ 是由神经网
19、络中的表达式、速度及模块化产生的深度学习框架。Caffe是一个基于C+/CUDA架构框架,开发者能够利用它自由的组织网络,目前支持卷积神经网络和全连接神经网络(人工神经网络)。在Linux上,C+可以通过命令行来操作接口,运算上支持CPU和GPU直接无缝切换。GitHub项目地址:https:/ 或 Theano 上都能够运行,是一个高度模块化的神经网络库,支持GPU和CPU运算。Keras侧重于开发快速实验,用可能最少延迟实现从理念到结果的转变,即为做好一项研究的关键。GitHub项目地址:https:/ 是面向开发人员和数据科学家的开源机器学习服务器。它支持事件采集、算法调度、评估以及经由
20、REST APIs的预测结果查询。使用者可以通过PredictionIO做一些预测,比如个性化推荐、发现内容等。PredictionIO 基于 REST API(应用程序接口)标准,不过它还包含 Ruby、Python、Scala、Java 等编程语言的 SDK(软件开发工具包)。其开发语言是Scala语言,数据库方面使用的是MongoDB数据库,计算系统采用Hadoop系统架构。GitHub项目地址:https:/ 是Apache Software Foundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。M
21、ahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。传统的Mahout是提供的是Java的API,用户应用会编译成MapReduce的job,运行在MapReduce的框架上。从现在看来,这种方式开发效率低,运行速度慢,已经过时了。Mahout已经不再开发和维护新的基于MR的算法,而转向支持Scala。GitHub项目地址:https:/ MLlibSpark MLlib是Spark对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器。Spark的设计初衷就是为了支持一些迭代的Job,这正好符合很多机器学习算法的特点。Spark基于内存的计算模型天生就擅长迭代计算,多个步骤
22、计算直接在内存中完成,只有在必要时才会操作磁盘和网络。GitHub项目地址:https:/ MLlibSpark MLlib介绍介绍n Spark MLlib是Spark对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器。n MLlib目前支持4种常见的机器学习问题:分类、回归、聚类和协同过滤。Spark MLlib介绍 5.7n SparkSpark在机器学习方面具有得天独厚的优势:在机器学习方面具有得天独厚的优势:机器学习算法一般都有很多个步骤迭代计算的过程,迭代时如果使用Hadoop的MapReduce计算框架,每次计算都要读/写磁盘以及任务的启动等工作,这回导致非常大的I/O
23、和CPU消耗。而Spark基于内存的计算模型天生就擅长迭代计算,多个步骤计算直接在内存中完成,只有在必要时才会操作磁盘和网络。从通信的角度讲,如果使用Hadoop的MapReduce计算框架,JobTracker和TaskTracker之间由于是通过Heartbeat的方式来进行的通信和传递数据,会导致非常慢的执行速度,而Spark具有出色而高效的Akka和Netty通信系统,通信效率极高。可以看出在Logistic Regression的运算场景下,Spark比Hadoop快了100100倍以上!Spark MLlibSpark MLlib介绍介绍n MLlibMLlib在在SparkSpa
24、rk整个生态系统中的位置:整个生态系统中的位置:【本章小结】【本章小结】本章介绍了机器学习领域的一些基础知识。在本章中,你可以学会如何将问题建模为机器学习算法一一机器学习算法与生物过程颇有一些相似之处,但人工智能的目标并非完全模拟人脑的工作机制,而是要超越简单的流程化作业程序,制造出具有一定智能的机器。机器学习算法和人脑的相似之处在于都有输入、输出和不显于外的内部状态,其中输入和内部状态决定了输出。内部状态可以视作影响输出的短期记忆。还有一种被称作“长期记忆”的属性,明确指定了给定输入和内部状态之后,机器学习算法的输出。训练就是一个通过调整长期记忆来使算法获得预期输出的过程。【讨论】【讨论】1.什么是机器学习?2.机器学习的使用对人工智能产生了哪些影响?
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。