【机器学习】机器学习的经典算法html
https://mp.weixin.qq.com/s/CxSG9l_dxA4G-SZKOGI1ng算法
本文为整篇文章第二部分,整篇文章主要目录以下:网络
1:一个故事说明什么是机器学习架构
2:机器学习的定义机器学习
3:机器学习的经典算法函数
4:机器学习的应用--大数据学习
5:机器学习的子类--深度学习大数据
6:机器学习的父类--人工智能优化
7:机器学习的思考--计算机的潜意识人工智能
8:总结
经过从机器学习谈起(1)的介绍咱们知晓了机器学习的大体,那么机器学习里面究竟有多少经典的算法呢?在这个部分我会简要介绍一下机器学习中的经典表明算法。这部分介绍的重点是这些方法内涵的思想,数学与实践细节不会在这讨论。
回归算法
在大部分机器学习课程中,回归算法都是介绍的第一个算法。缘由有两个:一.回归算法比较简单,介绍它可让人平滑地从统计学迁移到机器学习中。二.回归算法是后面若干强大算法的基石,若是不理解回归算法,没法学习那些强大的算法。回归算法有两个重要的子类:即线性回归和逻辑回归。
线性回归就是咱们前面说过的房价求解问题。如何拟合出一条直线最佳匹配我全部的数据?通常使用“最小二乘法”来求解。“最小二乘法”的思想是这样的:假设咱们拟合出的直线表明数据的真实值,而观测到的数据表明拥有偏差的值。为了尽量减少偏差的影响,须要求解一条直线使全部偏差的平方和最小。最小二乘法将最优问题转化为求函数极值问题。函数极值在数学上咱们通常会采用求导数为0的方法。但这种作法并不适合计算机,可能求解不出来,也可能计算量太大。
计算机科学界专门有一个学科叫“数值计算”,专门用来提高计算机进行各种计算时的准确性和效率问题。例如,著名的“梯度降低”以及“牛顿法”就是数值计算中的经典算法,也很是适合来处理求解函数极值的问题。梯度降低法是解决回归模型中最简单且有效的方法之一。从严格意义上来讲,因为后文中的神经网络和推荐算法中都有线性回归的因子,所以梯度降低法在后面的算法实现中也有应用。
逻辑回归是一种与线性回归很是相似的算法,可是,从本质上讲,线型回归处理的问题类型与逻辑回归不一致。线性回归处理的是数值问题,也就是最后预测出的结果是数字,例如房价。而逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类,例如判断这封邮件是不是垃圾邮件,以及用户是否会点击此广告等等。
实现方面的话,逻辑回归只是对对线性回归的计算结果加上了一个Sigmoid函数,将数值结果转化为了0到1之间的几率(Sigmoid函数的图像通常来讲并不直观,你只须要理解对数值越大,函数越逼近1,数值越小,函数越逼近0),接着咱们根据这个几率能够作预测,例如几率大于0.5,则这封邮件就是垃圾邮件,或者肿瘤是不是恶性的等等。从直观上来讲,逻辑回归是画出了一条分类线,见下图。
图6 逻辑回归的直观解释
假设咱们有一组肿瘤患者的数据,这些患者的肿瘤中有些是良性的(图中的蓝色点),有些是恶性的(图中的红色点)。这里肿瘤的红蓝色能够被称做数据的“标签”。同时每一个数据包括两个“特征”:患者的年龄与肿瘤的大小。咱们将这两个特征与标签映射到这个二维空间上,造成了我上图的数据。
当我有一个绿色的点时,我该判断这个肿瘤是恶性的仍是良性的呢?根据红蓝点咱们训练出了一个逻辑回归模型,也就是图中的分类线。这时,根据绿点出如今分类线的左侧,所以咱们判断它的标签应该是红色,也就是说属于恶性肿瘤。
逻辑回归算法划出的分类线基本都是线性的(也有划出非线性分类线的逻辑回归,不过那样的模型在处理数据量较大的时候效率会很低),这意味着当两类之间的界线不是线性时,逻辑回归的表达能力就不足。下面的两个算法是机器学习界最强大且重要的算法,均可以拟合出非线性的分类线。
神经网络
神经网络(也称之为人工神经网络,ANN)算法是80年代机器学习界很是流行的算法,不过在90年代中途衰落。如今,携着“深度学习”之势,神经网络重装归来,从新成为最强大的机器学习算法之一。
神经网络的诞生起源于对大脑工做机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发如今视觉与语音的识别上效果都至关好。在BP算法(加速神经网络训练过程的数值算法)诞生之后,神经网络的发展进入了一个热潮。BP算法的发明人之一是前面介绍的机器学习大牛Geoffrey Hinton(图1中的中间者)。
具体说来,神经网络的学习机理是什么?简单来讲,就是分解与整合。在著名的Hubel-Wiesel试验中,学者们研究猫的视觉分析机理是这样的。
图7 Hubel-Wiesel试验与大脑视觉机理
比方说,一个正方形,分解为四个折线进入视觉处理的下一层中。四个神经元分别处理一个折线。每一个折线再继续被分解为两条直线,每条直线再被分解为黑白两个面。因而,一个复杂的图像变成了大量的细节进入神经元,神经元处理之后再进行整合,最后得出了看到的是正方形的结论。这就是大脑视觉识别的机理,也是神经网络工做的机理。
让咱们看一个简单的神经网络的逻辑架构。在这个网络中,分红输入层,隐藏层,和输出层。输入层负责接收信号,隐藏层负责对数据的分解与处理,最后的结果被整合到输出层。每层中的一个圆表明一个处理单元,能够认为是模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网络,也就是"神经网络"。
图8 神经网络的逻辑架构
在神经网络中,每一个处理单元事实上就是一个逻辑回归模型,逻辑回归模型接收上层的输入,把模型的预测结果做为输出传输到下一个层次。经过这样的过程,神经网络能够完成很是复杂的非线性分类。
下图会演示神经网络在图像识别领域的一个著名应用,这个程序叫作LeNet,是一个基于多个隐层构建的神经网络。经过LeNet能够识别多种手写数字,而且达到很高的识别精度与拥有较好的鲁棒性。
图9 LeNet的效果展现
右下方的方形中显示的是输入计算机的图像,方形上方的红色字样“answer”后面显示的是计算机的输出。左边的三条竖直的图像列显示的是神经网络中三个隐藏层的输出,能够看出,随着层次的不断深刻,越深的层次处理的细节越低,例如层3基本处理的都已是线的细节了。LeNet的发明人就是前文介绍过的机器学习的大牛Yann LeCun(图1右者)。
进入90年代,神经网络的发展进入了一个瓶颈期。其主要缘由是尽管有BP算法的加速,神经网络的训练过程仍然很困难。所以90年代后期支持向量机(SVM)算法取代了神经网络的地位。
svm(支持向量机)
支持向量机算法是诞生于统计学习界,同时在机器学习界大放光彩的经典算法。
支持向量机算法从某种意义上来讲是逻辑回归算法的强化:经过给予逻辑回归算法更严格的优化条件,支持向量机算法能够得到比逻辑回归更好的分类界线。可是若是没有某类函数技术,则支持向量机算法最多算是一种更好的线性分类技术。
可是,经过跟高斯“核”的结合,支持向量机能够表达出很是复杂的分类界线,从而达成很好的的分类效果。“核”事实上就是一种特殊的函数,最典型的特征就是能够将低维的空间映射到高维的空间。
例以下图所示:
图10 支持向量机图例
咱们如何在二维平面划分出一个圆形的分类界线?在二维平面可能会很困难,可是经过“核”能够将二维空间映射到三维空间,而后使用一个线性平面就能够达成相似效果。也就是说,二维平面划分出的非线性分类界线能够等价于三维平面的线性分类界线。因而,咱们能够经过在三维空间中进行简单的线性划分就能够达到在二维平面中的非线性划分效果。
图11 三维空间的切割
支持向量机是一种数学成分很浓的机器学习算法(相对的,神经网络则有生物科学成分)。在算法的核心步骤中,有一步证实,即将数据从低维映射到高维不会带来最后计算复杂性的提高。因而,经过支持向量机算法,既能够保持计算效率,又能够得到很是好的分类效果。所以支持向量机在90年代后期一直占据着机器学习中最核心的地位,基本取代了神经网络算法。直到如今神经网络借着深度学习从新兴起,二者之间才又发生了微妙的平衡转变。
聚类算法
前面的算法中的一个显著特征就是个人训练数据中包含了标签,训练出的模型能够对其余未知数据预测标签。在下面的算法中,训练数据都是不含标签的,而算法的目的则是经过训练,推测出这些数据的标签。这类算法有一个统称,即无监督算法(前面有标签的数据的算法则是有监督算法)。无监督算法中最典型的表明就是聚类算法。
让咱们仍是拿一个二维的数据来讲,某一个数据包含两个特征。我但愿经过聚类算法,给他们中不一样的种类打上标签,我该怎么作呢?简单来讲,聚类算法就是计算种群中的距离,根据距离的远近将数据划分为多个族群。
聚类算法中最典型的表明就是K-Means算法。
降维算法
降维算法也是一种无监督学习算法,其主要特征是将数据从高维下降到低维层次。在这里,维度其实表示的是数据的特征量的大小,例如,房价包含房子的长、宽、面积与房间数量四个特征,也就是维度为4维的数据。能够看出来,长与宽事实上与面积表示的信息重叠了,例如面积=长 × 宽。经过降维算法咱们就能够去除冗余信息,将特征减小为面积与房间数量两个特征,即从4维的数据压缩到2维。因而咱们将数据从高维下降到低维,不只利于表示,同时在计算上也能带来加速。
刚才说的降维过程当中减小的维度属于肉眼可视的层次,同时压缩也不会带来信息的损失(由于信息冗余了)。若是肉眼不可视,或者没有冗余的特征,降维算法也能工做,不过这样会带来一些信息的损失。可是,降维算法能够从数学上证实,从高维压缩到的低维中最大程度地保留了数据的信息。所以,使用降维算法仍然有不少的好处。
降维算法的主要做用是压缩数据与提高机器学习其余算法的效率。经过降维算法,能够将具备几千个特征的数据压缩至若干个特征。另外,降维算法的另外一个好处是数据的可视化,例如将5维的数据压缩至2维,而后能够用二维平面来可视。降维算法的主要表明是PCA算法(即主成分分析算法)。
推荐算法
推荐算法是目前业界很是火的一种算法,在电商界,如亚马逊,天猫,京东等获得了普遍的运用。推荐算法的主要特征就是能够自动向用户推荐他们最感兴趣的东西,从而增长购买率,提高效益。推荐算法有两个主要的类别:
一类是基于物品内容的推荐,是将与用户购买的内容近似的物品推荐给用户,这样的前提是每一个物品都得有若干个标签,所以才能够找出与用户购买物品相似的物品,这样推荐的好处是关联程度较大,可是因为每一个物品都须要贴标签,所以工做量较大。
另外一类是基于用户类似度的推荐,则是将与目标用户兴趣相同的其余用户购买的东西推荐给目标用户,例如小A历史上买了物品B和C,通过算法分析,发现另外一个与小A近似的用户小D购买了物品E,因而将物品E推荐给小A。
两类推荐都有各自的优缺点,在通常的电商应用中,通常是两类混合使用。推荐算法中最有名的算法就是协同过滤算法。
其它
除了以上算法以外,机器学习界还有其余的如高斯判别,朴素贝叶斯,决策树等等算法。可是上面列的六个算法是使用最多,影响最广,种类最全的典型。机器学习界的一个特点就是算法众多,发展百花齐放。