第五代计算机的话题
撰写于:2015年5月8日
作者:silex Wi-Fi专家
第五代
“第五代计算机”是指当时通商产业省全力推进的下一代计算机研究项目ICOT(新一代计算机技术研究所,1982~1994年)提出的关键词。ICOT将电子计算机的进化分为第一代(真空管)、第二代(晶体管)、第三代(IC:集成电路)、第四代(LSI:大规模集成电路),并定义了即将到来的第五代计算机应该是实现人工智能(AI:Artificial Intelligence)的计算机。在这个时间点上,感觉上似乎从讨论构成部件的话题转变为了实现功能的话题,但这一点我们先暂且搁置不论。
A.I
所谓的人工智能,其定义本身就很模糊。从根本上来说,我们人类并没有对“智能是什么”这个问题有明确的答案。广义上的人工智能是针对“智能是什么”这个问题提出假设,使用计算机语言对这些假设进行建模,并通过运行这些模型并将其与假设和实际存在的智能——即人类的行为进行比较,来研究“智能是什么”的领域。“人工智能”这个词所让人联想到的“会思考的计算机”或“有意识的计算机”这些好莱坞电影般的形象,与现实中的情况有很大的差距。
然而在当时,“人工智能”是一个(过度)受到关注的领域。恰逢计算机需求的爆炸性增长,而程序员供应跟不上这种增长,因此出现了所谓的“软件危机”,并期待通过人工智能能够实现理解自然语言的计算机、只要给计算机阅读规格说明书就能自动生成程序代码的计算机等。而当时的AI研究者们,尽管知道这些是与“人工智能研究”的现实相去甚远,甚至可以说是梦幻般的未来期待目标,但为了获得预算,他们似乎反而简化了解释,给人一种廉价推销人工智能梦想的印象。ICOT和第五代计算机也不例外(无论是否有意义)。
(※注) 当时的“软件危机”主要是指在大型主机通用机业务处理系统中使用的COBOL语言的程序员的不足。
有备无患
ICOT 将活动的重点放在了基于逻辑编程语言的推理机的开发上。推理是人工智能理论中的主要模型之一,常被比作三段论。例如,从“苏格拉底是人”和“人都会死”这两个前提出发,可以推导出“苏格拉底会死”这样的结论。这种三段论推理模型是否等同于智能——即人类的思考原理,至今还没有定论,但至少在当时,人们认为如果拥有足够快速的推理引擎和实用的前提数据库,那么一个值得被称为“人工智能”的系统(专家系统)就有可能实现实用化。
另一个支柱,逻辑编程语言,是一种与自然语言相似但尚未成熟的计算机语言,如 if 和 then 等……与“过程式语言”不同,它基于严格的数学模型(逻辑学中的第一阶谓词逻辑)。其目的并不是要创建能够解释执行自然语言指令的计算机,也不是实现“有意识的计算机”,而是要实现一个能够严格(数学上)验证程序代码逻辑性的系统。在这一点上,同样存在着“第五代”、“人工智能”这些词汇所引发的“拥有意识并能解释自然语言的计算机”这样的好莱坞电影式想象与现实之间的差距。
在约定之地
ICOT在1994年结束了其活动,并在总结中提到了“在逻辑编程语言(Prolog)、并行推理引擎的操作系统和硬件研究实现方面取得了一定的成果”。然而,对于ICOT的批评意见也很强烈,认为其“始终在封闭的象牙塔中进行研究,几乎没有为实用系统做出贡献”。至少在今天,基于逻辑编程语言和推理引擎的实用计算机系统几乎是不存在的,无论支持者如何赞扬其成果,事实上这些成果在个人电脑、服务器、智能手机或家用电器及汽车控制计算机等实用产品中几乎没有得到体现。ICOT究竟犯了什么错误,又在何处误入了歧途呢?
ICOT从1982年开始活动,大约10年的时间里,正是被称为“第四代”的LSI计算机(微控制器:微型计算机)和代表性的微控制器应用设备——个人电脑(PC或个人电脑)显著发展的时期。在国内成为畅销品的NEC的PC-8001(1979年)配备了CPU:Z-80A 4MHz,BASIC-ROM:32KByte,标准RAM:16KByte,外部存储设备为盒式磁带(另售,以600bps的速度15分钟记录65KByte),定价为168,000日元。相比之下,1992年发布的PC-9801FA配备了CPU:i486SX 16MHz,RAM:1.6MByte,外部存储设备为1.2MByte FDDx2 + 40MByte HDD(FA5型号),定价为578,000日元。在短短10年多一点的时间里,价格变成了3.4倍,CPU的计算能力大约提高了50倍(※注),RAM容量增加了100倍,外部存储容量增加了大约600倍。几年后,Windows95的推出将吸引台湾制造的廉价IBM-PC兼容机(俗称DOS/V机器)流入国内,PC的性价比将进一步加速提升。
(※注:Z-80执行一条指令大约需要3个时钟周期,累加器宽度为8位,而i486执行一条指令只需要1个时钟周期(快3倍),累加器宽度为32位(宽4倍),这里将时钟速度也考虑在内)
随着个人电脑的高性能化和低成本化,计算机不再是“仅放置在大型企业和学术机构研究所的计算机房中,用于进行高级科学信息处理”的机器。进入普通家庭的个人电脑成为了玩游戏、文字处理等在计算机科学领域看似有趣但实际上并不重要的工作的一种便利工具。对于这种在个人电脑世界中看似“无聊”的编程,逻辑语言完全无能为力,没有产生任何影响。
另一方面,企业在业务处理中使用的大型机通用机和 COBOL 语言逐渐被个人电脑(或 Unix 工作站)所取代,这种现象被称为“缩小规模”。缩小规模并不意味着程序员变得足够,也没有根除编程中的错误,但这些问题得到了缓解。由于个人电脑的普及,操作系统和硬件(无论喜欢与否)都实现了标准化,以 Microsoft Office 为代表的现成的软件包组合和再利用变得更加灵活(无论好坏),以前每个公司(有时甚至是每个部门)每次更新硬件时都必须从头开始开发的 COBOL 系统开发的需求急剧下降。当然,bug仍在不断出现,程序员仍然经常被迫加班,休假变得常态化,但问题的本质与70年代所说的“软件危机”和“程序员不足”不同。
而且,ICOT 选择的方法论……在专用的推理机器上运行专用的逻辑编程语言的系统,正如批评者所说,它从未走出“象牙塔”一步,也无法解决或减轻现实问题。关于为什么会这样,有各种意见,但代表性的观点如下。
?逻辑编程语言+推理机器这种方法论走进了死胡同
Prolog 语言基于简单而美丽的数学模型,但作为计算机语言的实现,它运行缓慢,消耗大量内存,并且往往注定会陷入回溯的无限循环。ICOT 计划通过专用的推理硬件来克服这些问题,但在性能和成本上都无法与迅速进步的“第四代”LSI 微计算机竞争。
· 缺乏对逻辑编程的认识
Prolog 语言对于那些学习过逻辑学理论的人来说可能是“简单而美丽”的,但对于那些没有学过的人来说,它只不过是一串意义不明的符号,而且那些用“笨拙的自然语言”编写的,包含 if 和 then 的过程型语言更容易理解。选择需要高度专业知识的逻辑编程方法来解决程序员短缺问题本身就值得怀疑,而且也没有形成指导习惯于过程型语言的程序员学习逻辑型语言的体系或氛围。
· 这个问题首先是放错了地方
“能够在数学上验证其逻辑性”是逻辑编程语言的最大卖点,但程序代码的逻辑错误只是计算机系统缺陷(bug)的一小部分。由逻辑上正确但规格上错误的实现引起的缺陷在数量上远远超过前者,而逻辑编程语言在预防这类缺陷方面并不起作用。理论上,如果所有规格都能用一阶谓词逻辑来描述,那么就可以验证其一致性。然而,现实的业务系统本质上并不是逻辑性的,在将业务流程逻辑化的过程中总是有引入错误的可能性,生成代码的逻辑性验证与根除错误几乎没有关系。
· 公众对 “人工智能 ”的期望与现实之间的差异
推理机器的长期期望目标是“人工智能”,但媒体却报道说“理解自然语言的计算机”或“有意识的计算机”即将实现,这导致了公众的期望值与项目实际成就之间出现了巨大的差距。ICOT 所取得的成果,即推理引擎的实现和定理验证程序,与公众所期待的“第五代计算机”的形象完全不同,甚至难以理解它们的价值所在。
总结
我个人认为 ICOT 是一次“空洞姿态”。这并不一定是坏事。在80年代,计算机的发展提出了许多方向,逻辑计算也是其中之一。最终,被称为“第四代”的VLSI微计算机和过程型语言即使到了21世纪也继续被使用,但那只是80年代不确定未来中的一个可能性。ICOT 并非没有批评的余地,但我认为,仅仅因为未来预测失误就责怪 ICOT 是不合理的。如果人类“只投资于绝对会成功的可能性”,那么我们可能仍然处于磨石器的时代。
80年代不仅尝试了逻辑型计算机,还尝试了光计算元件、超导元件(约瑟夫森元件)、超并行SIMD架构(连接机)和数据驱动型计算机(流水线处理器)等可能性的时代。最终,这些尝试中的大多数都走到了死胡同,但那个时代日本政府和日本企业能够在这些领域进行投资,这让人感到怀念。现在的日本,真正先进的、不知道多少年后才能实用化的研究到底有多少正在进行呢?
相关文章
Silex 产品信息
我们的技术和产品旨在建立设备之间的通信,并确保这种通信能够顺畅地稳定进行。而且,更重要的是,使用 Silex 技术和产品的客户可以绝对放心。 我们正是致力于实现这一目标。