首先跟各位看官道个歉,这几天身体有恙,影响了日更和写作,让各位久等了。
接下来,我将分段发表写了好几天的一篇长文,关于人工智能。
为了让普通人也能看明白,在这篇长文中,我会尽量用浅显的语言、生动的比喻,去讲解人工智能的前世今生。
基于此,我还会进一步探讨人工智能的哲学命题,诸如:
问题一:人工智能是否比更“聪明”,会不会最终在所有领域取代人类?
问题二:人工智能会不会产生自主意识,是否会进化成硅基文明屠灭人类?
事实上,像这两个哲学命题,绝不能像网上很多自媒体那样,直接靠拍脑袋得出答案,而是必须要对人工智能、尤其是其科学本质,先有个基本的了解和理解。
这就是我写这篇文章的初衷——正本清源,才能刨根问底。
让科学的归科学,让哲学的归哲学,让宗教的归宗教,魔鬼的归魔鬼。
好了,言归正传。
我们先从人工智能的起源讲起。
整整80年前,人工智能的概念就被提出来了,那时候二战还没结束呢:
年,一位心理学家和一位数理逻辑学家,提出了人工神经网络的概念和人工神经元的数学模型——感知机模型(MCP)。
它最初的目的,就是想用计算机模仿人脑,达到人脑级那种复杂而强大的能力,以实现用机器解决过往人类才能解决的问题。
是的,从它被发明开始,就是为了解决实际问题,而不是为了哲学范畴的“人作为上帝创造一个新世界”的目标。
理解这一点,对下面展开讲它的演变进程,是很重要的。
更重要的是,从其最初的理念陈述,会发现其暗含的实现路径是:机器向人类学习,而不是机器自己瞎弄。
而人工智能的提出者,除了数学家,还有一个心理学家,这就间接说明了它的本质:
既有人类认知的部分,又有数理逻辑的部分,且使用后者去分析、模仿、实现前者的功能。
按照这个思路来看,如果把人看作“上帝”,那么人工智能就是“上帝”所创造的“人类”,而它建设它的“新世界”的法则,就是“模仿上帝的大脑”。
说到这里,我想起了中国的哲学家——老子。
老子的道家,其中一个非常核心的观点就是:人要向天(自然)学习,“人道”要顺应“天道”。
因此,人工智能的两个提出者,就像是“人工智能宇宙”里的老子一样——他们准确的预言了:最好的“人道”(人工智能)就是对“天道”(人类大脑)的模仿,而不是“根据人自己的规则和逻辑去建设世界”。
这两个“老子”般创始者的思想,多么的伟大,对吧。
接下来看看,人工智能被提出后,其大致的发展阶段:
我们会看到,在其提出后的年代,人工智能进入了一个低谷——这是为什么呢?
这是因为当时计算机的性能和算力,以及理论方面的水平,无法支撑“老子”创始者关于“人道”学习“天道”的设想。
此路不通,只好另找别路。
于是,在“老子”降生后约40年,到了图中说的“第二波爆发”的年左右,方向变成了“基于数学和统计分析为主的方式的机器学习”,其特点是“因果逻辑和中间计算过程都是清晰明确的”,也就是“人能理解的规则”。
这个路线的大转向,就相当于“孔子”降生了,他跳出来说:“学习‘天道’太难了,我们暂时搞不了,还是直接基于‘人道’(人所制定的伦理道德),建立新世界吧!”——也就是说人工智能不学习人脑了,而是直接建立一个它自己可以理解的、基于因果逻辑的、中间过程清晰明确的智能系统。
这是对“老子”的“天道”路线的背叛——也就是老子说的“大道死,圣人生”。
“老子”路线和“孔子”路线,两者之间一个非常容易感知的区别就是:
“老子”路线仅需要得到一个类似人脑的结果,并不要求过程“可知”——毕竟“上帝”的心不是人类可以了解的,人类只要“像上帝”那样做事情就可以了。
“孔子”路线则不一定以人脑为模仿对象,但必须要让过程“可知”——相当于摒弃“上帝”,从头开始搭建一个人类自己搞得明白的体系。
这个体系的搭建成果是:“孔子”路线搞了20多年,确实有很多成果,但并没有真正的突破。
当然,这并不一定是因为这条路线错误了,也可能是因为各方面综合条件(算力、心理学、神经科学、数理逻辑等)并不成熟——这与“老子”路线开头遇到的困难是类似的。
再次声明,人工智能自始至终都是为了解决实际问题而生的,而不是为了哲学讨论。
当然,你解决不了问题,就应该暂时退场,就像当初的“老子”路线一样。
不过,直到今天,“孔子”路线仍然有人在坚持,说不定未来某一天会成功呢——就像今天死而复生的“老子”路线一样。
接下来,我们就看看,“老子”路线是怎么死而复生的。
年,“人工智能教父”Hinton,跳出来批判“孔子”路线:“你搞的那都是异端邪说,人还得回归到天道上去。”
Hinton的意思是,我们无需知道人工智能是如何运作的,只要它能给出正确的结果就行了,你们天天在这儿设计各种符合逻辑架构的模型,是没有尽头的迷途。
Hinton的说法,有点儿类似于“庄子”,意思是“以有涯适无涯,殆矣”——客观世界如此复杂、如此不确定,你非要用“人道”的简单逻辑和确定性去穷尽,那就是错误的。
随后,大家都接受了这个思想,即把人工智能当做一个黑盒子,不要去穷尽、事实上也无法穷尽它里面的逻辑结构。
可以说,Hinton就像庄子追随老子一样,回到了年那两个提出者的本源上来,对长达几十年的“孔子路线”,做出了“拨乱反正”。
然后,人工智能就沿着“庄子”这条“以无涯适无涯”(不需要搞清楚内在结构,而是模糊的/混沌的自适应/自重塑架构)的路线,演化成了今天的模样。
实际上,后来这几十年的人工智能,其技术内核的变化不太大,就是以计算机来模拟人脑的无数“神经元”,不断增大神经元的数量,等着大数据的量级达到突破的这一天。
这里我就展开介绍一下,这种由无数“模拟神经元”堆叠起来的人工智能的基本技术架构——了解了它,后面理解起其他概念来,就容易多了。
首先,人脑是由神经元组成的。
每个神经元,你可以看作一个函数。
一个神经元一般有一个输出端(轴突),可以看作函数里等号左边的y。
一个神经元一般有一个或一个以上的输入端(树突),可以看作函数里等号右边的x1、x2……
例如一个神经元,输入端有两个树突、分别记作x1和x2,输出端有一个轴突、记作y,那么它就是类似于y=4x1+5x2这样的一个函数。
然后所有神经元都是连在一起的(每个神经元平均有上万个与其他神经元的连接),于是这个神经元的输出y,可能会作为相邻的下一个神经元的输入x,如此往复,就形成了人脑这个超级大的“综合函数体”。
但是需要注意的是,人脑的神经元,并不是简单的y=4x1+5x2这样的线性函数。
而它也不是简单的z=3(x)^2+4cos(x)这样的非线性函数。
它更多的,是一个“阈值阀门函数”,类似于:当输入端x1时,输出端y=x;当输入端x=1时,输出端y=1。
xy轴上画出来就是,前期是一条45度向右上方的斜线,过了1这个点就变成横的直线了。
这是神经元的生物电性质决定的,有点儿像模电里面的二极管。
反正神经元就是这么个非线性函数吧,也正因为是非线性函数,所以无数个非线性函数联结起来,最终这个大函数才复杂。
否则的话,全是一次线性函数,那无论多少个组合起来,最终也不过就是个超级大的一次线性函数,那就没必要搞那么多神经元组合起来了。
那么人脑这个大函数,有多少个子函数、也就是神经元呢?
超过亿个。
是的,多亿个非线性函数,联结成一个超级巨大、超级复杂的大函数,这才让我们的人脑有这么强大的功能,还具备意识、感情、理性、逻辑等各种特征。
人工智能,本质上就是要用计算机去模拟这种人脑结构。
所以它也是建立无数个类似神经元的子函数,然后联结起来,生成一个超级巨大复杂的大函数。
在以前的算力下,人工智能的量级,远远达不到人脑这多亿个神经元的数量。
但是随着算力的爆发,最近的ChatGPT我们也看到了,GPT-3和GPT-3.5,就达到了亿参数的量级——“参数”具体可能无法完全类比人脑的“神经元”,但是量级应该说是差不多吧。
而GPT-4的参数量级,可能还要更大。
那么量级达到了人脑的标准,接下来就看具体实现机制。
人脑的学习过程,其实就是通过不断的训练、实践、试错,去调整每个神经元内部的参数。
例如学习走路,一开始摔倒了,人脑就把其中一个神经元,从y=4x1+5x2,改成y=6x1+5x2,又摔倒了,再改成y=6x1+7x2,哎哟总算站住了,好了你这个神经元就保持y=6x1+7x2吧,我再看下一个神经元——大概就是这么个过程。
机器学习也一样,多亿个参数,不断的训练、实践、试错,参数不断的改,直到稳定输出正确的结果为止,这多亿个参数,就都稳定下来了,然后再学习下一项技能。
在新的学习过程中,又再次去不断的调试里面的参数——所以它并不是一个静止不变、故步自封的系统,而是不断学习进化、不断自我重塑的系统。
当人工智能模拟人脑的这种机制时,机器学习的发展能有多快,就取决于两点:
(1)每次训练的时间尽量短。
(2)每次输出结果后,尽快得到对此结果的反馈(对错、优劣),例如输赢判定、打分高低。
为什么AI下围棋能在短短的一年左右时间内,就彻底超越人类?
很简单,因为围棋是一个有简单明确的胜负规则的游戏,你把这个规则输入电脑,它就能自动判定一盘棋是赢是输、完全无需人力介入。
所以(1)的训练时间、(2)的结果反馈,都能由AI自动完成,它就理论上可以一秒钟下一百万盘之类的,一边下、一边调整各个参数,水平提升得就飞快。
一开始Alfago还先输入万盘人类棋谱,学习了半天人类的下法,结果还输给李世石一盘、并且被号称的“神之一手”导致程序崩溃了。
后来Master就完全不学习人类棋谱了,纯粹是自己跟自己下,左右互搏,没多久就超越了Alfago的水平,人类就更不可能赢它一盘了。
所以像这种(1)的训练时间、(2)的结果反馈都不需要人来做的、机器就能自动完成的东西,AI很快就能超越人类,而且一旦超越,人类就永远也无法赶上了。
但是像艺术创作这种需要人来反馈的东西呢?它就会被卡在(2)的结果反馈上。你没有足够多的人力、足够快的给它创作的内容打分、反馈,它就会卡死在哪里,(1)的训练时间再短,也没有用。
而且还有一些偏哲学性的原因,也导致它无法超过人类这个天花板——这个会放在后续专门讨论哲学的部分来说。
总之就是你会看到,AI画的图、AI写的歌、AI创作的小说,被死死卡在一个上限那里。
这个上限就是,你看AI画的任何一幅画,都充斥着“匠气”,而没有大师那种天才般的“不拘一格”、“超脱独立”的“仙气”——这就是因为AI艺术创作,算法中学的是人、判定优劣的也是人。
没错,AI的上限,就是一个“匠人”。
哪天你看到了AI艺术作品的这两个迹象,才说明它可能有了自我意识的突破:
(1)跟你见过的所有艺术家都不一样,独树一帜,毫无学习模仿的痕迹。
(2)开始摆脱了“匠气”,有了“仙气”,像是一个出人意料的大师了。
好了,人工智能奠定性大体成型的部分,我们讲得就差不多了。
回顾一下,人工智能经历了“老子”(“人道”模仿“天道”)→“孔子”(“人道”按照人自己的确定而可控的逻辑来建设世界)→“庄子”(回归到“天道”的模糊与混沌上来)三个阶段,终于奠定了直到今天还在使用的人工智能基本框架的雏形。
我们关于人工智能的“上篇”,基本上就讲完了。
在Hinton确定了“庄子路线”之后,才出现了三个奠定ChatGPT基础的伟大变革:
(1)年有人提出了“注意力机制”。
(2)年Google提出了“Transformer模型”。
(3)再后来有人提出了“强化学习策略”。
从Hinton到ChatGPT的这个演进历程,我们将在详细解说。
上篇讲了人工智能从“老子”、到“孔子”、再到“庄子”的路线演变。
在继续往下拆解ChatGPT之前,让我们先荡开一笔,回到年代,看看“孔子路线”也做出过的不可磨灭的贡献。
了解了这些,才能更好的理解ChatGPT的问题,因为ChatGPT也继承了很多“孔子路线”的成果。
是的,人工智能是一个发展了80年的事物,生命并不比原子弹短多少。今天的一切不可思议的爆发,都是80年来一步一个脚印的产物。
-年代,针对人工智能的两个主要应用场景:
(1)图像识别。
(2)语言分析。
出现了不同的技术路线。
对于图像识别,首先由一个日本人提出了“卷积神经网络”的概念,紧接着有两个华人对此做出了伟大的奠基性贡献。
是的,华人在图像识别领域,一直是佼佼者。今天你去百度百科“卷积神经网络”词条,看看最后引用的那一百多篇论文和文献,其中至少百分之三四十都是华人——包括早期在美国的华人、和现在中国大陆的科学家。
说华人是图像识别领域贡献最大的民族,应该不过分。
那图像识别领域的主流技术路线——“卷积神经网络”是什么呢?
它主要的思路就是类似“读书取其大略”,将海量的信息去做去粗取精、去冗存真。
是的,人工智能从诞生之日起,就遇到了两个工程实践中最头疼的难题,可以说与这两个难题的搏斗,贯穿了人工智能80年的一生:
(1)输入信息量太大。
人工智能要识别的对象,比如二维图片、三维实物、视频、语言文本等等,其信息都是海量的。
举个例子,有时候,人工智能只是需要判断面前的三维实物,是不是一条狗而已。
但是当你把这生物牵过来的时候,会发现它在现实世界中的总信息量,恨不得有一万亿字节——但你需要得出的结论,只是判断:“这是不是一条狗”。
那么问题就来了:如何把这一万亿字节的生物,精简到几个有限的(最好能用数学表示的)特征,然后得出结论呢?
(2)计算机算力太小。
这个很好理解了,比如ChatGPT每次训练,要用1万张NVIDIA的A显卡,每张京东售价10万元人民币,光是这成本就得有10亿,然后每跑一次训练程序,再花万美元——本质上就是得靠钱去堆算力,有了算力才有好的效果。
没错,其实人工智能的发展,难就难在这两个工程性的问题。整个人工智能科学界,所耗费的大部分精力,反而是在解决这两个问题上面。
所以说,从科学的理论,到技术的实践,往往还有很长的路要走。
这其中,要解决第(2)个问题,无非就是遵循摩尔定律去开发更小更快的芯片,以及花更多的钱去砸硬件,随着时间的推移,总会越来越好的。
但是第(1)个问题如何解决呢?
一条狗一万亿字节的信息量,如何简化成几行字、再输入给人工智能呢?
如果不能从技术上对现实世界的信息量做一个“超级大瘦身”,每次学习对象一万亿字节、输入对象一万亿字节,ChatGPT怕是一万年都搞不出来哦。
解决这一难题的方向,还是得回到“向人脑学习”上来。
图像处理领域的主要模型算法——“卷积神经网络”,就是解决这个“信息量瘦身”的问题的。
它模仿的是人眼视觉神经的机制。
人的眼睛,既可以看非常高清晰度的东西,也可以看非常模糊的东西。
也就是说,既可以接收海量的信息进行判断,也可以接收小量的信息进行判断。
当我们看一张打了马赛克的照片时,打了马赛克的部分,每个马赛克方块恨不得有方糖那么大,但是你仍然能从这么小的信息量中,分辨出那大概是什么东西。
同样,你把马赛克去掉,看最高清的图像,你也能分辨出来那是什么东西。
没打马赛克的(信息量大)、和打了马赛克的(信息量小),人眼都能分辨出“这是啥”。
对了打了马赛克的,无非就是细节不不知道,但是回想刚才的问题,我们只需要判断“这是不是一条狗”、也就是“这是啥”,就够了,那些细节不是我所关心的。
因此,对于大信息量的图像,用类似“打马赛克”的方法、极大的压缩其信息量,就是人脑对此的解决方案。
“卷积神经网络”,本质上,就是学人脑这个“信息量大瘦身”的方法。
以下是大概的怎么实现的描述(不一定完全准确,我毕竟不是专门研究这个的,但是我尽量从科普的理解角度去讲):
(1)输入层:人眼的视觉感光细胞,每个细胞只会接收特定的光(应该是指特定光谱范围的光,比如红光、蓝光等等),而不是每个细胞都接收所有的光谱(这应该也是类似“红绿色盲”症状的原因,就是某一类感光细胞出问题了嘛)。然后多个细胞综合起来形成向视觉神经的输入信号。“卷积神经网络”的输入层大概也是这个原理。
(2)隐含层:包括卷积层、池化层、连接层等等,主要也是学习人类神经网络的机制。具体比较复杂,大概意思可以理解为,对一个高分辨率的图像,进行“马赛克处理”,搞成超低分辨率的图像。这里面有很多复杂的思路、逻辑、模型、算法等等,就不展开细说了,最终它的效果就是,把一条信息量一万亿字节的狗,搞成信息量几百字节的“超模糊图像”,但是关键信息都被保留了,你仍然能隐隐约约看出它是条狗。多说一句,就隐含层里这点破事儿,人类花了几十年,无数顶尖的科学家,搞出来无数的算法、模型,发了无数的论文,就是为了在保留关键特征的基础上、再降低一点甚至是一丁点儿信息量而已——所以我说嘛,人工智能最难的两个问题,都是具体的工程问题:降低信息量、提高计算力。
(3)输出层:把第(2)层得到的“超模糊图像”,提炼出纯数理化的“特征”——比如说一个头、四只脚、一条尾巴、四脚着地、头比较长、有长而尖的牙齿等等,然后通过这些特征,得到最后的判断:“这是一条狗。”需要注意的是,第(2)层主要是缩减信息量、保留关键信息,但不做判断,到了这一层,就要用“特征”做出判断了,而且是把第(2)层的信息(比如一幅二维图像),转换成纯数理的数字或者逻辑表达。
你看,学习人脑的机制,是不是很有用?
直接就把超大信息量图像的识别问题,用“打马赛克”这种简单的方法,巧妙的解决掉了。
图像识别领域还有很多很多复杂的东西,但是我们大概了解这个就够了。
讲完了人工智能两大领域之一的图像识别,接下来另一个领域:语言分析——这也是ChatGPT所在的领域。
在-年代,语言分析领域的主要模型算法,是“循环神经网络”。
它的核心思路,是把语言看成一句句完整的话——在数学上,就是一句话、一段话、或者一篇文章,都用一个序列来表示。
但是这时候问题就出现了:一个那么长的序列,如何能像上述图像识别领域的“卷积神经网络”那样,搞成信息量很小的“马赛克图片”呢?
如果搞不了,那每次你训练人工智能、都输入一篇几千字的文章,你每次使用人工智能、都输入一百字的问题,它吃得消嘛?
是的,这就是“循环神经网络”最大的问题——它无法丢弃那些冗余的信息量,也就是它要求序列必须保持完整性。
而且更有甚者,它还认为,一句话里每个字的顺序、以及每个字之间相互关系的这些信息量,都应该保留!
这是因为,它认为人类的语言,是有“语法”的,而“语法”就是顺序,顺序就是关键信息!
……这就完蛋了,多大一个瓶颈啊。
没错,这就是“循环神经网络”搞了几十年却没什么成果的主要原因:并不是它的理论不对,而是它所需要的计算量过大,而同时代的芯片和计算机,一直算不出来——直到现在,也不太算得出来。
为什么说它的理论没啥问题呢?因为它在其他的一些领域,早就有很不错的成果了。可就是在语言分析领域,无法像ChatGPT那样实现跨越性的发展。
这也为我们上篇文章中说的、导致ChatGPT出现的三个伟大变革,奠定了基础:
(1)年有人提出了“注意力机制”。
(2)年Google提出了“Transformer模型”。
(3)再后来有人提出了“强化学习策略”。
这些接下来说。我们继续讲“循环神经网络”。
插一句,“循环神经网络”还有一个反馈机制,相当于从输出端接了一根线回到输入端,从而根据输出端与预期的误差,去调整系统内部的参数——这个学过电子的同学应该能很快反应过来是什么。其他专业的同学,可以理解为给