1、人工智能之机器学习常见算法标签: 人工智能机器学习算法数据分析2016-05-22 15:47 19949 人阅读 评论(0) 收藏 举报版权声明:本文为博主原创文章,未经博主允许不得转载。目录 (?)+摘要算法概述之前一直对机器学习很感兴趣,一直没时间去研究, 今天刚好是周末, 有时间去各大技术论坛看看,刚好看到一篇关于机器学习不错的文章,在这里就分享给大家了. 机器学习无疑是当前数据分析领域的一个热点内容。很多人在平时的工作中都或多或少会用到机器学习的算法。这里 IT 经理网为您总结一下常见的机器学习算法,以供您在工作和学习中参考。 机器学习的算法很多。很多时候困惑人们都是,很多算法是一类
2、算法,而有些算法又是从其他算法中延伸出来的。这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的类似性。 算法分析算法已经成为我们日常生活的一个重要组成部分,它们几乎出现在商业的任何领域。调查公司 Gartner 称这种现象为算法化商业,算法化商业正在改变我们经营和管理公司(应有的)的方式。现在,你可以在 算法市场上买到这些适用于各个商业领域的多种算法。算法市场为开发者提供了包括声音和视觉处理、机器学习以及计算机视觉等领域在内的超过 800 种算法,这些成熟的算法帮助开发者节省宝贵的时间与金钱。然而,算法市场上可用的算法可能并不符合你的特定需求。毕竟,你需要不同的算法来
3、应付不同的情况,而相同的算法在不同环境也会产生不同的结果。事实上,可用的算法类型和它的执行方式是由很多不同的变量决定的。这些变量包括数据的规模和类别、应用算法的行业、用来执行的功能等多种情况。因此,有时购买一个现成的算法并稍作修改可能不是最佳选择。数据科学家还是应该学习最重要的算法;学习如何开发这些算法,又如何根据意图选取最合适的算法?Think Big Data发布的信息图展示了 12 种实现不同应用目的的最重要的算法,想必这肯定是每个数据科学家都喜闻乐见的。注:汉化信息图中的中文翻译参考了网络以及周志华老师机器学习一书中的名词翻译。为了不影响读者的阅读,中文、英文版信息图都附于文中。中文版
4、信息图:原英文信息图机器学习常见算法分类汇总学习方式根据数据类型的不同,对一个问题的建模有不同的方式。在机器学习或者人工智能领域,人们首先会考虑算法的学习方式。在机器学习领域,有几种主要的学习方式。将算法按照学习方式分类是一个不错的想法,这样可以让人们在建模和算法选择的时候考虑能根据输入数据来选择最合适的算法来获得最好的结果。监督式学习:在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中的“1“,”2“,”3“ ,”4“等。在建立预测模型的时候,监督式学习建立一个学习过程,将预测结果与“训练数据”的实
5、际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率。监督式学习的常见应用场景如分类问题和回归问题。常见算法有逻辑回归(Logistic Regression)和反向传递神经网络(Back Propagation Neural Network)非监督式学习:在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。常见的应用场景包括关联规则的学习以及聚类等。常见算法包括 Apriori 算法以及 k-Means 算法。半监督式学习:在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合
6、理的组织数据来进行预测。应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。 如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM.)等。强化学习:在这种学习模式下,输入数据作为对模型的反馈,不像监督模型那样,输入数据仅仅是作为一个检查模型对错的方式,在强化学习下,输入数据直接反馈到模型,模型必须对此立刻作出调整。常见的应用场景包括动态系统以及机器人控制等。常见算法包括 Q-Learning 以及时间差学习(Temporal difference learning)
7、在企业数据应用的场景下, 人们最常用的可能就是监督式学习和非监督式学习的模型。 在图像识别等领域,由于存在大量的非标识的数据和少量的可标识数据, 目前半监督式学习是一个很热的话题。 而强化学习更多的应用在机器人控制及其他需要进行系统控制的领域。算法类似性根据算法的功能和形式的类似性,我们可以把算法分类,比如说基于树的算法,基于神经网络的算法等等。当然,机器学习的范围非常庞大,有些算法很难明确归类到某一类。而对于有些分类来说,同一分类的算法可以针对不同类型的问题。这里,我们尽量把常用的算法按照最容易理解的方式进行分类。回归算法回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法
8、是统计机器学习的利器。在机器学习领域,人们说起回归,有时候是指一类问题,有时候是指一类算法,这一点常常会使初学者有所困惑。常见的回归算法包括:最小二乘法(Ordinary Least Square),逻辑回归(Logistic Regression),逐步式回归(Stepwise Regression),多元自适应回归样条( Multivariate Adaptive Regression Splines)以及本地散点平滑估计(Locally Estimated Scatterplot Smoothing)基于实例的算法基于实例的算法常常用来对决策问题建立模型,这样的模型常常先选取一批样本数据
9、,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆的学习”。常见的算法包括 k-Nearest Neighbor(KNN), 学习矢量量化(Learning Vector Quantization, LVQ),以及自组织映射算法(Self-Organizing Map , SOM)正则化方法正则化方法是其他算法(通常是回归算法)的延伸,根据算法的复杂度对算法进行调整。正则化方法通常对简单模型予以奖励而对复杂算法予以惩罚。常见的算法包括:Ridge Regression, Least Absolute Sh
10、rinkage and Selection Operator(LASSO ),以及弹性网络( Elastic Net)。决策树学习决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常常用来解决分类和回归问题。常见的算法包括:分类及回归树(Classification And Regression Tree, CART), ID3(Iterative Dichotomiser 3), C4.5, Chi-squared Automatic Interaction Detection(CHAID), Decision Stump, 随机森林(Random Forest), 多元自适应回
11、归样条(MARS)以及梯度推进机(Gradient Boosting Machine, GBM)贝叶斯方法贝叶斯方法算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。常见算法包括:朴素贝叶斯算法,平均单依赖估计(Averaged One-Dependence Estimators, AODE),以及 Bayesian Belief Network(BBN)。基于核的算法基于核的算法中最著名的莫过于支持向量机(SVM)了。 基于核的算法把输入数据映射到一个高阶的向量空间, 在这些高阶向量空间里, 有些分类或者回归问题能够更容易的解决。 常见的基于核的算法包括:支持向量机(Support
12、 Vector Machine, SVM), 径向基函数(Radial Basis Function ,RBF), 以及线性判别分析(Linear Discriminate Analysis ,LDA) 等聚类算法聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括 k-Means 算法以及期望最大化算法(Expectation Maximization, EM)。关联规则学习关联规则学习通过寻找最能够解释数据变量之间关系的规
13、则,来找出大量多元数据集中有用的关联规则。常见算法包括 Apriori 算法和 Eclat 算法等。人工神经网络人工神经网络算法模拟生物神经网络,是一类模式匹配算法。通常用于解决分类和回归问题。人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法。(其中深度学习就是其中的一类算法,我们会单独讨论),重要的人工神经网络算法包括:感知器神经网络(Perceptron Neural Network), 反向传递(Back Propagation), Hopfield 网络,自组织映射(Self-Organizing Map, SOM)。学习矢量量化(Learning Vector Quanti
14、zation, LVQ)深度学习深度学习算法是对人工神经网络的发展。 在近期赢得了很多关注, 特别是百度也开始发力深度学习后, 更是在国内引起了很多关注。 在计算能力变得日益廉价的今天,深度学习试图建立大得多也复杂得多的神经网络。很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。常见的深度学习算法包括:受限波尔兹曼机(Restricted Boltzmann Machine, RBN), Deep Belief Networks(DBN ),卷积网络(Convolutional Network), 堆栈式自动编码器(Stacked Auto-encoders)。降低维
15、度算法像聚类算法一样,降低维度算法试图分析数据的内在结构,不过降低维度算法是以非监督学习的方式试图利用较少的信息来归纳或者解释数据。这类算法可以用于高维数据的可视化或者用来简化数据以便监督式学习使用。常见的算法包括:主成份分析(Principle Component Analysis, PCA),偏最小二乘回归(Partial Least Square Regression,PLS ), Sammon 映射,多维尺度(Multi-Dimensional Scaling, MDS), 投影追踪(Projection Pursuit)等。集成算法集成算法用一些相对较弱的学习模型独立地就同样的样本进
16、行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。常见的算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆叠泛化(Stacked Generalization, Blending),梯度推进机(Gradient Boosting Machine, GBM),随机森林(Random Forest)。人工智能、深度学习、机器视觉,你需要弄清的概念人工智能的概念提出已经很多年,但最近一次大热是在“人机大战” 战胜世界围棋
17、高手李世石的 AlphaGo。同样,深度学习和机器视觉的概念也频频出现在我们的视野当中,那么什么是人工智能?什么是深度学习、机器视觉,它们是如何应用在安防领域中? 三者之间存在什么样的联系?以下将为您一一解答。人工智能人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。总的说来,人工智能是研究人类智能活动的规律,构造具有一定智能的人工系统,研究如何让计算机去完成以往需要人的智力才能胜任的工作,也就是研究如何应用计算机的软硬件来模拟人类某些智能行为的基本理论、方法和技
18、术。深度学习深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。在安防领域的应用让深度学习能够如此大行其道的关键要素是数据,而占大数据总量 60%以上的为视频监控数据,与此同时,视频监控领域的 70%以上的数据分析是用来进行图像识别。深度学习的在安防行业的方方面面得到了应用:人脸检测、车辆检测、非机动车检测、人脸识别、车辆品牌识别、行人检索、车辆检测、人体属性、异常人脸检测、人群行为分析、各种感兴趣目标的跟踪深度学习算法不是简单地接收数据,它在吸收原有数据的基础上,能够增量式地提升模型的性能,给予数据的选择过
19、程一种反馈 形成一种数据选择机制,能够分辨哪种类型的数据有助于持续提升模型性能,哪种类型的数据则是毫无帮助的 从而最终形成一种良性循环体系。机器视觉机器视觉是人工智能正在快速发展的一个分支。简单说来,机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是通过机器视觉产品(即图像摄取装置,分 CMOS 和CCD 两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。安防领域的应用由于机器视觉主要是对图像进行识别,因此机器视觉在人
20、脸识别、车牌识别等方面得到大量运用。以智能交通行业为例,机器视觉具有成本低、稳定性强、准确性高、应用范围广等优点,目前已经在国内外高速公路和公路的交通监控系统中得到了广泛的应用,具体体现在车牌识别、车身颜色识别、车型识别、违章识别、车流量统计、流量控制等。人工智能是计算机学科的一个分支,深度学习、机器视觉是机器学习研究中的一个领域。深度学习和机器视觉主要是针对图形进行更深层次的挖掘和分析,是人工智能的实际应用。而人工智能除了对图形的处理外,还包括对语音、运动、社交等方面的处理和控制。结束在之后的时间里我会给大家一一介绍这些算法的具体实现.敬请大家期待,大家想一起跟我交流技术,可以关注我的个人公众号.