人工智能是当今的“热门话题”,并已占据中心舞台,其影响力堪比 Netflix 的真实犯罪轰动。虽然 OpenAI 的 ChatGPT 对许多人来说似乎是分水岭时刻,但深入研究人工智能丰富的历史是一段值得踏上的旅程。
回顾人工智能的历史,我们会看到,人们会详尽地关注那些具有里程碑意义的时刻和关键人物,但只会被动地提及这些人在这些时刻使用的编程语言和框架,以便与他们吹捧为“智能”的机器进行通信。因此,我决定将重点放在构成我时间线的、塑造人工智能的编程语言和框架上。我将努力探索我们用来与智能机器通信的语言,并将我的观点集中在人工智能进步和发展的关键时刻。
我在探索人工智能时间线时采取了一定的自由,并特意选择将 50 年代之前的那些元素归为古代,并从 20 世纪 50 年代开始,逐年展开我的分析。
从 AI POV 角度抽象出的时间线(Dall-E 2)
20 世纪 50 年代——人工智能的曙光
图灵前奏:在 AI 有名字之前,它就有了一位远见卓识者;AI 的诞生很大程度上与阿兰·图灵的工作有关,特别是他在 1950 年发表的题为“计算机器和智能”的论文,他在论文中设计了同名的“图灵测试”,这是一项测试真正人工智能的思想实验(他自己将其命名为“模仿游戏”)。可以说,这是 GAI 圣杯的试金石。
术语的诞生:当时,“人工智能”一词甚至还不存在。该术语由约翰·麦卡锡于 1956 年在达特茅斯会议上提出。正是他两年后开发了 LISP。LISP(列表处理)被认为是第一个 AI 编程语言。事实上,它是“当今广泛使用的第二古老的高级编程语言”。
人工智能的第一步: 1956 年,参加上述“达特茅斯会议”的 Allen Newell 和 Herbert Simon 提出了“逻辑理论家”,这被广泛认为是第一个人工智能程序。它可以证明与“另一部”《数学原理》(伯特兰·罗素的,而不是牛顿的)中提出的数学理论一样复杂的数学理论。逻辑理论家促使创建信息处理语言 (IPL)。IPL 与 LISP 密切相关,其起源的细节,包括其内存使用情况的细节以及可以存储在其中的信息类型,可以在 1957 年的论文《编程逻辑理论机器》中找到。
机器学习: 1959 年,再次因“达特茅斯会议”而闻名的亚瑟·塞缪尔在探索如何使用计算机下跳棋时创造了“机器学习”一词。
50 年代是人工智能诞生的关键时期。“人工智能”和“机器学习”这两个术语都诞生于这个十年,同时还诞生了第一种人工智能编程语言和第一个人工智能程序;这是一个充满创举的十年。在这个时期,先驱者们定义了术语、设计了语言,并为能够思考、学习和进化的机器播下了种子。
阿兰·图灵
20 世纪 60 年代——机器人、理性和对话的兴起
想象一下,机器人开始思考,计算机开始说话。这是 20 世纪 60 年代,一个敢于模糊机器与人类之间界限的时代。
Shakey:不仅仅是一个机器人: 20 世纪 60 年代,人工智能的机器人技术成为人们关注的焦点。那个时代某些被认可为人工智能的发展更准确地说应该是自动化。话虽如此,1966 年,麻省理工学院向我们推出了 Shakey 机器人,它结合了机器人技术、计算机视觉 (CV) 和自然语言处理 (NLP)。想象一下一个刚学会走路的幼儿;当我们考虑到我们在 2020 年代在这些领域取得的进步时,某种程度的命名决定论就会浮现在我们脑海中。然而,Shakey 被认为是第一个能够“推理”其环境的机器人。为了与我们的时间线主题保持一致,应该注意的是,Shakey 是使用 LISP 编程的,呼应了前十年的开拓精神。
ELIZA:当计算机开始聊天时: 1965 年出现了 ELIZA 和“ELIZA”效应。ELIZA 是由 Joseph Weizenbaum 开发的 NLP 聊天机器人,它将我们时间轴叙述中的一个共同点整合在一起,即我们如何与计算机交互。ELIZA 是用 MAD-SLIP 编写的,这是 Weizenbaum 先生自己创建的一种编程语言。MAD(密歇根算法解码器)是一种类似 Algol 的编程语言。Wizenbaum 以 SLIP(对称列表处理器)的形式将列表处理添加到 MAD,从而创建了一种嵌入在 MAD 中的类似 LISP 的语言;MAD-SLIP。Weizenbaum 生动地描述了他的创作“在启发式编程和人工智能领域,机器的行为方式令人惊叹,通常足以让最有经验的观察者眼花缭乱。”但一旦某个特定程序的面纱被揭开,一旦其内部工作方式用足够通俗易懂的语言解释清楚,其魔力便会消失。” ELIZA 被广泛认为是首批能够“通过”图灵测试的计算程序之一。
ELIZA 对话
20 世纪 70 年代——人工智能寒冬尚未到来
20 世纪 70 年代是人们通常认为的第一次人工智能寒冬。20 世纪 70 年代真的是人工智能寒冬吗?还是一场静默的革命?虽然许多人将这一时期称为人工智能历史上的休眠期,但我认为,在寒冬之下,创新的种子正在萌芽。
PROLOG: PROLOG(PROgammation en LOGique)是一种声明式逻辑编程语言,由 Alan Colmerauer 和 Philippe Roussel 于 1972 年构思。有趣的是,PROLOG“诞生于一个旨在处理自然语言(在本例中为法语)而非编程语言的项目”。它与 LISP 并驾齐驱,成为赋予机器人性外观的语言。
C: 1972 年,丹尼斯·里奇 (Dennis Ritchie) 开发了最著名的编程语言之一 C,用于与 UNIX 操作系统交互。C 是一种中级编程语言,提供高级用户友好型编程语言和低级机器代码之间的“接口”。尽管 C 并非传统意义上的 AI 编程或开发语言,但它是 Python 编程语言以及当今 AI 中使用的大量库和框架的基础。
这些编程语言的发展对人工智能的发展具有不可低估的意义。那么,这真的是寒冬吗?20 世纪 70 年代,随着不为人知的突破,人工智能的结构发生了变化。在冰雪之下,人工智能未来的根基正在不断强大和深厚地生长。
多种编程语言——C
20 世纪 80 年代——人工智能的过山车十年
啊,20 世纪 80 年代。在霓虹灯、街机游戏和电子流行音乐的背景下,另一场革命正在进行:“专家系统”的兴起。这些技术天才模仿了经验丰富的专业人士的认知能力。
这些系统是用 LISP 或 PROLOG 编写的,在第一次 AI 寒冬(我在上面讽刺地揭穿了这一点)之后,人们对 AI 的兴趣又重新燃起。这是 AI 的春天;运行 LISP 编程语言的 LISP 机器为这些专家系统注入了新鲜空气。
然而,这种兴趣并没有持续太久,1987 年,专用 AI 硬件市场遭遇了一场令人不寒而栗的暴风雪,第二次所谓的 AI 寒冬来临了。但是什么导致了这次突然的衰退?有三件事:
科技巨头崛起:苹果和 IBM 一直在追赶,但现在已能够在处理能力和成本方面与这些专用人工智能机器相媲美。
东风平浪静:日本雄心勃勃的第五代计算机系统计划已告结束。
西方战略转移:美国战略计算计划接近尾声。
LISP 徽标
20 世纪 90 年代——乘数字浪潮走向人工智能革命
20 世纪 90 年代是否只有男子乐队和宽松牛仔裤?深入探究,你会发现科技界发生了翻天覆地的变化,为人工智能的迅猛发展铺平了道路。
随着万维网的出现,我们从第二次人工智能寒冬中走出来,进入了 90 年代的互联网泡沫。虽然许多人可能不认为 Tim Berners-Lee 的工作只与人工智能有关,但我挑战你不要只接触万维网,而要接触人工智能。万维网为数字数据交换和消费的爆炸式增长提供了根本基础。
但是,人工智能从冬眠中苏醒过来后又到了哪里呢?20 世纪 90 年代初,罗德尼·布鲁克斯 (Rodney Brooks) 哀叹道:“人工智能已在渐进主义的海洋中沉没。”这种诗意而又有些夸张的语言可能反映了 80 年代后期的衰落,但与未来的时代形成了鲜明的对比。
1991 年,我们用于在人工智能领域进行交流的编程语言巨头诞生了。这是 Guido van Rossum 的创意,“Python 是一份不断给予的礼物”。Python 将成为人工智能架构奇迹的基石。
1995 年,詹姆斯·高斯林 (James Gosling) 开发了“一次编写,随处运行”的 Java 编程语言,将人工智能与蓬勃发展的网络领域无缝融合。
1996 年,我们看到 IBM 的国际象棋人工智能“深蓝”挑战并击败了国际象棋冠军加里·卡斯帕罗夫。人类被将死。“深蓝”的编程代码是用 C 语言编写的,而 C 语言早在 20 世纪 70 年代就已开发出来。它不仅仅是一款游戏,更是一个象征。人工智能不再是追赶者,而是引领潮流。
90 年代不仅仅是序幕,更是基础。随着万维网和 Python 成为我们的武器库,21 世纪的黎明即将用数据之火点燃人工智能的火炬。
Python 编程语言徽标
2000 年代——数据海啸与人工智能复兴
进入新世纪,大数据无处不在,Web 2.0 的出现带来了数据、数据、更多数据。从此,人工智能开始爆发,事情发展得非常非常快。
这些大数据为人工智能的基础机器学习和深度学习算法提供了所需的素材。
随着机器学习算法中使用的数据激增,21世纪头十年出现了大量编程库。
2001 年——SciPy 0.1 于 2001 年以相当简陋的形式出现,它为科学计算提供了基本的算法。值得注意的是,直到 2017 年我们才看到 SciPy 1.0 的发布。
2002 年— 科技三巨头齐聚一堂;Geoffrey Hinton、Pedro Domingos 和 Andrew Ng 开发了“首个大型免费机器学习平台”Torch,该平台使用 Lua 编写,并带有直观的 C API。同年,我们看到了 Matplotlib 的出现,它开始改变数据可视化。
2005 年——Numpy 诞生,彻底改变了大型多维数组/矩阵的数值运算。时至今日,它仍然是机器学习算法所需的计算效率的关键。
2006 年——“深度学习”一词首次出现,由其教父 Geoffrey Hinton 提出。深度学习将彻底重塑计算机视觉和自然语言处理领域。
2007 年——Scikit-learn 诞生;它建立在 SciPy、NumPy 和 Matplotlib 等巨头之上,旨在提供“简单高效的预测数据分析工具”。它已成为特征工程和传统机器学习的行业标准。
2008 年——Pandas 成为 Python 家族的下一个动物化代名词。作为“一种快速、强大、灵活且易于使用的开源数据分析和操作工具”,Pandas 已成为 Python 中表示表格数据的事实格式。有趣的是,直到 2020 年,即首次发布 12 年后,Pandas 的第一个 1.0 版本才发布。
人工智能世界正在焕发自己的生机,人工智能的寒冬已经过去,人工智能不只是觉醒,它正在翱翔天际,准备重塑我们的世界。
NumPy 徽标
2010 年代——深度学习与计算复兴
既然游戏 GPU 能够提供无与伦比的处理能力,那么 21 世纪头十年中期的深度学习范式需要改进/更好的框架,而 2010 年代则迎接了这一挑战。
2010 年——本世纪初,Theano 诞生了。Theano 建立在 NumPy 之上,其功能是“一个 Python 库,允许您定义、优化和高效评估涉及多维数组的数学表达式”。
2015 年——随着 TensorFlow 的出现,谷歌真正加入了竞争,TensorFlow 被誉为“端到端机器学习平台”,这是谷歌的另一个庞然大物。
Keras 是一个用 Python 编写的深度学习 API,运行在 Theano(最初)和机器学习平台 TensorFlow(后来)之上。从技术上讲,Keras 早于 TensorFlow,它是与 Theano 交互的深度学习 API,但谷歌很快就确保 TensorFlow 占据了主导地位。
2016–2017 年 — Torch(开发于 2002 年)从 Lua 移植到 Python,更名为 PyTorch。2019 年,PyTorch 成为所有主要深度学习会议上使用最多的深度学习库。
2010 年代,各种深度学习框架层出不穷,它们竞相更高效地利用越来越强大的 GPU。人工智能所需的计算能力已经出现,而我们正在掌握与之沟通所需的语言。
TensorFlow 徽标
2020 年——深度学习与创造的曙光
随着 2010 年代深度学习的快速发展,我们发现自己正陷入人工智能生成内容 (AIGC) 的反乌托邦未来。人工智能能够创建从图像到音乐再到自然语言的原创数字内容。我们已经迎来了生成人工智能 (GAI) 的曙光。
ChatGPT、Bard、Stable Diffusion、Midjourney 和 DALL-E 都已成为家喻户晓的名字。人工智能已深深植根于我们日益数字化的生活,我们似乎正处于人工智能新时代的边缘,但其表现形式尚不明朗。
自图灵发表其著名论文《计算机与智能》以来的 70 年里,我们已采取了巨大的措施来尝试回答他的模仿游戏所提出的问题:“机器能思考吗?”。我们数字对话的发展在解开这个谜团方面发挥了重要作用。如果图灵拥有当今的编程语言、框架和计算能力,他会看到他的理论得以实现吗?在这样的另一种现实中,社会会庆祝他的天才,还是会悲惨地遭受他所遭受的残酷命运?社会是否已准备好接受能够思考的机器?
与计算机交流——人工智能的另一种时间线