谢耘:人工智能——多余的概念,算法的本质实用资讯青少年人工智能资源与创新平台互联网教育智能技术及应用国家工程实验室

现代人工智能的方法过于零散,没有一个统一的框架,彼此之间的关系也模糊不清。《人工智能:一种现代方法》一书(StuartRussell&PeterNorvig著,《ArtificialIntelligence---AModernApproach》,Prentice-Hall出版,2003第二版),试图用智能体Agent这一概念来统一描述人工智能的方法,但似乎并没有更好地揭示人工智能方法的本质。本文试图从计算机解决问题的过程本质出发,来建立一个框架,统一描述计算机解决问题的方法,进而揭示人工智能类方法的本质特征。

本文的基本思路是建立在计算机解决问题的基本模式之上的。计算机解决问题的基本模式可以概括如下:

实际问题----问题的逻辑计算化---解决问题的算法/知识---计算机程序---问题的解决结果。

围绕这个主线,可以逐步准确描述分解各个环节,从而将计算机应用问题做一个完整的框架性描述,看清每一种方法自己的定位,帮助理清各种方法彼此之间的关系等等。

多余的“人工智能”概念:计算机应用本就是智能过程

人类进入21世纪第二个十年之后,信息技术有了令人眼花缭乱的惊人发展。在许多“智能”方面已经超越了人类。但是,信息技术的基础一如其诞生之初,并没有改变。信息技术的核心计算机依然是,且仅是一个可编程的逻辑计算工具。只是今天它的计算能力与当初已经有了天壤之别,计算机在21世纪第二个十年具有了“暴力计算”能力(详见:谢耘著,《智能化未来——“暴力计算”开创的奇迹》第二章,机械工业出版社2018)。

计算机的基础——可编程逻辑计算能力算不算“智能”?对此很多人的看法是否定的。我们把识别图片作为理所当然的“智能”,而且为计算机能够识别复杂的图片而欢欣鼓舞,当作人工智能的一个重要的进步。而识别图片,是人类不需要特殊训练就具有的能力,但是逻辑计算却是人类需要一定的训练才能具备的技能。如果我们认为“智能”是人类大脑独有的功能属性的话,那么逻辑计算不被认为是“智能”,岂不是对人类大脑所做的努力的一种莫大的嘲讽?

所以,计算机最基本的能力——逻辑计算能力就是“智能”,或者说是一种智能活动,只是因为计算机一开始就以此为其存在的基础,我们无视了其智能的属性。从这个角度来看,计算机的应用其实都是智能类应用,只是“复杂”或“难易”程度有所不同而已。

正是由于人类没有理解自己创造出来的计算机与生俱来的可编程逻辑计算能力的智能本质,所以在1956年“人工智能”这个词被创造了出来,尽管当初、乃至至今人们也依然没有能力给它一个准确的科学范畴内的定义。提出“人工智能”这个概念的潜台词,便是用计算机实现的其它那些基于可编程逻辑计算的应用都不属于“智能”范畴。

计算机解决问题的基本模式:用算法解决逻辑计算问题

虽然计算机的应用五花八门彼此迥异,但是计算机解决的所有问题的途径,都是通过逻辑计算来完成的。所以,所有的计算机应用都可以概括为下面几张图所示的一个基本模式。

首先,我们要对需要解决的不同领域的实际现实问题做分析,将其抽象转化为一个逻辑计算类问题(见图一),即可能用逻辑计算来解决的问题。这个过程通常是一个所谓的“数字化”或“建模”过程。

从这个角度讲,计算机应用的历程就是从容易抽象为逻辑计算类问题的实际问题开始,逐步拓展到去解决那些不太容易被抽象为逻辑计算类问题的实际问题的过程(详见《智能化未来—“暴力计算”开创的奇迹》第三章)。

计算机最开始的应用领域是工程/科学计算,这类问题基本不需要做抽象,本身就是逻辑计算类问题。而今天众多的所谓“人工智能”类问题则在表面上看起来与逻辑计算类问题很不一样,需要各种数字化与抽象建模的处理才能变成一个逻辑计算类问题。

在此基础上,计算机就可以利用自己的逻辑计算能力,在软件程序,也就是人类的“外意识”的控制下完成对输入数据的处理,给出问题的答案(见图二)。

显而易见,针对不同的问题,软件程序包含了不同的知识,实现的是不同的算法流程。虽然不同的算法与知识在复杂程度上有很大的差异,但是这些软件程序却都是人类的“外意识”,同属于智能类活动。就像博士生动脑子是人类的智能活动,小学生动脑子同样也属于人类的智能活动。

如果考虑到实际发生的情况,图二中解决问题所使用的算法,有时不是一个单向的过程,而是会有多次的反复“迭代”修改完善的复杂环节在其中,而这个过程通常要借助系统的输出结果中的信息来进行,所以实际上这种情况是一个在实践中不断完善的“反馈”过程。如果把这个反馈优化完善的过程显性地表现出来,图二就演变变成了图三。

我们不难看出,图二的模式与图三模式是等价的,图三只是把解决问题的算法中根据结果做反馈改进的步骤显性地表现了出来而已。当然,图三中的反馈过程也可能是由人来完成的,这就是在我们讨论之外的情况了。

对于从图一到图二所示的计算机解决问题的一般模式,我们可以做如下的一个概括:任何一个问题,只有把它变成逻辑计算类问题,计算机才有可能解决它;反过来,计算机解决任何问题,都是通过逻辑计算过程来完成的。

所以,当我们好奇计算机是否能够做某件事情时,我们首先要做的就是去看看我们是否有可能把这件事变成一个逻辑计算类问题。

当然,并不是把一个实际问题转化为逻辑计算类问题,就必定能够找到一个有效的算法去解决它。这个寻找有效解决问题“算法”的过程,是没有一个绝对可行的方法论可以依靠的。它至今依然是一个严重依赖人的大脑的创造性工作,而且在可以预见的未来,依然会如此。

所以计算机自动编程,也就是计算机自动寻找并实现解决问题的有效算法,还是一个遥远的梦想。

但是这并不意味着计算机在寻找和设计解决问题的算法的工作中就无所作为。“机器学习”就是人类借助计算机来寻找解决问题所需算法的技术。

“机器学习”(MachineLearning)方法的本质:用“学习算法”去帮助最终确定完善解决问题的算法

记得有一个国际人工智能界的名人曾经说过一句话:“人工智能就是机器学习,机器学习就是人工智能。”所以,如果我们能够搞清楚“机器学习”的本质,也就理解了“人工智能”到底是什么了。那么我们就来看一下“机器学习”这个听上去高深莫测的技术,在本质上是一个什么样的过程。

既然“机器学习”也是由计算机完成的工作,所以它必然也没有跳出图一到图三所概括的计算机应用的基本模式。因为“机器学习”是一个寻找算法的过程,与图一关系不大,所以我们从图二来开始分析。

对于一个逻辑计算类问题,如果我们能够找到一个有效的算法,显然就不需要什么“机器学习”来帮忙,直接按照算法编个程序问题就解决了;反过来,如果针对一个逻辑计算类问题,我们完全摸不到头脑,不知道去任何方向来寻找解决它的算法,那么“机器学习”也没有任何用途。

“机器学习”有用武之地的场合,是针对那些逻辑计算类问题,我们不知道哪个完整的算法能够解决它,我们却知道有某个“类型”的算法(比如求解某个函数)可以解决或可能解决它,但是我们需要想办法确定算法的中的一些成分(比如函数中的参数)才能完全把算法明确下来,然后用它去尝试解决这些问题。

比如,我们想确定一个火炮的具体位置,我们知道它发出的炮弹的弹道在不考虑空气阻力等因素下可以用一个二次方程来描述(抛物线),如果知道了这个二次方程,我们就能用二次方程求解的算法来确定火炮的位置。但是我们事先是不知道这个火炮发出的炮弹轨迹的二次方程里的三个参数的,这三个参数就是我们解决问题需要的算法(二次方程求解算法)中的“成分”。如果我们有办法确定这三个参数,那么解决问题的算法就确定了。

所以,在这个例子中,确定火炮位置的问题,是一个二次方程求解类的问题,可以用二次方程求解算法来解决,但是我们需要知道炮弹弹道二次方程的三个系数,才能最后确定算法。确定这三个参数,就是机器学习要做的事情。

所谓“机器学习”,就是利用计算机帮助我们确定解决问题的(可能的)算法中的细节,通常就是算法中所需要的某些“参数”。

所以,“机器学习”在解决问题的过程中,是在辅助人类,而不是独立自主地去解决那些我们人类都完全不知道该从何入手的问题。

那么“机器学习”是如何确定我们需要的算法中的“细节”或称“参数”的呢?

我们需要一个所谓的“学习”算法,然后用它从所谓的“学习样本数据”,即那些可以从中获取我们需要的“细节”或称“参数”的数据/信息,估算出我们需要的“细节”或“参数”,然后我们就可以确定解决原本问题的算法了,问题便迎刃而解。

将上述过程用图来表示,就得到下面的图四。

从图四中我们可以看出,用“机器学习”的方法来解决问题的时候,相比于图二,看上去它多了一个“机器学习(训练)”的过程,即获取解决问题的算法所需要的参数的过程。

这个机器学习的过程,本质上也是图二所示的计算机解决问题的过程,即也是用逻辑计算算法(所谓的学习算法)来达到目标(估计解决问题的算法所需要的参数)的一个过程。

而由于只要不导致算法不收敛等问题,多种“算法”可以组合嵌套组合成一个更复杂的算法,所以图四中上面的学习算法实际上是可以合并到图中下面解决问题的算法当中的,它所需要的学习样本数据也可以当作“解决问题需要的信息/数据”的一部分,这样合并之后,图四则被抽象简化变成了图二,或者说图四其实是图二的一种具体情况。

所以,用“机器学习”的方法去解决问题,在本质上依然归属于图二所示的计算机解决问题的基本模式,而不是独立于其外的全新做法。因此,它依然要依靠人来设计“算法”去解决问题,这个过程依然是“外意识”发挥作用的过程。在这个过程中,人或者说人的“内意识”对于需要解决问题的深刻理解,依然是一切的源头起点。

我们以前面讲过的确定火炮位置的问题为例,来看一下一个机器学习的具体过程。

在战斗中,我们希望通过A火炮发射的炮弹的轨迹,来确定其位置将其消灭掉。在不考虑空气阻力、风向等因素的情况下,我们知道它发射的炮弹的轨迹是由一个二次方程来确定的曲线。但是我们没有办法事先就知道这个方程中的三个参数,所以我们通过“火炮侦校定位雷达”,来获取它发射的炮弹的轨迹中的一部分数据,这就是所谓的“学习样本数据”。利用这部分数据,我们就可以利用计算机估算出来描述炮弹轨迹的二次方程中的三个系数。这样就完成了图四中“‘机器学习’过程”。然后我们通过利用计算机求解这个方程。就能够确定A火炮的位置,这就是图四中的“解决问题过程”。B火炮便可以依据这个位置信息摧毁A火炮。

虽然实际情况要更复杂一些,考虑大气阻力等因素后炮弹轨迹要用更高阶方程来描述,而且是在三维空间,因此会有更多的参数需要确定,但是上述的基本原则是一样的。

这个例子虽然看上去很简单,有中学的知识就完全可以理解,但是它确实就是机器学习方法中的一种。这种机器学习的方法就是所谓的“回归分析”方法中的多项式回归分析(赵卫红、董亮编著,《机器学习》,第18页,人民邮电出版社,2018年8月第一版)。而这些年流行的“深度学习”,则是采用了非常高阶而复杂的函数。函数复杂到了很难用一个数学表达式来描述,而是采用了一种网络化的描述方式。在用于解决问题的这种复杂高阶函数中,有成百上千万,甚至上亿个参数需要用机器学习的算法来确定。所谓“深度学习”中的“深度”,指的就是这些参数的数量的巨大,并非是我们通常意义上学习的“深度”。

如果图四中上面所示的机器学习过程与图中下面的解决问题过程彼此独立,我们称这种情况的机器学习为“离线”机器学习。这里的“线”指的就是图中下面那个解决问题的过程。

如果机器学习需要的学习样本数据来自于解决问题的过程的输出结果,这样的机器学习我们称之为“在线”机器学习,这个过程就是图三所示的反馈优化完善的过程。我们把机器学习过程拆分出来,便得到了图六。

我们不难看出,图六也可以看作是图四的一个特殊情况,即“学习样本数据”来自“解决问题过程”的输出。不论对图六作何种解读,它也都可以归入图二所示的计算机解决问题的基本模式。

通过上面的分析我们能够看出,如果把“机器学习”方法与“常规”的方法相比较,它们的差别就在于在常规方法中,解决问题的算法是事先就确定的,而在“机器学习”方法中,解决问题的算法有未知的成分,需要另外用某种“机器学习”算法来估算出这些未知的成分(通常表现为“参数”),然后才能形成完整的解决问题的算法去解决问题。但是这个差异却并不能否定它们之间本质的共性,即归根结底,机器学习方法也罢,常规方法也罢,不过都是利用计算机通过计算机可以实现的逻辑计算的算法,去解决逻辑计算问题的过程。都离不开人对于问题的理解以及在此基础上设计出来的算法去解决问题。所以,图一与图二是对计算机解决问题模式的基本概括,而后面几张图是这种概括在具体情况下的展开表达。

机器学习方法的“工匠”特征

其实这个问题并非是机器学习所独有,而是作为人类“外意识”的计算机应用的基本特征。其根源便在于人类迄今为止,没有构建出关于人类意识活动的完整的科学理论,只有一些实验性质的描述与推测,所以当我们把人类的意识外化为计算机应用的时候,它在总体上就只能是一种基于工匠技艺的手艺活。早就有人指出软件编程是一种艺术创造过程,原因也在于此。由此也带来了一个问题:算法自身的复杂程度,并不能代表其技术水平的高低,因为艺术性的创造,是可以为所欲为的。

在人类突破意识活动(或称智能)的科学原理之前,计算机应用、即人类的“外意识”的创造活动,在总体上只能是一种八仙过海式的现代工匠技艺。

终极追问

表一机器学习与人的学习的对比

但是这并不意味着在解决具体问题上,机器学习不会比人强。其实,自计算机诞生伊始,它在逻辑计算方面的能力就远非人类可比。借助计算机不断增强的精确且永不疲倦的“暴力计算”能力,机器学习方法在解决各种具体的问题方面,自然会不断超越人类。而这正是人类创造工具的重要的目的:拓展人类的能力边界。

人与工具之间的这种辩证的互补关系,常常被形而上学地解释成为了机械的对立互斥替代关系,以至于从工业革命开始后,就不断出现各种版本的机器将取代人的耸人听闻的“预测”。

计算机在解决各种具体问题方面不断超越人,这根本就不是什么预料之外的“奇迹”。今天的机器学习、人工智能及大数据技术核心采用的都是数学统计方法。而早在1964年,英国出版的近代数学通俗读物《统计世界》一书,作者就数学统计方法的应用前景在最后的“回顾和展望”中写道:“在今天的世界上,统计方法的新应用正在不断地被发现,应用电子计算机进行计算,使科学家能够解决过去认为不可能解决的统计问题。统计方法的应用将继续扩大,统计学将在未来的空间时代发挥重要作用。”(【英】D.A.约翰逊、W.H.格伦著,《统计世界》,第80-81页,科学出版社,1981年)

图七1964年的“神预测”

书中的这段话算是对今天以数学统计方法为核心的大数据、人工智能技术发展的“神预测”吗?其实这只是掌握了科学技术本质的科学家对未来的一种理性的推断。

来自网络的图八,形象地表达了数学统计方法、机器学习及人工智能之间的关系,并巧妙地暗示了产生人工智能“奇迹”效应的社会心理缘由。

图八统计方法、机器学习与人工智能

对于今天我们强烈依赖数学统计及工匠式的方法来解决问题,很多习惯于经典科学方法的人内心会感到不适。2018年我在山东大学给学生做讲座时讲了机器学习与人工智能的本质。当时一个同学在提问时说:“我不喜欢现在的那些人工智能的方法,它们都是统计实验性质的,不像经典科学方法那样清晰严谨精美。”我对他说:“技术是用来解决问题的手段,而不是拿来欣赏的艺术品。只要能解决问题就是有效的方法,就应该去认真学习。”

THE END
1.如何入门机器学习算法?人工智能基础二、算法基石:构建智慧的蓝图 人工智能主要是通过算法来进行机器学习的——例如决策树、支持向量机、神经网络等常用算法:决策树:它以树状结构表示决策过程,通过一系列的判断条件,将数据分类到不同的叶子节点。这种直观易懂的方式,使得决策树在分类和预测任务中表现出色。支持向量机:它寻找一个超平面,将不同类别https://baijiahao.baidu.com/s?id=1815412788352198905&wfr=spider&for=pc
2.聊聊算法,AI算法和传统算法算法的应用范围很广,常规基础算法与数据结构紧密相关,该类算法更多被用于确定性领域,比如对于链表、数组、图和堆等等的各种搜索和排序算法。另一大类算法是机器学习算法,该类算法主要用于非确定性领域,主要提供了根据某种机制或数据来学习人类某种能力的框架算法,从而实现人工智能。http://www.360doc.com/content/20/1202/20/32196507_949153088.shtml
3.机器学习十大算法!入门看这个就够了~机器学习算法梯度增强算法的特点是精度较高。此外,LightGBM 算法具有令人难以置信的高性能。 免费分享一些我整理的人工智能学习资料给大家,包括一些AI常用框架实战视频、图像识别、OpenCV、NLQ、机器学习、pytorch、计算机视觉、深度学习与神经网络等视频、课件源码、国内外知名精华资源、AI热门论文、行业报告等。 https://blog.csdn.net/m0_60720471/article/details/119818963
4.人工智能十大流行算法,通俗易懂讲明白本文学堂君就为大家用最简单的语言来介绍目前最流行的10种人工智能的算法,让对人工智能感兴趣,或想要入门的同学,能有更为直观的了解。 1 线性回归 线性回归(Linear Regression)可能是最流行的机器学习算法。线性回归就是要找一条直线,并且让这条直线尽可能地拟合散https://mp.weixin.qq.com/s?__biz=MzIxMTM1NDExMg==&mid=2247503233&idx=1&sn=5d933189a5938d910a421ef8f3a49eba&chksm=97541aeea02393f80fd51d0c918bf76d65f86ac49f902128236c981ae01e78828465f6ce4ed5&scene=27
5.解析人工智能中深度学习的经典算法解析人工智能中深度学习的经典算法 描述 (文章来源:数智网) 深度学习作为机器学习的一个分支,其学习方法可以分为监督学习和无监督学习。两种方法都具有其独特的学习模型:多层感知机 、卷积神经网络等属于监 督学习;深度置信网 、自动编码器 、去噪自动编码器 、稀疏编码等属于无监督学习。https://m.elecfans.com/article/1130302.html
6.《深度学习人工智能算法,机器学习奠基之作,AI圣经》([美]Ian当当网图书频道在线销售正版《深度学习 人工智能算法,机器学习奠基之作,AI圣经》,作者:[美]Ian Goodfellow(伊恩·古德费洛)、[加]Yoshua Bengio(约书亚·本吉奥)、[加]Aaron Courville(亚伦·库维尔),出版社:人民邮电出版社。最新《深度学习 人工智能算法,http://product.dangdang.com/25111382.html
7.人工智能算法(卷3)(豆瓣)【8级,88+106+148k】这是我第二次正式学习人工智能的尝试,第一次是在laioffer的课上,那时我还是一个连算法题都没学完的小白,而现在我已经是一个从业多年的老程序员了。这次我本该有很多技术上的收获的,但可惜我最近一两个月的工作压力太大,这套书读下来昏昏沉沉,并没有 (展开) https://book.douban.com/subject/35401385/
8.《人工智能算法基础》高清完整PDF版下载飞燕网本书立足于理论,从实例入手,将理论知识和实际应用结合,目标是让读者能够快速地熟悉人工智能中经典算法。全书分为4篇,共20章。其中第1篇为基础算法篇,主要讲述排序、查找、线性结构、树、队列、散列、图、堆栈等基本数据结构算法;第2篇为机器学习算法篇,主要讲述分类算法、回归算法、聚类算法、降维算法和集成算法;第http://www.hbase.cn/archives/1287.html
9.算法捉虫:深度学习和计算机视觉改变昆虫学澎湃号·湃客3. 人工智能带来希望 不过,近十年来,深度学习等技术的发展为昆虫学这一古老的学科带来了新的机遇。基于深度学习算法的图像处理技术和计算机视觉技术正在替代传统的人工观测方法。 在农业中,昆虫通常被视为害虫,因此已有的昆虫检测技术往往是通过检测昆虫的行为,开发更加高效的杀虫剂从而防治虫害。不过,科研人员可以基于同https://www.thepaper.cn/newsDetail_forward_11862390
10.一文看懂机器学习「3种学习方法+7个实操步骤+15种常见算法」机器学习、人工智能、深度学习是什么关系? 1956 年提出 AI 概念,短短3年后(1959)Arthur Samuel就提出了机器学习的概念: Field of study that gives computers the ability to learn without being explicitly programmed. 机器学习研究和构建的是一种特殊算法(而非某一个特定的算法),能够让计算机自己在数据中学习从https://easyai.tech/ai-definition/machine-learning/
11.人工智能平台PAI机器学习建模训练部署智能推荐人工智能人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是 AI Native 的大模型与 AIGC 工程平台,提供包含数据集管理、算力管理、模型工具链、模型开发、模型训练、模型部署、AI资产管理在内的功能模块,内置100+种大模型最佳实践,为用户提供高性能、高稳定、企业级的大模型工程化能力。 https://www.aliyun.com/product/bigdata/learn
12.人工智能十大算法已公布,考验你对人工智能了解程度的时候到了摘要人工智能一直是人类社会科技发展的验证,关于他的思考一直在继续,当然除了这些,我们也需要学习人工智能,比如,我们需要了解人工智能十大算法,这些知识才是人工智能最实际的东西,并且这也是很重要的知识,那么什么是人工智能十大算法,环球网校的宣布带大家一起分析。 https://m.hqwx.com/news/2020-4/15877135755697.html
13.国家气候中心应用人工智能强化气候预测——锻造“利器”看清未来气候图景在高性能计算机、大数据、先进的机器学习和深度学习算法的支持下,人工智能为提高气候预测技巧提供了新的思路和契机。 “基于人工智能的气候预测技术比动力模式更易于实现,比经验统计方法更能建立复杂和贴近真实情况的统计模型,尤其是深度学习,它能够直接从原始环流场信息自动构建最优化的预报因子和非线性预测关系,突破了传https://www.cma.gov.cn/2011xwzx/2011xqxxw/2011xqxyw/202308/t20230811_5707451.html
14.人工智能学习心得(通用28篇)网络学习与多参加线下培训学习方式自我成长,提高课程融合能力和课程开发能力;针对实施场地和怎么教的问题,大部分学校没有开展起来的原因可能主要也是因为资金对场地和平台投入比较大,但是可以利用信息技术课堂作为人工智能教育的`切入点,融入数据、算法、程序设计、机器人课程、开源硬件类课程等,利用项目式教学或其他活动如https://www.yjbys.com/xindetihui/fanwen/3342600.html
15.BP神经网络的Matlab实现——人工智能算法腾讯云开发者社区这几天在各大媒体上接触到了人工智能机器学习,觉得很有意思,于是开始入门最简单的机器算法——神经网络训练算法(Neural Network Training);以前一直觉得机器学习很高深,到处是超高等数学、线性代数、数理统计。入坑发现确实是这样!但是呢由项目实例驱动的学习比起为考试不挂科为目的的学习更为高效、实用!在遗传算法、神https://cloud.tencent.com/developer/article/2033420