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