大家都知道,现在要说计算机领域什么最火,估计非人工智能莫属了。
我们看一些人工智能领域的一些科普资料,甚至有一定专业程度的文章,如果不是专业领域的人,都会被各种字眼的学习搞的晕头转向。
比如,我自己之前就分不清人工智能、机器学习、深度学习、神经网络、卷积网络等等,到底有什么区别。
后来,又冒出了监督学习、无监督学习、强化学习、迁移学习、集成学习等,更是迷了眼,到最后,都得自己欺骗自己,反正都是学习就是了。
这是不对的。我觉得还是有必要对它们进行简单易懂的介绍和区分。掌握这些概念的差异之后,再去看相关领域的文章和资料,无论是理解程度和思考深度,都会有提升的。也就是你的收获会更大。而且,分清概念,也算是打基础的基础了。
所有领域都是这样的。比如,学习围棋的时候,我们也是从最简单的规则和概念走起的。什么长、立、断、接,冲、挖、虎、打等等。可见,人类掌握各行各业的本质过程是相通的。
好了,那我们今天就来看看,这些花了你眼的“学习”,到底都是什么鬼。让我们从历史发展过程来总结它们吧。
以前,提到人工智能,大家的感觉是很不智能,感觉这个东西还是存在于将来,存在于科幻中的。怎么说呢,就是提起人工智能,那就是人工智能;说实际生活,就是实际生活。两个是割裂开的。
现在就不是这样了。提到人工智能,人们内心感受到的,不再单单是人工智能这个东西,而是会很自然的将其与实际生活关联起来,这就是巨大的进步和转变。
举个例子。在阿拉法狗之前,提到机器下围棋,大家都觉得,那是小孩子的玩具,不入职业选手眼的。而现在,大家都已经达成了另一种共识,就是人是下不过机器的。
插一句,从这个转变,也进一步的提醒我们自身,连机器都在不断学习,我们人类自身不断的学习更是有必要的。
但是,学习是需要有一定方法的。两个理由:
一是,碎片化的东西,我们称之为信息,而非知识。知识需要成体系。
二是,人类发展过程中,积累了大量知识,现在每往前走一步,都需要付出更多的努力,而且深度越来越深,领域也越来越细分。就是说,越来越复杂了。
基于这两个理由,我觉得掌握一门技能,需要有一个关于这门技能的知识树构建在脑海中。这样至少是成体系的,脉络是清楚的。而上面所说的概念,自然会在这棵树它该有的位置上挂着。
也许每个人看到这棵树的丰富程度不同。科普级别的,可能就是一个大概外形;专业级别的,就会看到更多的枝叶;而专家或者科学家级别的,可能就会看到叶片上的纹理。
但是无论你是什么级别的,大家看到的应该都是同一棵树才对,否则都是自说自话了。这也就是为啥要有统一的概念,目的就是让大家都在一个频道上。
废话不多说,下面就让我们沿着这条路来试试吧。
我们先来看人工智能。大家都能感觉到,这是一个比较泛化的概念,或者说是一个笼统的概念。其实,要更好的理解它,我们需要将其拆分为:人工和智能。
首先,我们看什么是智能。我觉得智能是和我们人本身相关的。粗浅的一面来说,似乎就是聪明程度,当然是跟人来比的。
我们说人是智能物种,不单单是因为我们掌握了语言和文字,掌握了沟通交流以及知识传递的方法,也不单单是因为我们会使用工具,而是在这座星球上,我们是唯一智慧的存在。
举个简单的例子,你是否觉得动物也属于智能物种?更进一步的,三岁的孩子,是否具有智能?对这个问题的认知,决定你是否认为一台机器也具有智能。
显然,这个问题,它并不是有那么清晰的界限的。
图灵对这个问题也有过思考。著名的图里测试,可以看做人类早期系统的对这个问题的思考。说早期,是因为再此之前的,可能更偏向于想象,掺杂了科幻成分。
这里既然提到了,就顺便借用一下想象。想象一下,如果你身边出现了一台机器,能够听懂你说的,能够跟你正常交流,你是否觉得它是智能的?再想象一下,在浩瀚的宇宙中,如果存在一种更高级的智慧生物,他们看我们,就像我们看蚂蚁,那么他们会觉得我们是智能的吗?
所以,这里说的智能,总归是以我们人类为标准的。
其次,这概念里还有另外一个修饰,就是人工。也就是说,这种智能是人力的作用,不是天生具有的。但是,并没有限制它的扩展。
还是类比人类。我们的智能不管是因为进化还是什么途径过来的,总之是天生具备的,也就是出生后,你的大脑就具备智能的能力,然后通过学习扩展能够增加这种能力。机器也一样。当我们人类制造了它后,它天生也应该就具有智能的潜力,不管这种结构是神经网络还是知识库等。同样,也能够不断学习扩展。
这就是人工产生的智能。跟自然天生产生的智能相对应。
事实上,早期还有一个概念,叫机器智能。维基百科上,机器智能被重定向到人工智能,二者被认为是同义词。
其实,我觉得人工智能这个概念比机器智能要好。说机器智能,可能跟早期的认知环境有关系。也许有一天,我们能够将动物大脑改造的更加智能,但同样是人工赋予的智能。这就不是机器智能了,而是另一种人工智能。只不过现在,我们的许多工作还仍然是在物理机器上展开。
从另一个角度来看,机器智能更强调了智能的一种载体。而人工智能,我们把它看做一个整体,不去刻意的强调人工--智能,那么你感觉到的就是一个全局整体的东西。怎么说呢,就是跟人对等的一个东西。这一点似乎只能意会,慢慢感受吧。
关于人工智能这个词,也就是AI(artificial intelligence),最早的来源,或者说它的起源,业界公认的都是1956年的达特茅斯会议。当时参会的一些人物后来都成了这一领域的重量级人物,比如明斯基、麦卡锡、纽厄尔、司马贺等。感兴趣的读者,可以去看看人工智能简史这本书:
好了,让我们把人工智能放到树根上,继续开始这段旅程吧。
当我们展开这棵树时,我们还是需要跟自身进行对比。前面我们已经提到了,当把人工智能看做一个整体时,得到的是跟人对等的一个东西。为了讨论方便,我们就以机器来说明吧。
假设我们旁边有一个真正的人工智能,实体就是人工智能机器人,我们认为它是真正的人工智能,当它:
1 像我们一样,具备获取信息的五感
视觉
听觉
嗅觉
触觉
味觉
2 像我们一样,能够处理获取的信息,形成自己的意识。
如果以此为标准,可以看到,人工智能这棵大树的视觉和听觉分支在蓬勃生长,而嗅觉、触觉及味觉,则发育迟缓,不成比例。当然,这与现有技术的发展是对应的。自然,现有人工智能做出的判断,大都是基于视觉和听觉的。我们将文字符号等信息的输入,也作为是视觉的特例。
再看意识层面这个分支。现有人工智能的感情色彩都是人类赋予的,如果说它们有的话。它对正确和错误的认知,也是人类赋予的。很难说人类的决定是完全客观的,就像我们听到好和坏,我想如果能够用电信号来表征人的反应的话,肯定是不一样的。但是对机器而言,则真正的仅仅是一个符号而已。转换成电信号,可以认为本质上是一样的。所以,机器的意识目前还脱离不了人类的意识。
再回到整体来看,显然,人工智能这棵大树,并没有因为一些枝杈的营养不良而限制另一些枝杈的疯长。即使是这些疯长的枝杈,也不是一路疯长,而是展现了周期律。到现在为止,大概留下了三个历史年轮:
第一个历史年轮是20世纪50年代后期到60年代。这一时期通过计算机的推论和搜索,解决具体的问题。比如代数几何证明,路径搜索,下棋等。但是由于机器的计算性能不够,效果受限。加之并没有解决实际生活中的问题,很快相关的投资就被停止了,第一次AI浪潮就此结束,并进入了20世纪70年代的寒冬。
第二个历史年轮是20世界80年代后期到90年代初,出现了专家系统。这一时期主要利用了计算机的存储能力,给其灌输知识,使其具有智能。相比于第一次浪潮的无法解决实际问题的硬伤,这一时期的人工智能,在这方面取得了较大的进步。但是知识是无穷无尽的,录入知识是一个庞大的工作,而且存在领域受限的问题及怎么才能更有效的在计算机中表示知识。随着这些问题的放大,人工智能再次进入寒冬。
第三个历史年轮是21世纪以来到现在。首先,互联网及搜索引擎的出现,使得知识的获取比以前容易多了。简单理解,我们认为,互联网存储了大量的知识,这些知识可以被方便的获取以及再加工处理。其次,计算机的性能得到了飞速提高。不说大型的高性能计算机,其性能已经不可同日而语,即使是消费型的小型机,其性能也能达到以前大型机的性能。加之互联网、云计算、并行及分布式计算等相关技术的发展,整合机器性能的手段也丰富了许多。这样,以前一些效果不佳的模型,在新的基础设施和大量数据的加持下,取得了瞩目的实用成就。像神经网络这种以前难以施展开的技能,在新的舞台上则大放光彩。
整体上,人工智能不仅留下了历史年轮,还显现了向阳面和背阴面。
不同的人对于人工智能的发展方向有不同的判断。这种走不同路子的结果,就是留下了不同的流派。这里简单提两个:符号派和统计派。
符号派倾向于使用类似人类掌握知识的概念树结构,使机器具有智能。这一派目前来看,处于背阴面。
而统计派,则倾向于利用大量数据的学习来获取规律,做出判断。这一派目前是处于向阳面的。
要说哪一派能代表真正的人工智能,我倒觉得大家互为补充更好一些,而不应非此即彼,毕竟都是这棵大树的一部分。
说完人工智能,我们就来看学习。
虽然我们总在讲人工智能,但是现实中,更多的还是在机器智能这个范围内活动。随着技术的发展,现今,通过学习,使机器变得智能,在实际应用中越来越流行。这个流行,表示了两层意思,一个是越来越行得通,因为数据可以轻易获取,计算性能又足够;另一个是越来越有效果。这样二者的相互促进,就形成了良性循环。
通过学习,让机器具有智能,这种学习就是机器学习。学习的是什么呢?学习的是事物的特征和规则。这听着可能有点抽象。
举个例子,如何让机器识别图片中的动物?只要让机器学习动图的各种特征,再根据特征做出判断即可。猫有猫的专属特征,狗也有够自身的特征,总有一些差异,能够将二者区分开来,这就是要学习的内容。
显然,机器学习也是一个很泛的概念,所以,它应该在人工智能这棵大树的一个粗干上。
我们知道,人一辈子都在学习,每个人都有自己的学习方法。有的人擅长诵记,有的人擅长理解。机器学习,也有不同的方法,目前可以分为三类,分别是:
监督学习
无监督学习
强化学习
监督学习,简单说,就是给机器的数据都是打了标签的。比如前面的让机器识别动物,那么学习过程中,给机器一张动物的照片时,就要告诉机器,这是什么动物,猫还是狗。
通过监督学习,我们一般用来解决两类问题:
分类问题
回归问题
分类问题,简单说就是让机器判断输入的数据应该归为哪一类。是猫还是狗,就可以归为这一类。
回归问题,简单说就是获得能够解释数据的线,然后对数据的趋势做出判断。比如根据历年降水量预测今年的降水量。历史数据可能是一条直线或者曲线,新的数据我们认为也是在这个直线或者曲线的延长路径上。
无监督学习,就是不告诉机器正确答案,让机器对数据正确分类。其实,生活中有些事也并没有明确的正确答案,此时,就该无监督学习施展抱负了。
比如,判断一个人的兴趣爱好。有些人喜欢阅读科幻小说,有些人则喜欢历史小说,这其中并没有对错之分,但是浏览各种科幻小说和浏览各种历史小说的人,是具有一些特征的,此时,通过机器学习,可以将他们正确的聚类。经典的聚类算法k-means算法,就是做类似这样的事情的。
我再来看强化学习。强化学习就是通过奖励和惩罚,让机器不断学习的。这跟训练猴子表演类似。
一开始,机器处于茫然无措的状态,然后随机行动。之后,通过不断的投喂、试错、奖惩,机器则通过规避惩罚,追求奖励,不断强化学习成果。
上面这三种都是大的方向,每一类下面,可能有多种具体算法。所以,他们都是机器学习粗干上的大分支。
下面我们就进一步来看看一些具体的机器学习算法:
神经网络:神经网络是模拟人类大脑工作而设计的一种机器学习算法。神经网络出现的很早,上个世纪就已经展开了很多相关研究,但是成名却是进入21世纪后的事了。
神经网络的存在是很自然的一件事。既然要智能,那最直观的方法就是研究我们大脑的工作机制,并加以模仿,不就可以了。但是,神经网络却是在近十几年流行,那是因为数据和机器性能的限制,导致早期的成果不明显。当然,近期的流行,也不排除算法本身的改进,比如反向传播算法等。
基于大脑机制的探索,人们提出了神经元模型和感知机。通过结合神经元模型及感知机,人们构造了神经网络。典型的神经网络由三层构成,包括输入层,隐层以及输出层,如下图:
关于神经网络的结构和计算的一些粗浅理解,可以参考我的另一篇博文:
神经网络在图像识别上取得了巨大的成功。特别是深度学习的使用。那么深度学习又是个什么鬼?提到深度学习,就不得不提辛顿--深度学习之父,以及2012年的图像识别竞赛ILSVRC。通过采用深度学习算法,在有限的样本空间中,辛顿领导开发的Super Vision取得了很高的正确率。
那么深度学习到底是什么?深度学习指得是多层(4层以上)的神经网络。我们也可以理解为深层学习或者深度神经网络。
这里的深,应该不仅仅是层数深,还有因为层数深带来的其他深,比如信息分解的深。简单理解,我们就认为它是层数深好了。
深度学习又有好多种学习方法,典型的有
卷积神经网络CNN
循环神经网络RNN
玻尔兹曼机
这些概念就有点深奥了,待进一步学习后再总结。至此,神经网络这个分支又扩展丰富了。
除了神经网络和深度学习,其他比较常听到的机器学习算法还有:
迁移学习
集成学习
迁移学习笼统说就是将在大数量上学习到的东西,应用到小数据的目标领域上去,实现举一反三,触类旁通。网络上有一个例子,就是通过研究全球夜晚的灯光亮点指数,对非洲贫困区域做出判断。
集成学习,顾名思义,就是利用多个学习方法,结合它们的学习成果,达到最终比其中单一学习器更优的效果。有点像集体决策,或者说集大成者。
这些学习又该挂到那个枝条上呢?如果不好找到,就单独分给它们一个好了。或者,我们大脑中构造的是一棵立体树,从不同角度或者维度看过去,看到的是不一样的画面。就比如前面说的向阳面和背阴面。
我们继续。在人工智能的发展过程中,学习模仿自然生物模型,一直是重要主题。通过模仿大脑工作机制,提出了神经网络模型,进而产生了深度学习。通过学习生物进化论,提出了遗传算法。这也是人工智能的一大模型。今天的强化学习就跟这种模型有着很大的关系。这是从模型本身的角度做了一个分类路径。
关于机器学习的各种算法,感兴趣的读者,可以去看看周志华老师的西瓜书:
今天的整理就到这里。最后再总结一下:
人工智能 机器学习 神经网络 深度学习
机器学习:无监督学习、有监督学习、强化学习
人工智能模型:专家系统、神经网络、遗传算法
其他还有许许多多的学习方法和策略,都是机器学习大家庭的一部分。具体可参考西瓜书。