2018年11月24日星期六
我分六篇文章,大概把我学到的人工智能课程给大家介绍一下,与君共享。
这六篇文章会从人工智能的历史开始讲起,然后机器学习的核心方法——SVM的基本知识,再讲决策树的相关知识,最后讲近几年非常受欢迎的深度学习。
人工智能是利用智能学习算法,将大量数据中的经验来改善系统自身的性能,从而实现人类智慧所能作的事情。可以这么说,人工智能离不开数据分析和机器学习,研究智能数据分析的理论和方法已经成为人工智能的必要基础之一。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程进行模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。
人工智能的开始始终绕不开艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日)这个人,作为一个二战的英雄,一个伟大的数学家,密码学家,逻辑学家,他有着独特的想法,抽象的思维,传奇的经历(他的个人经历可以看2014年的电影《模仿游戏》,一个战争胜利背后的英雄)。
1950年,阿兰·麦席森·图灵提出关于机器思维的问题,他的论文“计算机和智能(Computingmachiery and intelligence),引起了广泛的注意和深远的影响。1950年10月,图灵发表论文《机器能思考吗》。这一划时代的作品,使图灵赢得了“人工智能之父”的桂冠。也宣告了人工智能(AI)时代的到来。
当然,事物的发展绝非偶然,AI时代的到来肯定也有着历史的必然,非常古老的历史我们就不谈了,直接从图灵开始,我们以时间发展的轨迹来介绍其中技术的演变,我在以后的文章中再详细介绍其中一些关键的人物,让我们膜拜大神吧。
一、1950-1970年代,人工智能的“推理时代”。
赫本于1949年基于神经心理学的学习机制开启机器学习的第一步。此后被称为Hebb学习规则。Hebb学习规则是一个无监督学习规则,这种学习的结果是使网络能够提取训练集的统计特性,从而把输入信息按照它们的相似性程度划分为若干类。这一点与人类观察和认识世界的过程非常吻合,人类观察和认识世界在相当程度上就是在根据事物的统计特征进行分类。
从上面的公式可以看出,权值调整量与输入输出的乘积成正比,显然经常出现的模式将对权向量有较大的影响。在这种情况下,Hebb学习规则需预先定置权饱和值,以防止输入和输出正负始终一致时出现权值无约束增长。
Hebb学习规则与“条件反射”机理一致,并且已经得到了神经细胞学说的证实。比如巴甫洛夫的条件反射实验:每次给狗喂食前都先响铃,时间一长,狗就会将铃声和食物联系起来。以后如果响铃但是不给食物,狗也会流口水(当然这个实验也被认为是广告学、神经学的开始)。
1950年,阿兰·图灵创造了图灵测试来判定计算机是否智能。图灵测试认为,如果一台机器能够与人类展开对话(通过电传设备)而不能被辨别出其机器身份,那么称这台机器具有智能。这一简化使得图灵能够令人信服地说明“思考的机器”是可能的。
2014年6月8日,一个叫做尤金·古斯特曼的聊天机器人成功让人类相信它是一个13岁的男孩,成为有史以来首台通过图灵测试的计算机。这被认为是人工智能发展的一个里程碑事件。但是这比图灵自己预测的时间晚了整整14年。
1956年夏季,以麦卡赛、明斯基、罗切斯特和申农等为首的一批有远见卓识的年轻科学家在一起聚会,共同研究和探讨用机器模拟智能的一系列有关问题,并首次提出了“人工智能”这一术语,它标志着“人工智能”这门新兴学科的正式诞生。
1957年,罗森·布拉特基于神经感知科学背景提出了第二模型,非常的类似于今天的机器学习模型。这在当时是一个非常令人兴奋的发现,它比赫布的想法更适用。基于这个模型罗森·布拉特设计出了第一个计算机神经网络——感知机(the perceptron),它模拟了人脑的运作方式。罗森·布拉特对感知机的定义如下:
感知机旨在说明一般智能系统的一些基本属性,它不会因为个别特例或通常不知道的东西所束缚住,也不会因为那些个别生物有机体的情况而陷入混乱。
The perceptron is designed to illustrate some of the fundamental properties of intelligent systems in general, without becoming too deeply enmeshed in the special, and frequently unknown, conditions which hold for particular biological organisms.
3年后,维德罗首次使用Delta学习规则(即最小二乘法)用于感知器的训练步骤,创造了一个良好的线性分类器。
1967年,最近邻算法(The nearest neighbor algorithm)出现,使计算机可以进行简单的模式识别。kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。这就是所谓的“少数听从多数”原则。
1969年马文·明斯基提出了著名的XOR问题,指出感知机在线性不可分的数据分布上是失效的。此后神经网络的研究者进入了寒冬,直到 1980 年才再一次复苏。
从60年代中到70年代末,机器学习的发展步伐几乎处于停滞状态。无论是理论研究还是计算机硬件限制,使得整个人工智能领域的发展都遇到了很大的瓶颈。虽然这个时期温斯顿(Winston)的结构学习系统和海斯·罗思(Hayes Roth)等的基于逻辑的归纳学习系统取得较大的进展,但只能学习单一概念,而且未能投入实际应用。
这一时期,一般认为只要机器被赋予逻辑推理能力就可以实现人工智能。不过此后人们发现,只是具备了逻辑推理能力,机器还远远达不到智能化的水平。 60年代末,70年代初神经网络学习机因理论缺陷未能达到预期效果而转入低潮。这个时期的研究目标是模拟人类的概念学习过程,并采用逻辑结构或图结构作为机器内部描述。机器能够采用符号来描述概念(符号概念获取),并提出关于学习概念的各种假设。事实上,这个时期整个AI领域都遭遇了瓶颈。当时的计算机有限的内存和处理速度不足以解决任何实际的AI问题。要求程序对这个世界具有儿童水平的认识,研究者们很快发现这个要求太高了:1970年没人能够做出如此巨大的数据库,也没人知道一个程序怎样才能学到如此丰富的信息。可以说是计算能力的滞后导致了AI技术的停滞,这个阶段尽管学术思想已经达到很高的水平,但是工业界的发展严重滞后,科学与技术是相辅相成的,任何一方发展滞后都会拖累另一方的发展。
二、1970-1990年代,人工智能的”知识工程“时代。
这一时期,人们认为要让机器变得有智能,就应该设法让机器学习知识,于是计算机系统得到了大量的开发。后来人们发现,把知识总结出来再灌输给计算机相当困难。举个例子来说,想要开发一个疾病诊断的人工智能系统,首先要找好多有经验的医生总结出疾病的规律和知识,随后让机器进行学习,但是在知识总结的阶段已经花费了大量的人工成本,机器只不过是一台执行知识库的自动化工具而已,无法达到真正意义上的智能水平进而取代人力工作。
伟博斯在1981年的神经网络反向传播(BP)算法中具体提出多层感知机模型(即著名的“人工神经网络”,ANN)。虽然BP算法早在1970年就已经以“自动微分的反向模型(reverse mode of automatic differentiation)”为名提出来了,但直到此时才真正发挥效用,并且直到今天BP算法仍然是神经网络架构的关键因素。有了这些新思想,神经网络的研究又加快了。
在1985-1986年,神经网络研究人员(鲁梅尔哈特,辛顿,威廉姆斯-赫,尼尔森)相继提出了使用BP算法训练的多参数线性规划(MLP)的理念,成为后来深度学习的基石。
在另一个谱系中,昆兰于1986年提出了一种非常出名的机器学习算法,我们称之为“决策树”,更具体的说是ID3算法。这是另一个主流机器学习算法的突破点。此外ID3算法也被发布成为了一款软件,它能以简单的规划和明确的推论找到更多的现实案例,而这一点正好和神经网络黑箱模型相反。
决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。
在ID3算法提出来以后,研究社区已经探索了许多不同的选择或改进(如ID4、回归树、CART算法等),这些算法仍然活跃在机器学习领域中。
1990年, Schapire最先构造出一种多项式级的算法,这就是最初的Boosting算法。一年后 ,Freund提出了一种效率更高的Boosting算法。但是,这两种算法存在共同的实践上的缺陷,那就是都要求事先知道弱学习算法学习正确的下限。
1992年,支持向量机(SVM)的出现是机器学习领域的另一大重要突破,该算法具有非常强大的理论地位和实证结果。在90年代曾风靡整个数据挖掘、机器学习、模式识别领域,至今依然很火热。那一段时间机器学习研究也分为NN和SVM两派。然而,在2000年左右提出了带核函数的支持向量机后。SVM在许多以前由NN占据的任务中获得了更好的效果。此外,SVM相对于NN还能利用所有关于凸优化、泛化边际理论和核函数的深厚知识。因此SVM可以从不同的学科中大力推动理论和实践的改进(当然现在SVM依然具有强大的生命力,深度学习算法无法解决问题时,SVM依然是很好的工具)。
神经网络与支持向量机一直处于“竞争”关系。SVM应用核函数的展开定理,无需知道非线性映射的显式表达式;由于是在高维特征空间中建立线性学习机,所以与线性模型相比,不但几乎不增加计算的复杂性,而且在某种程度上避免了“维数灾难”(大概意思就是在高维空间质量会无限逼近他的表面,这是多么恐怖的事情,你的皮肤破了一个口,会发现自己是空的)。
而神经网络遭受到又一个质疑,通过Hochreiter等人1991年和Hochreiter等人在2001年的研究表明在应用BP算法学习时,NN神经元饱和后会出现梯度损失(gradient loss)的情况。简单地说,早先的神经网络算法比较容易过训练,大量的经验参数需要设置;训练速度比较慢,在层次比较少(小于等于3)的情况下效果并不比其它方法更优,因此这一时期NN与SVM相比处于劣势。
三、2000年至今,人工智能的”数据挖掘“时代。
随着各种机器学习算法的提出和应用,特别是深度学习技术的发展,人们希望机器能够通过大量数据分析,从而自动学习出知识并实现智能化水平。这一时期,随着计算机硬件水平的提升,大数据分析技术的发展,机器采集、存储、处理数据的水平有了大幅提高。特别是深度学习技术对知识的理解比之前浅层学习有了很大的进步,Alpha Go和中韩围棋高手过招大幅领先就是目前人工智能的高水平代表之一。
2001年,决策树模型由布雷曼博士提出,它是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。随机森林的名称中有两个关键词,一个是“随机”,一个就是“森林”。“森林”我们很好理解,一棵叫做树,那么成百上千棵就可以叫做森林了,这样的比喻还是很贴切的,其实这也是随机森林的主要思想—集成思想的体现。
其实从直观角度来解释,每棵决策树都是一个分类器(假设现在针对的是分类问题),那么对于一个输入样本,N棵树会有N个分类结果。而随机森林集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出,这就是一种最简单的 Bagging 思想。
在机器学习发展分为两个部分,浅层学习(Shallow Learning)和深度学习(Deep Learning)。浅层学习起源上世纪20年代人工神经网络的反向传播算法的发明,使得基于统计的机器学习算法大行其道,虽然这时候的人工神经网络算法也被称为多层感知机,但由于多层网络训练困难,通常都是只有一层隐含层的浅层模型。
神经网络研究领域领军者Hinton在2006年提出了神经网络Deep Learning算法(即深度学习),使神经网络的能力大大提高,向支持向量机(SVM)发出挑战。 2006年,机器学习领域的泰斗Hinton和他的学生Salakhutdinov在顶尖学术刊物《Scince》上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。(随后,随着工业界GPU在大型计算机上的应用,深度学习迎来了爆发)
这篇文章有两个主要的讯息:1)很多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻划,从而有利于可视化或分类;2)深度神经网络在训练上的难度,可以通过“逐层初始化”( layer-wise pre-training)来有效克服,在这篇文章中,逐层初始化是通过无监督学习实现的。
当前统计学习领域最热门方法主要有deep learning和SVM(supportvector machine),它们是统计学习的代表方法。可以认为神经网络与支持向量机都源自于感知机。
神经网络模型貌似能够实现更加艰难的任务,如目标识别、语音识别、自然语言处理等。但是,应该注意的是,这绝对不意味着其他机器学习方法的终结。尽管深度学习的成功案例迅速增长,但是对这些模型的训练成本是相当高的,调整外部参数也是很麻烦。同时,SVM的简单性促使其仍然最为广泛使用的机器学习方式。
现在深度学习已经应用在各类学科之中,并且很多都取得了很好的效果。
2016年3月,阿尔法围棋与围棋世界冠军、职业九段棋手李世石进行围棋人机大战,以4比1的总比分获胜;2016年末2017年初,该程序在中国棋类网站上以“大师”(Master)为注册帐号与中日韩数十位围棋高手进行快棋对决,连续60局无一败绩;2017年5月,在中国乌镇围棋峰会上,它与排名世界第一的世界围棋冠军柯洁对战,以3比0的总比分获胜。围棋界公认阿尔法围棋的棋力已经超过人类职业围棋顶尖水平,在GoRatings网站公布的世界职业围棋排名中,其等级分曾超过排名人类第一的棋手柯洁。而李世石取得的那一场胜利也被认为是人类的最后一场胜利,该事件也被认为是人工智能发展的里程碑。
笔者在这里提一个问题,你认为“人工智能”能取代人类吗?
参考文献:
http://smart.blogchina.com/507540031.html
http://blog.csdn.net/andrewseu/article/details/53488664