

一文看懂哪些是机器学习--1. 机器学习是何种?
一文看懂哪些是机器学习--2. 机器学习的范围?
一文看懂哪些是机器学习--3. 机器学习的方式?
一文看懂哪些是机器学习--4. 机器学习的应用及其泛型?
本系列陌陌公众帐号
机器学习的方式
在大部分机器学习课程中,回归算法都是介绍的第一个算法。原因有两个:一.回归算法比较简略,介绍它可以使人平滑地从统计学迁移至机器学习中。二.回归算法是前面若干强悍算法的基石,如果不理解回归算法,无法学习这些强悍的算法。回归算法有两个重要的泛型:即线性回归跟逻辑回归。
线性回归,也就是“如何拟合出一条直线最佳匹配我所有的数据?”
一般使用“最小二乘法”来求解。“最小二乘法”的思想是那样的,假设我们拟合出的直线代表数据的真实值,而观测至的数据代表拥有偏差的值。为了尽可能减少偏差的影响,需要求解一条直线让所有偏差的平方跟最小。最小二乘法将最优问题转换为求函数极值问题。函数极值在物理上我们通常会选用求行列式为0的步骤。但这些做法并不适于计算机机器学习方法,可能求解不下来,也或许估算量很大。
计算机科学界专门有一个学科叫“数值估算”,专门拿来增强计算机进行各种估算时的准确性跟效率问题。例如,著名的“梯度增长”以及“牛顿法”就是数值估算中的精典算法,也特别适于来处理求解函数极值的问题。梯度下降法是解决回归模型中最简略且有效的办法之一。从严苛意义上来说,由于后文中的血管网路跟推荐算法中都有线性回归的因子,因此梯度增长法在上面的算法实现中还有应用。
逻辑回归是一种与线性回归十分类似的算法,但是,从本质上讲,线型回归处理的问题类别与逻辑回归不一致。线性回归处理的是数值问题,也就是最后预测出的结果是数字,例如楼市。而逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类,例如辨别这封电邮是否是垃圾邮件,以及用户是否会点击此广告等等。

神经网路(也称之为人工神经网络,ANN)算法是80年代机器学习界十分流行的算法,不过在90年代中途衰亡。现在,携着“深度学习”之势,神经网路重装归来,重新成为最强悍的机器学习算法之一。
神经网路的诞生起源于对脑部工作成因的研究。早期生物界学者们使用血管网路来模拟脑部。机器学习的学者们使用血管网路进行机器学习的试验,发现在视觉与语音的辨识上疗效都相当好。在BP算法(加速血管网路训练过程的数值算法)诞生之后,神经网路的发展踏入了一个风潮。BP算法的发明人之一是上面介绍的机器学习大牛Geoffrey Hinton(图1中的中间者)(近期将提出一种新的BP算法,或者说一种新的血管网路的传入算法)。
具体说来,神经网路的学习成因是何种?简单来说,就是分解与整合。在知名的Hubel-Wiesel实验中,学者们研究狗的视觉剖析成因是这么的。

图6 Hubel-Wiesel实验与脑部视觉成因
比方说,一个正方形,分解为四个柱形踏入视觉处理的下一层中。四个神经元分别处理一个柱形。每个柱形再继续被分解为两条直线,每条直线再被分解为彩色两个面。于是,一个复杂的图象弄成了大量的细节踏入神经元机器学习方法,神经元处理之后再进行整合,最后得出了听到的是正方形的推论。这就是脑部视觉辨识的成因,也是血管网路工作的成因。
让我们看一个简略的血管网路的逻辑构架。在这个网路中,分成键入层,隐藏层,和输出层。输入层负责接收讯号,隐藏层负责对数据的分解与处理,最后的结果被整合至输出层。每层中的一个圆代表一个处理单元,可以觉得是模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网路,也就是"神经网路"。

图7 神经网路的逻辑构架
在血管网路中,每个处理单元事实上就是一个逻辑回归模型,逻辑回归模型接收下层的键入,把模型的预测结果作为输出传输至下一个层次。通过那样的过程,神经网路可以完成十分复杂的非线性分类。
下图会演示血管网路在图象辨识领域的一个知名应用,这个程序称作LeNet,是一个基于多个隐层建立的血管网路。通过LeNet可以辨识多种手写数字,并且达到很高的辨识精度与拥有较差的鲁棒性。

图8 LeeNet的疗效展示
右下方的矩形中显示的是键入计算机的图象,方形顶部的白色字样“answer”后面显示的是计算机的输出。左边的三条竖直的图象列显示的是血管网路中三个掩藏层的输出,可以看出,随着层次的不断深入,越深的层次处理的细节越低,例如层3基本处理的都早已是线的细节了。LeNet的发明人就是前文介绍过的机器学习的大牛Yann LeCun(图1右者)。
进入90年代,神经网路的发展踏入了一个瓶颈期。其主要成因是虽然有BP算法的加快,神经网路的训练过程依然太困难。因此90年代后期支持向量机(SVM)算法代替了血管网路的地位。
支持向量机算法是诞生于统计学习界,同时在机器学习界大放光彩的精典算法。
支持向量机算法从某些意义上来说是逻辑回归算法的加强:通过给与逻辑回归算法更严苛的优化条件,支持向量机算法可以获得比逻辑回归更好的分类界线。但是若果没有某类函数技术,则支持向量机算法最多算是一种更好的线性分类技术。
但是,通过和高斯“核”的结合,支持向量机可以抒发出十分复杂的分类界线,从而签署挺好的的分类疗效。“核”事实上就是一种特殊的函数,最典型的特点就是可以将低维的空间映射至高维的空间。
例如下图所示:

图9 支持向量机图例
我们怎样在二维平面界定出一个弧形的分类界线?在二维平面可能会太困难,但是通过“核”可以将二维空间映射至三维空间,然后使用一个线性平面就可以签署类似疗效。也就是说,二维平面界定出的非线性分类界线可以等价于三维平面的线性分类界线。于是,我们可以通过在三维空间中进行简略的线性界定就可以达到在二维平面中的非线性界定疗效。
图10 三维空间的切割

支持向量机是一种英语成份太浓的机器学习算法(相对的,神经网路则有生物科学成份)。在算法的核心方法中,有一步证明,即将数据从低维映射至高维不会带给最后估算复杂性的增强。于是,通过支持向量机算法,既可以保持估算效率,又可以获得非常好的分类疗效。因此支持向量机在90年代后期仍然居于着机器学习中最核心的地位,基本代替了血管网路算法。直到今天血管网路借着深度学习再次盛行,两者之间才又发生了微妙的平衡转变。
前面的算法中的一个明显特点就是我的训练数据中包含了标签,训练出的模型可以对其他未知数据预测标签。在下边的算法中,训练数据都是不含标签的,而算法的目的则是通过训练,推测出这种数据的标签。这类算法有一个也称,即无监督算法(前面有标签的数据的算法则是有监督算法)。无监督算法中最典型的代表就是聚类算法。
让我们还是拿一个二维的数据来说,某一个数据包含两个特性。我希望通过聚类算法,给它们中不同的种类打上标签,我该如何做呢?简单来说,聚类算法就是估算群落中的距离,根据距离的远近将数据界定为多个种族。
聚类算法中最典型的代表就是K-Means算法。
降维算法只是一种无监督学习算法,其主要特点是将数据从高维增加至低维层次。在这里,维度虽然表示的是数据的特性量的大小。
例如,房价包含房屋的长、宽、面积与书房数目四个特性,也就是维度为4维的数据。可以看下来,长与宽事实上与面积表示的信息重叠了,例如面积=长 × 宽。通过降维算法我们就可以消除冗余信息,将特性降低为面积与书房人数两个特性,即从4维的数据压缩至2维。于是我们将数据从高维增加至低维,不仅促使表示,同时在估算上也能带给加快。
降维算法的主要作用是压缩数据与提高机器学习其他算法的效率。通过卷积算法,可以将具备几千个特性的数据压缩到若干个特性。另外,降维算法的另一个弊端是数据的可视化,例如将5维的数据压缩到2维,然后可以用二维平面来可视。降维算法的主要代表是PCA算法(即主成份剖析算法)。
推荐算法是现今业界十分火的一种算法,在电商界,如京东,天猫,京东等得到了广泛的利用。推荐算法的主要特点就是可以手动向用户推荐它们最感兴趣的东西,从而提高订购率,提升效益。
推荐算法有两个主要的类型:
一类是基于物品内容的推荐,是将与用户订购的内容近似的物品推荐给用户,这样的前提是每位物品都得有若干个标签,因此才可以找出与用户订购物品类似的物品,这样推荐的弊端是关联程度较大,但是因为每位物品都须要帖标签,因此工作量较大。
另一类是基于用户相似度的推荐,则是将与目标用户兴趣相似的其他用户订购的东西推荐给目标用户,例如小A历史上买了物品B跟C,经过算法剖析,发现另一个与小A近似的用户小D订购了物品E,于是将物品E推荐给小A。
两类推荐都有各自的优缺点,在通常的电商应用中,一般是两类混和使用。推荐算法中最有名的算法就是协同过滤算法。

除了以上算法此外,机器学习界也有其他的如高斯判断,朴素贝叶斯,决策树等等算法。但是里面列的六个算法是使用最多,影响最广,种类最全的典型。机器学习界的一个特色就是算法诸多,发展百花齐放。
下面做一个小结,按照训练的数据有无标签,可以将前面算法分为监督学习算法跟无监督学习算法,但推荐算法较为特殊,既不属于监督学习,也不属于非监督学习,是单独的一类。
监督学习算法:线性回归,逻辑回归,神经网路,SVM
无监督学习算法:聚类算法,降维算法
特殊算法:推荐算法
除了那些算法以外,有一些算法的名子在机器学习领域中也常常出现。但它们原本并不算是一个机器学习算法,而是为了解决某个子问题而诞生的。你可以理解它们为以上算法的子算法,用于大幅度增加训练过程。
其中的代表有:
梯度增长法,主要利用型回归,
逻辑回归,神经网路,主要利用在推荐算法中;
牛顿法,主要利用型回归中;
BP算法,主要利用在血管网路中;
SMO算法,主要利用在SVM中。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-134959-1.html
>2015年10月
唉