分清概念十分重要系列之--说说人工智能中的各种学习

大家都知道,现在要说计算机领域什么最火,估计非人工智能莫属了。

我们看一些人工智能领域的一些科普资料,甚至有一定专业程度的文章,如果不是专业领域的人,都会被各种字眼的学习搞的晕头转向。

比如,我自己之前就分不清人工智能、机器学习、深度学习、神经网络、卷积网络等等,到底有什么区别。

后来,又冒出了监督学习、无监督学习、强化学习、迁移学习、集成学习等,更是迷了眼,到最后,都得自己欺骗自己,反正都是学习就是了。

这是不对的。我觉得还是有必要对它们进行简单易懂的介绍和区分。掌握这些概念的差异之后,再去看相关领域的文章和资料,无论是理解程度和思考深度,都会有提升的。也就是你的收获会更大。而且,分清概念,也算是打基础的基础了。

所有领域都是这样的。比如,学习围棋的时候,我们也是从最简单的规则和概念走起的。什么长、立、断、接,冲、挖、虎、打等等。可见,人类掌握各行各业的本质过程是相通的。

好了,那我们今天就来看看,这些花了你眼的“学习”,到底都是什么鬼。让我们从历史发展过程来总结它们吧。

以前,提到人工智能,大家的感觉是很不智能,感觉这个东西还是存在于将来,存在于科幻中的。怎么说呢,就是提起人工智能,那就是人工智能;说实际生活,就是实际生活。两个是割裂开的。

现在就不是这样了。提到人工智能,人们内心感受到的,不再单单是人工智能这个东西,而是会很自然的将其与实际生活关联起来,这就是巨大的进步和转变。

举个例子。在阿拉法狗之前,提到机器下围棋,大家都觉得,那是小孩子的玩具,不入职业选手眼的。而现在,大家都已经达成了另一种共识,就是人是下不过机器的。

插一句,从这个转变,也进一步的提醒我们自身,连机器都在不断学习,我们人类自身不断的学习更是有必要的。

但是,学习是需要有一定方法的。两个理由

一是,碎片化的东西,我们称之为信息,而非知识。知识需要成体系。

二是,人类发展过程中,积累了大量知识,现在每往前走一步,都需要付出更多的努力,而且深度越来越深,领域也越来越细分。就是说,越来越复杂了。

基于这两个理由,我觉得掌握一门技能,需要有一个关于这门技能的知识树构建在脑海中。这样至少是成体系的,脉络是清楚的。而上面所说的概念,自然会在这棵树它该有的位置上挂着。

也许每个人看到这棵树的丰富程度不同。科普级别的,可能就是一个大概外形;专业级别的,就会看到更多的枝叶;而专家或者科学家级别的,可能就会看到叶片上的纹理。

但是无论你是什么级别的,大家看到的应该都是同一棵树才对,否则都是自说自话了。这也就是为啥要有统一的概念,目的就是让大家都在一个频道上。

废话不多说,下面就让我们沿着这条路来试试吧。

我们先来看人工智能。大家都能感觉到,这是一个比较泛化的概念,或者说是一个笼统的概念。其实,要更好的理解它,我们需要将其拆分为:人工和智能

首先,我们看什么是智能。我觉得智能是和我们人本身相关的。粗浅的一面来说,似乎就是聪明程度,当然是跟人来比的。

我们说人是智能物种,不单单是因为我们掌握了语言和文字,掌握了沟通交流以及知识传递的方法,也不单单是因为我们会使用工具,而是在这座星球上,我们是唯一智慧的存在。

举个简单的例子,你是否觉得动物也属于智能物种?更进一步的,三岁的孩子,是否具有智能?对这个问题的认知,决定你是否认为一台机器也具有智能。

显然,这个问题,它并不是有那么清晰的界限的。

图灵对这个问题也有过思考。著名的图里测试,可以看做人类早期系统的对这个问题的思考。说早期,是因为再此之前的,可能更偏向于想象,掺杂了科幻成分。

这里既然提到了,就顺便借用一下想象。想象一下,如果你身边出现了一台机器,能够听懂你说的,能够跟你正常交流,你是否觉得它是智能的?再想象一下,在浩瀚的宇宙中,如果存在一种更高级的智慧生物,他们看我们,就像我们看蚂蚁,那么他们会觉得我们是智能的吗?

所以,这里说的智能,总归是以我们人类为标准的。

其次,这概念里还有另外一个修饰,就是人工。也就是说,这种智能是人力的作用,不是天生具有的。但是,并没有限制它的扩展。

还是类比人类。我们的智能不管是因为进化还是什么途径过来的,总之是天生具备的,也就是出生后,你的大脑就具备智能的能力,然后通过学习扩展能够增加这种能力。机器也一样。当我们人类制造了它后,它天生也应该就具有智能的潜力,不管这种结构是神经网络还是知识库等。同样,也能够不断学习扩展。

这就是人工产生的智能。跟自然天生产生的智能相对应。

事实上,早期还有一个概念,叫机器智能。维基百科上,机器智能被重定向到人工智能,二者被认为是同义词。

其实,我觉得人工智能这个概念比机器智能要好。说机器智能,可能跟早期的认知环境有关系。也许有一天,我们能够将动物大脑改造的更加智能,但同样是人工赋予的智能。这就不是机器智能了,而是另一种人工智能。只不过现在,我们的许多工作还仍然是在物理机器上展开。

从另一个角度来看,机器智能更强调了智能的一种载体。而人工智能,我们把它看做一个整体,不去刻意的强调人工--智能,那么你感觉到的就是一个全局整体的东西。怎么说呢,就是跟人对等的一个东西。这一点似乎只能意会,慢慢感受吧。

关于人工智能这个词,也就是AI(artificial intelligence),最早的来源,或者说它的起源,业界公认的都是1956年的达特茅斯会议。当时参会的一些人物后来都成了这一领域的重量级人物,比如明斯基、麦卡锡、纽厄尔、司马贺等。感兴趣的读者,可以去看看人工智能简史这本书:

好了,让我们把人工智能放到树根上,继续开始这段旅程吧。

当我们展开这棵树时,我们还是需要跟自身进行对比。前面我们已经提到了,当把人工智能看做一个整体时,得到的是跟人对等的一个东西。为了讨论方便,我们就以机器来说明吧。

假设我们旁边有一个真正的人工智能,实体就是人工智能机器人,我们认为它是真正的人工智能,当它:

1 像我们一样,具备获取信息的五感

视觉

听觉

嗅觉

触觉

味觉

2 像我们一样,能够处理获取的信息,形成自己的意识。

如果以此为标准,可以看到,人工智能这棵大树的视觉和听觉分支在蓬勃生长,而嗅觉、触觉及味觉,则发育迟缓,不成比例。当然,这与现有技术的发展是对应的。自然,现有人工智能做出的判断,大都是基于视觉和听觉的。我们将文字符号等信息的输入,也作为是视觉的特例。

再看意识层面这个分支。现有人工智能的感情色彩都是人类赋予的,如果说它们有的话。它对正确和错误的认知,也是人类赋予的。很难说人类的决定是完全客观的,就像我们听到好和坏,我想如果能够用电信号来表征人的反应的话,肯定是不一样的。但是对机器而言,则真正的仅仅是一个符号而已。转换成电信号,可以认为本质上是一样的。所以,机器的意识目前还脱离不了人类的意识。

再回到整体来看,显然,人工智能这棵大树,并没有因为一些枝杈的营养不良而限制另一些枝杈的疯长。即使是这些疯长的枝杈,也不是一路疯长,而是展现了周期律。到现在为止,大概留下了三个历史年轮:

第一个历史年轮是20世纪50年代后期到60年代。这一时期通过计算机的推论和搜索,解决具体的问题。比如代数几何证明,路径搜索,下棋等。但是由于机器的计算性能不够,效果受限。加之并没有解决实际生活中的问题,很快相关的投资就被停止了,第一次AI浪潮就此结束,并进入了20世纪70年代的寒冬。

第二个历史年轮是20世界80年代后期到90年代初,出现了专家系统。这一时期主要利用了计算机的存储能力,给其灌输知识,使其具有智能。相比于第一次浪潮的无法解决实际问题的硬伤,这一时期的人工智能,在这方面取得了较大的进步。但是知识是无穷无尽的,录入知识是一个庞大的工作,而且存在领域受限的问题及怎么才能更有效的在计算机中表示知识。随着这些问题的放大,人工智能再次进入寒冬。

第三个历史年轮是21世纪以来到现在。首先,互联网及搜索引擎的出现,使得知识的获取比以前容易多了。简单理解,我们认为,互联网存储了大量的知识,这些知识可以被方便的获取以及再加工处理。其次,计算机的性能得到了飞速提高。不说大型的高性能计算机,其性能已经不可同日而语,即使是消费型的小型机,其性能也能达到以前大型机的性能。加之互联网、云计算、并行及分布式计算等相关技术的发展,整合机器性能的手段也丰富了许多。这样,以前一些效果不佳的模型,在新的基础设施和大量数据的加持下,取得了瞩目的实用成就。像神经网络这种以前难以施展开的技能,在新的舞台上则大放光彩。

整体上,人工智能不仅留下了历史年轮,还显现了向阳面和背阴面。

不同的人对于人工智能的发展方向有不同的判断。这种走不同路子的结果,就是留下了不同的流派。这里简单提两个:符号派和统计派。

符号派倾向于使用类似人类掌握知识的概念树结构,使机器具有智能。这一派目前来看,处于背阴面。

而统计派,则倾向于利用大量数据的学习来获取规律,做出判断。这一派目前是处于向阳面的。

要说哪一派能代表真正的人工智能,我倒觉得大家互为补充更好一些,而不应非此即彼,毕竟都是这棵大树的一部分。

说完人工智能,我们就来看学习

虽然我们总在讲人工智能,但是现实中,更多的还是在机器智能这个范围内活动。随着技术的发展,现今,通过学习,使机器变得智能,在实际应用中越来越流行。这个流行,表示了两层意思,一个是越来越行得通,因为数据可以轻易获取,计算性能又足够;另一个是越来越有效果。这样二者的相互促进,就形成了良性循环。

通过学习,让机器具有智能,这种学习就是机器学习。学习的是什么呢?学习的是事物的特征和规则。这听着可能有点抽象。

举个例子,如何让机器识别图片中的动物?只要让机器学习动图的各种特征,再根据特征做出判断即可。猫有猫的专属特征,狗也有够自身的特征,总有一些差异,能够将二者区分开来,这就是要学习的内容。

显然,机器学习也是一个很泛的概念,所以,它应该在人工智能这棵大树的一个粗干上。

我们知道,人一辈子都在学习,每个人都有自己的学习方法。有的人擅长诵记,有的人擅长理解。机器学习,也有不同的方法,目前可以分为三类,分别是:

监督学习

无监督学习

强化学习

监督学习,简单说,就是给机器的数据都是打了标签的。比如前面的让机器识别动物,那么学习过程中,给机器一张动物的照片时,就要告诉机器,这是什么动物,猫还是狗。

通过监督学习,我们一般用来解决两类问题:

分类问题

回归问题

分类问题,简单说就是让机器判断输入的数据应该归为哪一类。是猫还是狗,就可以归为这一类。

回归问题,简单说就是获得能够解释数据的线,然后对数据的趋势做出判断。比如根据历年降水量预测今年的降水量。历史数据可能是一条直线或者曲线,新的数据我们认为也是在这个直线或者曲线的延长路径上。

无监督学习,就是不告诉机器正确答案,让机器对数据正确分类。其实,生活中有些事也并没有明确的正确答案,此时,就该无监督学习施展抱负了。

比如,判断一个人的兴趣爱好。有些人喜欢阅读科幻小说,有些人则喜欢历史小说,这其中并没有对错之分,但是浏览各种科幻小说和浏览各种历史小说的人,是具有一些特征的,此时,通过机器学习,可以将他们正确的聚类。经典的聚类算法k-means算法,就是做类似这样的事情的。

我再来看强化学习。强化学习就是通过奖励和惩罚,让机器不断学习的。这跟训练猴子表演类似。

一开始,机器处于茫然无措的状态,然后随机行动。之后,通过不断的投喂、试错、奖惩,机器则通过规避惩罚,追求奖励,不断强化学习成果。

上面这三种都是大的方向,每一类下面,可能有多种具体算法。所以,他们都是机器学习粗干上的大分支。

下面我们就进一步来看看一些具体的机器学习算法:

神经网络:神经网络是模拟人类大脑工作而设计的一种机器学习算法。神经网络出现的很早,上个世纪就已经展开了很多相关研究,但是成名却是进入21世纪后的事了。

神经网络的存在是很自然的一件事。既然要智能,那最直观的方法就是研究我们大脑的工作机制,并加以模仿,不就可以了。但是,神经网络却是在近十几年流行,那是因为数据和机器性能的限制,导致早期的成果不明显。当然,近期的流行,也不排除算法本身的改进,比如反向传播算法等。

基于大脑机制的探索,人们提出了神经元模型和感知机。通过结合神经元模型及感知机,人们构造了神经网络。典型的神经网络由三层构成,包括输入层,隐层以及输出层,如下图:

关于神经网络的结构和计算的一些粗浅理解,可以参考我的另一篇博文:

管中窥豹--机器学习之我见_龙城赤子的博客-CSDN博客

神经网络在图像识别上取得了巨大的成功。特别是深度学习的使用。那么深度学习又是个什么鬼?提到深度学习,就不得不提辛顿--深度学习之父,以及2012年的图像识别竞赛ILSVRC。通过采用深度学习算法,在有限的样本空间中,辛顿领导开发的Super Vision取得了很高的正确率。

那么深度学习到底是什么?深度学习指得是多层(4层以上)的神经网络。我们也可以理解为深层学习或者深度神经网络。

这里的深,应该不仅仅是层数深,还有因为层数深带来的其他深,比如信息分解的深。简单理解,我们就认为它是层数深好了。

深度学习又有好多种学习方法,典型的有

卷积神经网络CNN

循环神经网络RNN

玻尔兹曼机

这些概念就有点深奥了,待进一步学习后再总结。至此,神经网络这个分支又扩展丰富了。

除了神经网络和深度学习,其他比较常听到的机器学习算法还有:

迁移学习

集成学习

迁移学习笼统说就是将在大数量上学习到的东西,应用到小数据的目标领域上去,实现举一反三,触类旁通。网络上有一个例子,就是通过研究全球夜晚的灯光亮点指数,对非洲贫困区域做出判断。

集成学习,顾名思义,就是利用多个学习方法,结合它们的学习成果,达到最终比其中单一学习器更优的效果。有点像集体决策,或者说集大成者。

这些学习又该挂到那个枝条上呢?如果不好找到,就单独分给它们一个好了。或者,我们大脑中构造的是一棵立体树,从不同角度或者维度看过去,看到的是不一样的画面。就比如前面说的向阳面和背阴面。

我们继续。在人工智能的发展过程中,学习模仿自然生物模型,一直是重要主题。通过模仿大脑工作机制,提出了神经网络模型,进而产生了深度学习。通过学习生物进化论,提出了遗传算法。这也是人工智能的一大模型。今天的强化学习就跟这种模型有着很大的关系。这是从模型本身的角度做了一个分类路径。

关于机器学习的各种算法,感兴趣的读者,可以去看看周志华老师的西瓜书:

今天的整理就到这里。最后再总结一下:

人工智能  \sqsupset 机器学习 \sqsupset  神经网络 \sqsupset  深度学习

机器学习:无监督学习、有监督学习、强化学习

人工智能模型:专家系统、神经网络、遗传算法

其他还有许许多多的学习方法和策略,都是机器学习大家庭的一部分。具体可参考西瓜书。

### 回答1: 在编程,函数是一个非常重要概念。函数可以将一段代码封装起来,使得代码更加模块化和易于维护。同时,函数也可以被多次调用,从而提高代码的复用性。 在使用函数时,我们需要分清主次。首先,我们需要确定函数的主要功能,也就是函数的核心逻辑。其次,我们需要考虑函数的调用方式,包括传入参数和返回值。最后,我们需要注意函数的命名规范和注释,以便其他人能够理解和使用我们的代码。 总之,函数是编程非常重要的一部分,我们需要认真对待函数的设计和使用,以提高代码的质量和可维护性。 ### 回答2: 第四关篇章的主题是“函数与函数调用——分清主次”,在突破第四关的过程,需要学会如何理解函数的含义,以及函数调用的原理。同时,需要学会如何正确地设计函数的输入、输出参数,以及如何进行函数调用操作。 本关主要内容有: 1.什么是函数 函数是一段完成特定任务的代码,它可以实现代码重复使用,使得代码更加简洁高效。函数可以进行输入参数的定义和输出参数的返回,从而帮助实现更为灵活和高效的编程操作。 2.如何定义函数 函数的定义包括函数的名称、函数的输入参数、函数的输出参数以及函数的具体实现代码。在定义函数时,需要注意函数名称的唯一性和描述性,输入、输出参数的类型和名称应该明确清晰,函数代码的实现应该遵循“输入即输出”、“分步处理”的原则。 3.如何调用函数 调用函数时需要注意当前程序所在位置和函数的实际调用方式,需要明确调用的函数类型和参数类型并进行正确的传递,同时,还需要注意函数调用的结果返回和后续操作设计等问题。 4.常见的函数调用错误 常见的函数调用错误包括参数类型不匹配、参数数量不匹配、函数名称输入错误等。只有明确理解合理设计函数和正确进行调用,才能避免这些常见错误的发生。 总的来,第四关的重点是帮助大家理解函数的实现原理和函数调用的过程,以及函数的输入输出参数的设计。同时,还需要注意常见的函数调用错误,并根据实际情况进行合理的调整和修改操作,以实现更为高效灵活的编程操作。 ### 回答3: 函数与函数调用是程序设计非常重要概念,也是初学者必须掌握的内容。在理解函数及其调用之前,我们首先需要了解什么是函数。 函数是一组完成特定任务的代码块,这个代码块可以接受输入,处理输入并输出结果。函数可以模块化代码、提高代码重用率、简化代码结构等,因此在程序设计使用函数非常普遍。函数包括函数名称、参数列表、返回值和函数体等四个部分。 函数调用是指在程序调用函数的过程。调用函数时,需要提供函数名称和参数列表以及指定函数返回值的类型。程序在执行调用语句的时候,就会进入到函数体执行所需的代码,并返回执行结果给调用者。 在使用函数和函数调用时,我们需要分清主次。主要体现在以下几个方面: 1. 确定函数的功能。在编写函数时,需要精确定义该函数的功能以及所需的参数和返回值类型。一定要避免一个函数承担不同功能,或者一个函数只是一个语句块的容器。 2. 确定函数调用的位置。在确定函数调用位置时,需要明确其所在的上下文环境,以确保参数的传递和返回值的使用正确无误,避免出现混乱的逻辑错误。 3. 确定函数调用的数量。在程序设计,正确使用函数可大幅减少代码的重复性,提高代码复用率,但过多的函数调用也会产生额外的开销,降低程序的效率。 4. 确定函数调用的方式。在函数调用时,有时需要使用传值调用,有时需要使用指针调用等不同的方式来传递参数和调用函数。 综上所述,函数与函数调用是程序设计非常重要概念,我们需要在理解其基础概念的基础上,分清主次,正确地应用到程序设计。只有正确地使用函数和函数调用,才能为编写高效、优雅和易维护的程序打下坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙赤子

你的小小鼓励助我翻山越岭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值