一文读懂机器学习,大数据/天然语言处理/算法全有了

转自:http://www.thebigdata.cn/JieJueFangAn/13080.htmlhtml


在本篇文章中,我将对机器学习作个概要的介绍。本文的目的是能让即使彻底不了解机器学习的人也能了解机器学习,而且上手相关的实 践。这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核。固然,本文也面对通常读者,不会对阅读 有相关的前提要求。算法

在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以致于要阅读完这篇很是长的文章呢?数据库

我并不直接回答这个问题前。相反,我想请你们看两张图,下图是图一:编程


图1 机器学习界的执牛耳者与互联网界的大鳄的联姻网络

这 幅图上上的三人是当今机器学习界的执牛耳者。中间的是Geoffrey Hinton, 加拿大多伦多大学的教授,现在被聘为“Google大脑”的负责人。右边的是Yann LeCun, 纽约大学教授,现在是Facebook人工智能实验室的主任。而左边的你们都很熟悉,Andrew Ng,中文名吴恩达,斯坦福大学副教授,现在也是“百度大脑”的负责人与百度首席科学家。这三位都是目前业界煊赫一时的大牛,被互联网界大鳄求贤若渴的聘 请,足见他们的重要性。而他们的研究方向,则所有都是机器学习的子类–深度学习。架构

下图是图二:机器学习

图2 语音助手产品分布式

这 幅图上描述的是什么?Windows Phone上的语音助手Cortana,名字来源于《光环》中士官长的助手。相比其余竞争对手,微软很迟才推出这个服务。Cortana背后的核心技术是 什么,为何它可以听懂人的语音?事实上,这个技术正是机器学习。机器学习是全部语音助手产品(包括Apple的siri与Google的Now)可以跟 人交互的关键技术。ide

经过上面两图,我相信你们能够看出机器学习彷佛是一个很重要的,有不少未知特性的技术。学习它彷佛是一件有趣的任务。实际上,学习机器学习不只能够帮助咱们了解互联网界最新的趋势,同时也能够知道伴随咱们的便利服务的实现技术。函数

机器学习是什么,为何它能有这么大的魔力,这些问题正是本文要回答的。同时,本文叫作“从机器学习谈起”,所以会以漫谈的形式介绍跟机器学习相关的全部内容,包括学科(如数据挖掘、计算机视觉等),算法(神经网络,svm)等等。本文的主要目录以下:

1.一个故事说明什么是机器学习

2.机器学习的定义

3.机器学习的范围

4.机器学习的方法

5.机器学习的应用–大数据

6.机器学习的子类–深度学习

7.机器学习的父类–人工智能

8.机器学习的思考–计算机的潜意识

9.总结

10.后记

1.一个故事说明什么是机器学习

机器学习这个词是让人疑惑的,首先它是英文名称Machine Learning(简称ML)的直译,在计算界Machine通常指计算机。这个名字使用了拟人的手法,说明了这门技术是让机器“学习”的技术。可是计算机是死的,怎么可能像人类同样“学习”呢?

传 统上若是咱们想让计算机工做,咱们给它一串指令,而后它遵守这个指令一步步执行下去。有因有果,很是明确。但这样的方式在机器学习中行不通。机器学习根本 不接受你输入的指令,相反,它接受你输入的数据! 也就是说,机器学习是一种让计算机利用数据而不是指令来进行各类工做的方法。这听起来很是难以想象,但结果上倒是很是可行的。“统计”思想将在你学习“机 器学习”相关理念时无时无刻不伴随,相关而不是因果的概念将是支撑机器学习可以工做的核心概念。你会颠覆对你之前全部程序中创建的因果无处不在的根本理 念。

下面我经过一个故事来简单地阐明什么是机器学习。这个故事比较适合用在知 乎上做为一个概念的阐明。在这里,这个故事没有展开,但相关内容与核心是存在的。若是你想简单的了解一下什么是机器学习,那么看完这个故事就足够了。若是 你想了解机器学习的更多知识以及与它关联紧密的当代技术,那么请你继续往下看,后面有更多的丰富的内容。

这个例子来源于我真实的生活经验,我在思考这个问题的时候忽然发现它的过程能够被扩充化为一个完整的机器学习的过程,所以我决定使用这个例子做为全部介绍的开始。这个故事称为“等人问题”。

我相信你们都有跟别人相约,而后等人的经历。现实中不是每一个人都那么守时的,因而当你碰到一些爱迟到的人,你的时间不可避免的要浪费。我就碰到过这样的一个例子。

对个人一个朋友小Y而言,他就不是那么守时,最多见的表现是他常常迟到。当有一次我跟他约好3点钟在某个麦当劳见面时,在我出门的那一刻我忽然想到一个问题:我如今出发合适么?我会不会又到了地点后,花上30分钟去等他?我决定采起一个策略解决这个问题。

要 想解决这个问题,有好几种方法。第一种方法是采用知识:我搜寻可以解决这个问题的知识。但很遗憾,没有人会把如何等人这个问题做为知识传授,所以我不可能 找到已有的知识可以解决这个问题。第二种方法是问他人:我去询问他人得到解决这个问题的能力。可是一样的,这个问题没有人可以解答,由于可能没人碰上跟我 同样的状况。第三种方法是准则法:我问本身的心里,我有否设立过什么准则去面对这个问题?例如,不管别人如何,我都会守时到达。但我不是个死板的人,我没 有设立过这样的规则。

事实上,我相信有种方法比以上三种都合适。我把过往跟小 Y相约的经历在脑海中重现一下,看看跟他相约的次数中,迟到占了多大的比例。而我利用这来预测他此次迟到的可能性。若是这个值超出了我内心的某个界限,那 我选择等一会再出发。假设我跟小Y约过5次,他迟到的次数是1次,那么他按时到的比例为80%,我心中的阈值为70%,我认为此次小Y应该不会迟到,所以 我按时出门。若是小Y在5次迟到的次数中占了4次,也就是他按时到达的比例为20%,因为这个值低于个人阈值,所以我选择推迟出门的时间。这个方法从它的 利用层面来看,又称为经验法。在经验法的思考过程当中,我事实上利用了以往全部相约的数据。所以也能够称之为依据数据作的判断。

依据数据所作的判断跟机器学习的思想根本上是一致的。

刚 才的思考过程我只考虑“频次”这种属性。在真实的机器学习中,这可能都不算是一个应用。通常的机器学习模型至少考虑两个量:一个是因变量,也就是咱们但愿 预测的结果,在这个例子里就是小Y迟到与否的判断。另外一个是自变量,也就是用来预测小Y是否迟到的量。假设我把时间做为自变量,譬如我发现小Y全部迟到的 日子基本都是星期五,而在非星期五状况下他基本不迟到。因而我能够创建一个模型,来模拟小Y迟到与否跟日子是不是星期五的几率。见下图:

图3 决策树模型

这样的图就是一个最简单的机器学习模型,称之为决策树。

当咱们考虑的自变量只有一个时,状况较为简单。若是把咱们的自变量再增长一个。例如小Y迟到的部分状况时是在他开车过来的时候(你能够理解为他开车水平较臭,或者路较堵)。因而我能够关联考虑这些信息。创建一个更复杂的模型,这个模型包含两个自变量与一个因变量。

再更复杂一点,小Y的迟到跟天气也有必定的缘由,例以下雨的时候,这时候我须要考虑三个自变量。

如 果我但愿可以预测小Y迟到的具体时间,我能够把他每次迟到的时间跟雨量的大小以及前面考虑的自变量统一创建一个模型。因而个人模型能够预测值,例如他大概 会迟到几分钟。这样能够帮助我更好的规划我出门的时间。在这样的状况下,决策树就没法很好地支撑了,由于决策树只能预测离散值。咱们能够用节2所介绍的线 型回归方法创建这个模型。

若是我把这些创建模型的过程交给电脑。好比把全部的自变量和因变量输入,而后让计算机帮我生成一个模型,同时让计算机根据我当前的状况,给出我是否须要迟出门,须要迟几分钟的建议。那么计算机执行这些辅助决策的过程就是机器学习的过程。

机器学习方法是计算机利用已有的数据(经验),得出了某种模型(迟到的规律),并利用此模型预测将来(是否迟到)的一种方法。

通 过上面的分析,能够看出机器学习与人类思考的经验过程是相似的,不过它能考虑更多的状况,执行更加复杂的计算。事实上,机器学习的一个主要目的就是把人类 思考概括经验的过程转化为计算机经过对数据的处理计算得出模型的过程。通过计算机得出的模型可以以近似于人的方式解决不少灵活复杂的问题。

下面,我会开始对机器学习的正式介绍,包括定义、范围,方法、应用等等,都有所包含。

2.机器学习的定义

从广义上来讲,机器学习是一种可以赋予机器学习的能力以此让它完成直接编程没法完成的功能的方法。但从实践的意义上来讲,机器学习是一种经过利用数据,训练出模型,而后使用模型预测的一种方法。

让咱们具体看一个例子。

图4 房价的例子

拿国民话题的房子来讲。如今我手里有一栋房子须要售卖,我应该给它标上多大的价格?房子的面积是100平方米,价格是100万,120万,仍是140万?

很显然,我但愿得到房价与面积的某种规律。那么我该如何得到这个规律?用报纸上的房价平均数据么?仍是参考别人面积类似的?不管哪一种,彷佛都并非太靠谱。

我如今但愿得到一个合理的,而且可以最大程度的反映面积与房价关系的规律。因而我调查了周边与我房型相似的一些房子,得到一组数据。这组数据中包含了大大小小房子的面积与价格,若是我能从这组数据中找出面积与价格的规律,那么我就能够得出房子的价格。

对规律的寻找很简单,拟合出一条直线,让它“穿过”全部的点,而且与各个点的距离尽量的小。

经过这条直线,我得到了一个可以最佳反映房价与面积规律的规律。这条直线同时也是一个下式所代表的函数:

  房价 = 面积 * a + b

上述中的a、b都是直线的参数。得到这些参数之后,我就能够计算出房子的价格。

假设a = 0.75,b = 50,则房价 = 100 * 0.75 + 50 = 125万。这个结果与我前面所列的100万,120万,140万都不同。因为这条直线综合考虑了大部分的状况,所以从“统计”意义上来讲,这是一个最合理的预测。

在求解过程当中透露出了两个信息:
1.房价模型是根据拟合的函数类型决定的。若是是直线,那么拟合出的就是直线方程。若是是其余类型的线,例如抛物线,那么拟合出的就是抛物线方程。机器学习有众多算法,一些强力算法能够拟合出复杂的非线性模型,用来反映一些不是直线所能表达的状况。
2.若是个人数据越多,个人模型就越可以考虑到越多的状况,由此对于新状况的预测效果可能就越好。这是机器学习界“数据为王”思想的一个体现。通常来讲(不是绝对),数据越多,最后机器学习生成的模型预测的效果越好。

经过我拟合直线的过程,咱们能够对机器学习过程作一个完整的回顾。首先,咱们须要在计算机中存储历史的数据。接着,咱们将这些 数据经过机器学习算法进行处理,这个过程在机器学习中叫作“训练”,处理的结果能够被咱们用来对新的数据进行预测,这个结果通常称之为“模型”。对新数据 的预测过程在机器学习中叫作“预测”。“训练”与“预测”是机器学习的两个过程,“模型”则是过程的中间输出结果,“训练”产生“模型”,“模型”指导 “预测”。

让咱们把机器学习的过程与人类对历史经验概括的过程作个比对。

图5 机器学习与人类思考的类比


人类在成长、生活过程当中积累了不少的历史与经验。人类按期地对这些经验进行“概括”,得到了生活的“规律”。当人类遇到未知的问题或者须要对将来进行“推测”的时候,人类使用这些“规律”,对未知问题与将来进行“推测”,从而指导本身的生活和工做。

机器学习中的“训练”与“预测”过程能够对应到人类的“概括”和“推测”过程。经过这样的对应,咱们能够发现,机器学习的思想并不复杂,仅仅是对人类在生活 中学习成长的一个模拟。因为机器学习不是基于编程造成的结果,所以它的处理过程不是因果的逻辑,而是经过概括思想得出的相关性结论。

这也能够联想到人类为何要学习历史,历史其实是人类过往经验的总结。有句话说得很好,“历史每每不同,但历史老是惊人的类似”。经过学习历史,咱们从 历史中概括出人生与国家的规律,从而指导咱们的下一步工做,这是具备莫大价值的。当代一些人忽视了历史的原本价值,而是把其做为一种宣扬功绩的手段,这其 实是对历史真实价值的一种误用。

3.机器学习的范围

上文虽说明了机器学习是什么,可是并无给出机器学习的范围。

其实,机器学习跟模式识别,统计学习,数据挖掘,计算机视觉,语音识别,天然语言处理等领域有着很深的联系。

从范围上来讲,机器学习跟模式识别,统计学习,数据挖掘是相似的,同时,机器学习与其余领域的处理技术的结合,造成了计算机视觉、语音识别、天然语言处理等 交叉学科。所以,通常说数据挖掘时,能够等同于说机器学习。同时,咱们日常所说的机器学习应用,应该是通用的,不只仅局限在结构化数据,还有图像,音频等 应用。

在这节对机器学习这些相关领域的介绍有助于咱们理清机器学习的应用场景与研究范围,更好的理解后面的算法与应用层次。

下图是机器学习所牵扯的一些相关范围的学科与研究领域。


图6 机器学习与相关学科

模式识别

模式识别=机器学习。二者的主要区别在于前者是从工业界发展起来的概念,后者则主要源自计算机学科。在著名的《Pattern Recognition And Machine Learning》这本书中,Christopher M. Bishop在开头是这样说的“模式识别源自工业界,而机器学习来自于计算机学科。不过,它们中的活动能够被视为同一个领域的两个方面,同时在过去的10 年间,它们都有了长足的发展”。

数据挖掘

数据挖掘=机器学习+数据库。这几年数据挖掘的概念实在是太耳熟能详。几乎等同于炒做。但凡说数据挖掘都会吹嘘数据挖掘如何如何,例如从数据中挖出金子,以 及将废弃的数据转化为价值等等。可是,我尽管可能会挖出金子,但我也可能挖的是“石头”啊。这个说法的意思是,数据挖掘仅仅是一种思考方式,告诉咱们应该 尝试从数据中挖掘出知识,但不是每一个数据都能挖掘出金子的,因此不要神话它。一个系统绝对不会由于上了一个数据挖掘模块就变得无所不能(这是IBM最喜欢 吹嘘的),偏偏相反,一个拥有数据挖掘思惟的人员才是关键,并且他还必须对数据有深入的认识,这样才可能从数据中导出模式指引业务的改善。大部分数据挖掘 中的算法是机器学习的算法在数据库中的优化。

统计学习

统 计学习近似等于机器学习。统计学习是个与机器学习高度重叠的学科。由于机器学习中的大多数方法来自统计学,甚至能够认为,统计学的发展促进机器学习的繁荣 昌盛。例如著名的支持向量机算法,就是源自统计学科。可是在某种程度上二者是有分别的,这个分别在于:统计学习者重点关注的是统计模型的发展与优化,偏数 学,而机器学习者更关注的是可以解决问题,偏实践,所以机器学习研究者会重点研究学习算法在计算机上执行的效率与准确性的提高。

计算机视觉

计 算机视觉=图像处理+机器学习。图像处理技术用于将图像处理为适合进入机器学习模型中的输入,机器学习则负责从图像中识别出相关的模式。计算机视觉相关的 应用很是的多,例如百度识图、手写字符识别、车牌识别等等应用。这个领域是应用前景很是火热的,同时也是研究的热门方向。随着机器学习的新领域深度学习的 发展,大大促进了计算机图像识别的效果,所以将来计算机视觉界的发展前景不可估量。

语音识别

语音识别=语音处理+机器学习。语音识别就是音频处理技术与机器学习的结合。语音识别技术通常不会单独使用,通常会结合天然语言处理的相关技术。目前的相关应用有苹果的语音助手siri等。

天然语言处理

自 然语言处理=文本处理+机器学习。天然语言处理技术主要是让机器理解人类的语言的一门领域。在天然语言处理技术中,大量使用了编译原理相关的技术,例如词 法分析,语法分析等等,除此以外,在理解这个层面,则使用了语义理解,机器学习等技术。做为惟一由人类自身创造的符号,天然语言处理一直是机器学习界不断 研究的方向。按照百度机器学习专家余凯的说法“听与看,说白了就是阿猫和阿狗都会的,而只有语言才是人类独有的”。如何利用机器学习技术进行天然语言的的 深度理解,一直是工业和学术界关注的焦点。

能够看出机器学习在众多领域的外延和应用。机器学习技术的发展促使了不少智能领域的进步,改善着咱们的生活。

4.机器学习的方法

经过上节的介绍咱们知晓了机器学习的大体范围,那么机器学习里面究竟有多少经典的算法呢?在这个部分我会简要介绍一下机器学习中的经典表明方法。这部分介绍的重点是这些方法内涵的思想,数学与实践细节不会在这讨论。

(1)回归算法

在 大部分机器学习课程中,回归算法都是介绍的第一个算法。缘由有两个:一.回归算法比较简单,介绍它可让人平滑地从统计学迁移到机器学习中。二.回归算法 是后面若干强大算法的基石,若是不理解回归算法,没法学习那些强大的算法。回归算法有两个重要的子类:即线性回归和逻辑回归。

线 性回归就是咱们前面说过的房价求解问题。如何拟合出一条直线最佳匹配我全部的数据?通常使用“最小二乘法”来求解。“最小二乘法”的思想是这样的,假设我 们拟合出的直线表明数据的真实值,而观测到的数据表明拥有偏差的值。为了尽量减少偏差的影响,须要求解一条直线使全部偏差的平方和最小。最小二乘法将最 优问题转化为求函数极值问题。函数极值在数学上咱们通常会采用求导数为0的方法。但这种作法并不适合计算机,可能求解不出来,也可能计算量太大。

计 算机科学界专门有一个学科叫“数值计算”,专门用来提高计算机进行各种计算时的准确性和效率问题。例如,著名的“梯度降低”以及“牛顿法”就是数值计算中 的经典算法,也很是适合来处理求解函数极值的问题。梯度降低法是解决回归模型中最简单且有效的方法之一。从严格意义上来讲,因为后文中的神经网络和推荐算 法中都有线性回归的因子,所以梯度降低法在后面的算法实现中也有应用。

逻辑回 归是一种与线性回归很是相似的算法,可是,从本质上讲,线型回归处理的问题类型与逻辑回归不一致。线性回归处理的是数值问题,也就是最后预测出的结果是数 字,例如房价。而逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类,例如判断这封邮件是不是垃圾邮件,以及用户是否会点击此广告等等。

实 现方面的话,逻辑回归只是对对线性回归的计算结果加上了一个Sigmoid函数,将数值结果转化为了0到1之间的几率(Sigmoid函数的图像通常来讲 并不直观,你只须要理解对数值越大,函数越逼近1,数值越小,函数越逼近0),接着咱们根据这个几率能够作预测,例如几率大于0.5,则这封邮件就是垃圾 邮件,或者肿瘤是不是恶性的等等。从直观上来讲,逻辑回归是画出了一条分类线,见下图。


图7 逻辑回归的直观解释

假 设咱们有一组肿瘤患者的数据,这些患者的肿瘤中有些是良性的(图中的蓝色点),有些是恶性的(图中的红色点)。这里肿瘤的红蓝色能够被称做数据的“标 签”。同时每一个数据包括两个“特征”:患者的年龄与肿瘤的大小。咱们将这两个特征与标签映射到这个二维空间上,造成了我上图的数据。

当我有一个绿色的点时,我该判断这个肿瘤是恶性的仍是良性的呢?根据红蓝点咱们训练出了一个逻辑回归模型,也就是图中的分类线。这时,根据绿点出如今分类线的左侧,所以咱们判断它的标签应该是红色,也就是说属于恶性肿瘤。

逻 辑回归算法划出的分类线基本都是线性的(也有划出非线性分类线的逻辑回归,不过那样的模型在处理数据量较大的时候效率会很低),这意味着当两类之间的界线 不是线性时,逻辑回归的表达能力就不足。下面的两个算法是机器学习界最强大且重要的算法,均可以拟合出非线性的分类线。

(2)神经网络

神经网络(也称之为人工神经网络,ANN)算法是80年代机器学习界很是流行的算法,不过在90年代中途衰落。如今,携着“深度学习”之势,神经网络重装归来,从新成为最强大的机器学习算法之一。

神 经网络的诞生起源于对大脑工做机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发如今视觉与语音 的识别上效果都至关好。在BP算法(加速神经网络训练过程的数值算法)诞生之后,神经网络的发展进入了一个热潮。BP算法的发明人之一是前面介绍的机器学 习大牛Geoffrey Hinton(图1中的中间者)。

具体说来,神经网络的学习机理是什么?简单来讲,就是分解与整合。在著名的Hubel-Wiesel试验中,学者们研究猫的视觉分析机理是这样的。

图8 Hubel-Wiesel试验与大脑视觉机理

比 方说,一个正方形,分解为四个折线进入视觉处理的下一层中。四个神经元分别处理一个折线。每一个折线再继续被分解为两条直线,每条直线再被分解为黑白两个 面。因而,一个复杂的图像变成了大量的细节进入神经元,神经元处理之后再进行整合,最后得出了看到的是正方形的结论。这就是大脑视觉识别的机理,也是神经 网络工做的机理。

让咱们看一个简单的神经网络的逻辑架构。在这个网络中,分红 输入层,隐藏层,和输出层。输入层负责接收信号,隐藏层负责对数据的分解与处理,最后的结果被整合到输出层。每层中的一个圆表明一个处理单元,能够认为是 模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网络,也就是”神经网络”。


图9 神经网络的逻辑架构
在神经网络中,每一个处理单元事实上就是一个逻辑回归模型,逻辑回归模型接收上层的输入,把模型的预测结果做为输出传输到下一个层次。经过这样的过程,神经网络能够完成很是复杂的非线性分类。

下图会演示神经网络在图像识别领域的一个著名应用,这个程序叫作LeNet,是一个基于多个隐层构建的神经网络。经过LeNet能够识别多种手写数字,而且达到很高的识别精度与拥有较好的鲁棒性。

图10 LeNet的效果展现

右 下方的方形中显示的是输入计算机的图像,方形上方的红色字样“answer”后面显示的是计算机的输出。左边的三条竖直的图像列显示的是神经网络中三个隐 藏层的输出,能够看出,随着层次的不断深刻,越深的层次处理的细节越低,例如层3基本处理的都已是线的细节了。LeNet的发明人就是前文介绍过的机器 学习的大牛Yann LeCun(图1右者)。

进入90年代,神经网络的发展进入了一个瓶颈期。其主要缘由是尽管有BP算法的加速,神经网络的训练过程仍然很困难。所以90年代后期支持向量机(SVM)算法取代了神经网络的地位。

(3)SVM(支持向量机)

支持向量机算法是诞生于统计学习界,同时在机器学习界大放光彩的经典算法。

支持向量机算法从某种意义上来讲是逻辑回归算法的强化:经过给予逻辑回归算法更严格的优化条件,支持向量机算法能够得到比逻辑回归更好的分类界线。可是若是没有某类函数技术,则支持向量机算法最多算是一种更好的线性分类技术。

可是,经过跟高斯“核”的结合,支持向量机能够表达出很是复杂的分类界线,从而达成很好的的分类效果。“核”事实上就是一种特殊的函数,最典型的特征就是能够将低维的空间映射到高维的空间。

例以下图所示:

图11 支持向量机图例

咱们如何在二维平面划分出一个圆形的分类界线?在二维平面可能会很困难,可是经过“核”能够将二维空间映射到三维空间,而后使用一个线性平面就能够达成相似 效果。也就是说,二维平面划分出的非线性分类界线能够等价于三维平面的线性分类界线。因而,咱们能够经过在三维空间中进行简单的线性划分就能够达到在二维 平面中的非线性划分效果。

图12 三维空间的切割

支持向量机是一种数学成分很浓的机器学习算法(相对的,神经网络则有生物科学成分)。在算法的核心步骤中,有一步证实,即将数据从低维映射到高维不会带来最 后计算复杂性的提高。因而,经过支持向量机算法,既能够保持计算效率,又能够得到很是好的分类效果。所以支持向量机在90年代后期一直占据着机器学习中最 核心的地位,基本取代了神经网络算法。直到如今神经网络借着深度学习从新兴起,二者之间才又发生了微妙的平衡转变。

(4)聚类算法

前 面的算法中的一个显著特征就是个人训练数据中包含了标签,训练出的模型能够对其余未知数据预测标签。在下面的算法中,训练数据都是不含标签的,而算法的目 的则是经过训练,推测出这些数据的标签。这类算法有一个统称,即无监督算法(前面有标签的数据的算法则是有监督算法)。无监督算法中最典型的表明就是聚类 算法。

让咱们仍是拿一个二维的数据来讲,某一个数据包含两个特征。我但愿经过聚类算法,给他们中不一样的种类打上标签,我该怎么作呢?简单来讲,聚类算法就是计算种群中的距离,根据距离的远近将数据划分为多个族群。

聚类算法中最典型的表明就是K-Means算法。

(5)降维算法

降 维算法也是一种无监督学习算法,其主要特征是将数据从高维下降到低维层次。在这里,维度其实表示的是数据的特征量的大小,例如,房价包含房子的长、宽、面 积与房间数量四个特征,也就是维度为4维的数据。能够看出来,长与宽事实上与面积表示的信息重叠了,例如面积=长 × 宽。经过降维算法咱们就能够去除冗余信息,将特征减小为面积与房间数量两个特征,即从4维的数据压缩到2维。因而咱们将数据从高维下降到低维,不只利于表 示,同时在计算上也能带来加速。

刚才说的降维过程当中减小的维度属于肉眼可视的 层次,同时压缩也不会带来信息的损失(由于信息冗余了)。若是肉眼不可视,或者没有冗余的特征,降维算法也能工做,不过这样会带来一些信息的损失。可是, 降维算法能够从数学上证实,从高维压缩到的低维中最大程度地保留了数据的信息。所以,使用降维算法仍然有不少的好处。

降维算法的主要做用是压缩数据与提高机器学习其余算法的效率。经过降维算法,能够将具备几千个特征的数据压缩至若干个特征。另外,降维算法的另外一个好处是数 据的可视化,例如将5维的数据压缩至2维,而后能够用二维平面来可视。降维算法的主要表明是PCA算法(即主成分分析算法)。

(6)推荐算法

推荐算法是目前业界很是火的一种算法,在电商界,如亚马逊,天猫,京东等获得了普遍的运用。推荐算法的主要特征就是能够自动向用户推荐他们最感兴趣的东西,从而增长购买率,提高效益。推荐算法有两个主要的类别:

一类是基于物品内容的推荐,是将与用户购买的内容近似的物品推荐给用户,这样的前提是每一个物品都得有若干个标签,所以才能够找出与用户购买物品相似的物品,这样推荐的好处是关联程度较大,可是因为每一个物品都须要贴标签,所以工做量较大。

另外一类是基于用户类似度的推荐,则是将与目标用户兴趣相同的其余用户购买的东西推荐给目标用户,例如小A历史上买了物品B和C,通过算法分析,发现另外一个与小A近似的用户小D购买了物品E,因而将物品E推荐给小A。

两类推荐都有各自的优缺点,在通常的电商应用中,通常是两类混合使用。推荐算法中最有名的算法就是协同过滤算法。

(7)其余

除了以上算法以外,机器学习界还有其余的如高斯判别,朴素贝叶斯,决策树等等算法。可是上面列的六个算法是使用最多,影响最广,种类最全的典型。机器学习界的一个特点就是算法众多,发展百花齐放。

下面作一个总结,按照训练的数据有无标签,能够将上面算法分为监督学习算法和无监督学习算法,但推荐算法较为特殊,既不属于监督学习,也不属于非监督学习,是单独的一类。

监督学习算法:
线性回归,逻辑回归,神经网络,SVM

无监督学习算法:
聚类算法,降维算法

特殊算法:
推荐算法

除 了这些算法之外,有一些算法的名字在机器学习领域中也常常出现。但他们自己并不算是一个机器学习算法,而是为了解决某个子问题而诞生的。你能够理解他们为 以上算法的子算法,用于大幅度提升训练过程。其中的表明有:梯度降低法,主要运用在线型回归,逻辑回归,神经网络,推荐算法中;牛顿法,主要运用在线型回 归中;BP算法,主要运用在神经网络中;SMO算法,主要运用在SVM中。

5.机器学习的应用–大数据

说 完机器学习的方法,下面要谈一谈机器学习的应用了。无疑,在2010年之前,机器学习的应用在某些特定领域发挥了巨大的做用,如车牌识别,网络攻击防范, 手写字符识别等等。可是,从2010年之后,随着大数据概念的兴起,机器学习大量的应用都与大数据高度耦合,几乎能够认为大数据是机器学习应用的最佳场 景。

譬如,但凡你能找到的介绍大数据魔力的文章,都会说大数据如何准确准确预测到了某些事。例如经典的Google利用大数据预测了H1N1在美国某小镇的爆发。

图13 Google成功预测H1N1
百度预测2014年世界杯,从淘汰赛到决赛所有预测正确。

图14 百度世界杯成功预测了全部比赛结果

这些实在太神奇了,那么到底是什么缘由致使大数据具备这些魔力的呢?简单来讲,就是机器学习技术。正是基于机器学习技术的应用,数据才能发挥其魔力。

大 数据的核心是利用数据的价值,机器学习是利用数据价值的关键技术,对于大数据而言,机器学习是不可或缺的。相反,对于机器学习而言,越多的数据会越 可能提高模型的精确性,同时,复杂的机器学习算法的计算时间也迫切须要分布式计算与内存计算这样的关键技术。所以,机器学习的兴盛也离不开大数据的帮助。 大数据与机器学习二者是互相促进,相依相存的关系。

机器学习与大数据紧密联系。可是,必须清醒的认识到,大数据并不等同于机器学习,同理,机器学习也不等同于大数据。大数据中包含有分布式计算,内存数据库,多维分析等等多种技术。单从分析方法来看,大数据也包含如下四种分析方法:

1.大数据,小分析:即数据仓库领域的OLAP分析思路,也就是多维分析思想。
2.大数据,大分析:这个表明的就是数据挖掘与机器学习分析法。
3.流式分析:这个主要指的是事件驱动架构。
4.查询分析:经典表明是NoSQL数据库。

也就是说,机器学习仅仅是大数据分析中的一种而已。尽管机器学习的一些结果具备很大的魔力,在某种场合下是大数据价值最好的说明。但这并不表明机器学习是大数据下的惟一的分析方法。

机 器学习与大数据的结合产生了巨大的价值。基于机器学习技术的发展,数据可以“预测”。对人类而言,积累的经验越丰富,阅历也普遍,对将来的判断越准确。例 如常说的“经验丰富”的人比“初出茅庐”的小伙子更有工做上的优点,就在于经验丰富的人得到的规律比他人更准确。而在机器学习领域,根据著名的一个实验, 有效的证明了机器学习界一个理论:即机器学习模型的数据越多,机器学习的预测的效率就越好。见下图:

图15 机器学习准确率与数据的关系

经过这张图能够看出,各类不一样算法在输入的数据量达到必定级数后,都有相近的高准确度。因而诞生了机器学习界的名言:成功的机器学习应用不是拥有最好的算法,而是拥有最多的数据!

在 大数据的时代,有好多优点促使机器学习可以应用更普遍。例如随着物联网和移动设备的发展,咱们拥有的数据愈来愈多,种类也包括图片、文本、视频等非结构化 数据,这使得机器学习模型能够得到愈来愈多的数据。同时大数据技术中的分布式计算Map-Reduce使得机器学习的速度愈来愈快,能够更方便的使用。种 种优点使得在大数据时代,机器学习的优点能够获得最佳的发挥。

6.机器学习的子类–深度学习

近来,机器学习的发展产生了一个新的方向,即“深度学习”。

虽然深度学习这四字听起来颇为高大上,但其理念却很是简单,就是传统的神经网络发展到了多隐藏层的状况。

在 上文介绍过,自从90年代之后,神经网络已经消寂了一段时间。可是BP算法的发明人Geoffrey Hinton一直没有放弃对神经网络的研究。因为神经网络在隐藏层扩大到两个以上,其训练速度就会很是慢,所以实用性一直低于支持向量机。2006 年,Geoffrey Hinton在科学杂志《Science》上发表了一篇文章,论证了两个观点:

  1.多隐层的神经网络具备优异的特征学习能力,学习获得的特征对数据有更本质的刻画,从而有利于可视化或分类;

  2.深度神经网络在训练上的难度,能够经过“逐层初始化” 来有效克服。

图16 Geoffrey Hinton与他的学生在Science上发表文章

经过这样的发现,不只解决了神经网络在计算上的难度,同时也说明了深层神经网络在学习上的优异性。今后,神经网络从新成为了机器学习界中的主流强大学习技术。同时,具备多个隐藏层的神经网络被称为深度神经网络,基于深度神经网络的学习研究称之为深度学习。

因为深度学习的重要性质,在各方面都取得极大的关注,按照时间轴排序,有如下四个标志性事件值得一说:

2012 年6月,《纽约时报》披露了Google Brain项目,这个项目是由Andrew Ng和Map-Reduce发明人Jeff Dean共同主导,用16000个CPU Core的并行计算平台训练一种称为“深层神经网络”的机器学习模型,在语音识别和图像识别等领域得到了巨大的成功。Andrew Ng就是文章开始所介绍的机器学习的大牛(图1中右者)。

2012年11月,微软在中国天津的一次活动上公开演示了一个全自动的同声传译系统,讲演者用英文演讲,后台的计算机一鼓作气自动完成语音识别、英中机器翻译,以及中文语音合成,效果很是流畅,其中支撑的关键技术是深度学习;

2013年1月,在百度的年会上,创始人兼CEO李彦宏高调宣布要成立百度研究院,其中第一个重点方向就是深度学习,并为此而成立深度学习研究院(IDL)。

2013年4月,《麻省理工学院技术评论》杂志将深度学习列为2013年十大突破性技术(Breakthrough Technology)之首。

图17 深度学习的发展热潮

文章开头所列的三位机器学习的大牛,不只都是机器学习界的专家,更是深度学习研究领域的先驱。所以,使他们担任各个大型互联网公司技术掌舵者的缘由不只在于他们的技术实力,更在于他们研究的领域是前景无限的深度学习技术。

目前业界许多的图像识别技术与语音识别技术的进步都源于深度学习的发展,除了本文开头所提的Cortana等语音助手,还包括一些图像识别应用,其中典型的表明就是下图的百度识图功能。

图18 百度识图

深度学习属于机器学习的子类。基于深度学习的发展极大的促进了机器学习的地位提升,更进一步地,推进了业界对机器学习父类人工智能梦想的再次重视。

7.机器学习的父类–人工智能

人工智能是机器学习的父类。深度学习则是机器学习的子类。若是把三者的关系用图来代表的话,则是下图:


图19 深度学习、机器学习、人工智能三者关系

毫 无疑问,人工智能(AI)是人类所能想象的科技界最突破性的发明了,某种意义上来讲,人工智能就像游戏最终幻想的名字同样,是人类对于科技界的最终梦想。 从50年代提出人工智能的理念之后,科技界,产业界不断在探索,研究。这段时间各类小说、电影都在以各类方式展示对于人工智能的想象。人类能够发明相似于 人类的机器,这是多么伟大的一种理念!但事实上,自从50年代之后,人工智能的发展就磕磕碰碰,未有见到足够震撼的科学技术的进步。

总 结起来,人工智能的发展经历了以下若干阶段,从早期的逻辑推理,到中期的专家系统,这些科研进步确实使咱们离机器的智能有点接近了,但还有一大段距离。直 到机器学习诞生之后,人工智能界感受终于找对了方向。基于机器学习的图像识别和语音识别在某些垂直领域达到了跟人相媲美的程度。机器学习令人类第一次如此 接近人工智能的梦想。

事实上,若是咱们把人工智能相关的技术以及其余业界的技术作一个类比,就能够发现机器学习在人工智能中的重要地位不是没有理由的。

人类区别于其余物体,植物,动物的最主要区别,做者认为是“智慧”。而智慧的最佳体现是什么?

是计算能力么,应该不是,心算速度快的人咱们通常称之为天才。
是反应能力么,也不是,反应快的人咱们称之为灵敏。
是记忆能力么,也不是,记忆好的人咱们通常称之为过目不忘。
是推理能力么,这样的人我也许会称他智力很高,相似“福尔摩斯”,但不会称他拥有智慧。
是知识能力么,这样的人咱们称之为博闻广,也不会称他拥有智慧。

想一想看咱们通常形容谁有大智慧?圣人,诸如庄子,老子等。智慧是对生活的感悟,是对人生的积淀与思考,这与咱们机器学习的思想何其类似?经过经验获取规律,指导人生与将来。没有经验就没有智慧。

 

图20 机器学习与智慧

那么,从计算机来看,以上的种种能力都有种种技术去应对。

例如计算能力咱们有分布式计算,反应能力咱们有事件驱动架构,检索能力咱们有搜索引擎,知识存储能力咱们有数据仓库,逻辑推理能力咱们有专家系统,可是,惟有对应智慧中最显著特征的概括与感悟能力,只有机器学习与之对应。这也是机器学习能力最能表征智慧的根本缘由。

让咱们再看一下机器人的制造,在咱们具备了强大的计算,海量的存储,快速的检索,迅速的反应,优秀的逻辑推理后咱们若是再配合上一个强大的智慧大脑,一个真正意义上的人工智能也许就会诞生,这也是为何说在机器学习快速发展的如今,人工智能可能再也不是梦想的缘由。

人 工智能的发展可能不只取决于机器学习,更取决于前面所介绍的深度学习,深度学习技术因为深度模拟了人类大脑的构成,在视觉识别与语音识别上显著性的突破了 原有机器学习技术的界限,所以极有多是真正实现人工智能梦想的关键技术。不管是谷歌大脑仍是百度大脑,都是经过海量层次的深度学习网络所构成的。也许借 助于深度学习技术,在不远的未来,一个具备人类智能的计算机真的有可能实现。

最 后再说一下题外话,因为人工智能借助于深度学习技术的快速发展,已经在某些地方引发了传统技术界达人的担心。真实世界的“钢铁侠”,特斯拉CEO马斯克就 是其中之一。最近马斯克在参加MIT讨论会时,就表达了对于人工智能的担心。“人工智能的研究就相似于召唤恶魔,咱们必须在某些地方增强注意。”

图21 马斯克与人工智能

尽 管马斯克的担忧有些危言耸听,可是马斯克的推理不无道理。“若是人工智能想要消除垃圾邮件的话,可能它最后的决定就是消灭人类。”马斯克认为预防此类现象 的方法是引入政府的监管。在这里做者的观点与马斯克相似,在人工智能诞生之初就给其加上若干规则限制可能有效,也就是不该该使用单纯的机器学习,而应该是 机器学习与规则引擎等系统的综合可以较好的解决这类问题。由于若是学习没有限制,极有可能进入某个误区,必需要加上某些引导。正如人类社会中,法律就是一 个最好的规则,杀人者死就是对于人类在探索提升生产力时不可逾越的界限。

在这里,必须提一下这里的规则与机器学习引出的规律的不一样,规律不是一个严格意义的准则,其表明的更可能是几率上的指导,而规则则是神圣不可侵犯,不可修改的。规律能够调整,但规则是不能改变的。有效的结合规律与规则的特色,能够引导出一个合理的,可控的学习型人工智能。

8.机器学习的思考–计算机的潜意识

最后,做者想谈一谈关于机器学习的一些思考。主要是做者在平常生活总结出来的一些感悟。

回 想一下我在节1里所说的故事,我把小Y过往跟我相约的经历作了一个罗列。可是这种罗列以往全部经历的方法只有少数人会这么作,大部分的人采用的是更直接的 方法,即利用直觉。那么,直觉是什么?其实直觉也是你在潜意识状态下思考经验后得出的规律。就像你经过机器学习算法,获得了一个模型,那么你下次只要直接 使用就好了。那么这个规律你是何时思考的?多是在你无心识的状况下,例如睡觉,走路等状况。这种时候,大脑其实也在默默地作一些你察觉不到的工做。

这 种直觉与潜意识,我把它与另外一种人类思考经验的方式作了区分。若是一我的勤于思考,例如他会天天作一个小结,譬如“吾日三省吾身”,或者他常常与同伴讨论 最近工做的得失,那么他这种训练模型的方式是直接的,明意识的思考与概括。这样的效果很好,记忆性强,而且更能得出有效反应现实的规律。可是大部分的人可 能不多作这样的总结,那么他们得出生活中规律的方法使用的就是潜意识法。

举一 个做者本人关于潜意识的例子。做者本人之前没开过车,最近一段时间买了车后,每天开车上班。我天天都走固定的路线。有趣的是,在一开始的几天,我很是紧张 的注意着前方的路况,而如今我已经在无心识中就把车开到了目标。这个过程当中个人眼睛是注视着前方的,个人大脑是没有思考,可是我手握着的方向盘会自动的调 整方向。也就是说。随着我开车次数的增多,我已经把我开车的动做交给了潜意识。这是很是有趣的一件事。在这段过程当中,个人大脑将前方路况的图像记录了下 来,同时大脑也记忆了我转动方向盘的动做。通过大脑本身的潜意识思考,最后生成的潜意识能够直接根据前方的图像调整我手的动做。假设咱们将前方的录像交给 计算机,而后让计算机记录与图像对应的驾驶员的动做。通过一段时间的学习,计算机生成的机器学习模型就能够进行自动驾驶了。这很神奇,不是么。其实包括 Google、特斯拉在内的自动驾驶汽车技术的原理就是这样。

除了自动驾驶汽车之外,潜意识的思想还能够扩展到人的交际。譬如说服别人,一个最佳的方法就是给他展现一些信息,而后让他本身去概括得出咱们想要的结论。就比如在阐述一个观点时,用一个事实,或者一个故事,比大段的道理要好不少。从古到今,但凡优秀的说客,无不采用的是这种方法。春秋战国时期,各国合纵连横,常常有各类说客去跟一国之君交流,直接告诉君主该作什么,无异于自寻死路,可是跟君主讲故事,经过这些故事让君主恍然大悟,就是一种正确的过程。这里面有许多杰出的表明,如墨子,苏秦等等。

基 本上全部的交流过程,使用故事说明的效果都要远胜于阐述道义之类的效果好不少。为何用故事的方法比道理或者其余的方法好不少,这是由于在人成长的过程, 通过本身的思考,已经造成了不少规律与潜意识。若是你告诉的规律与对方的不相符,颇有可能出于保护,他们会本能的拒绝你的新规律,可是若是你跟他讲一个故 事,传递一些信息,输送一些数据给他,他会思考并自我改变。他的思考过程实际上就是机器学习的过程,他把新的数据归入到他的旧有的记忆与数据中,通过从新 训练。若是你给出的数据的信息量很是大,大到调整了他的模型,那么他就会按照你但愿的规律去作事。有的时候,他会本能的拒绝执行这个思考过程,可是数据一 旦输入,不管他但愿与否,他的大脑都会在潜意识状态下思考,而且可能改变他的见解。

若是计算机也拥有潜意识(正如本博客的名称同样),那么会怎么样?譬如让计算机在工做的过程当中,逐渐产生了自身的潜意识,因而甚至能够在你不须要告诉它作什么时它就会完成那件事。这是个很是有意思的设想,这里留给各位读者去发散思考吧。

9.总结

本 文首先介绍了互联网界与机器学习大牛结合的趋势,以及使用机器学习的相关应用,接着以一个“等人故事”展开对机器学习的介绍。介绍中首先是机器学习的概念 与定义,而后是机器学习的相关学科,机器学习中包含的各种学习算法,接着介绍机器学习与大数据的关系,机器学习的新子类深度学习,最后探讨了一下机器学习 与人工智能发展的联系以及机器学习与潜意识的关联。通过本文的介绍,相信你们对机器学习技术有必定的了解,例如机器学习是什么,它的内核思想是什么(即统 计和概括),经过了解机器学习与人类思考的近似联系能够知晓机器学习为何具备智慧能力的缘由等等。其次,本文漫谈了机器学习与外延学科的关系,机器学习 与大数据相互促进相得益彰的联系,机器学习界最新的深度学习的迅猛发展,以及对于人类基于机器学习开发智能机器人的一种展望与思考,最后做者简单谈了一点 关于让计算机拥有潜意识的设想。

机器学习是目前业界最为Amazing与火热 的一项技术,从网上的每一次淘宝的购买东西,到自动驾驶汽车技术,以及网络攻击抵御系统等等,都有机器学习的因子在内,同时机器学习也是最有可能令人类完 成AI dream的一项技术,各类人工智能目前的应用,如微软小冰聊天机器人,到计算机视觉技术的进步,都有机器学习努力的成分。做为一名当代的计算机领域的开 发或管理人员,以及身处这个世界,使用者IT技术带来便利的人们,最好都应该了解一些机器学习的相关知识与概念,由于这能够帮你更好的理解为你带来莫大便 利技术的背后原理,以及让你更好的理解当代科技的进程。

10.后记

这篇文档花了做者两个月的时间,终于在2014年的最后一天的前一天基本完成。经过这篇文章,做者但愿对机器学习在国内的普及作一点贡献,同时也是做者本人本身对于所学机器学习知识的一个融汇贯通,总体概括的提升过程。

相关文章
相关标签/搜索