本文是Demystifying AI的一部分,Demystifying AI是一系列文章(旨在)消除有关AI的术语和神话的歧义。
如今,人工智能主要是关于人工神经网络和深度学习。但这并非总是如此。实际上,在过去的十年中,该领域大部分都由象征性人工智能主导,也被称为“经典AI”,“基于规则的AI”和“老式的AI”。
象征性AI涉及将人类知识和行为规则显式嵌入计算机程序中。在AI研究的最初几十年中,这种实践显示出了很大的希望。但是近年来,随着神经网络(也被称为连接主义AI)获得广泛关注,象征性AI逐渐被淘汰。
符号在人工智能中的作用
符号是我们用来表示其他事物的事物。符号在人类的思想和推理过程中起着至关重要的作用。如果我告诉你我看见猫爬在树上,那么你的脑海就会迅速联想到图像。
我们一直使用符号来定义事物(猫,汽车,飞机等)和人员(老师,警察,营业员)。符号可以表示抽象概念(银行交易)或不存在的事物(网页,博客文章等)。它们还可以描述操作(运行)或状态(不活动)。可以将符号组织为层次结构(汽车由门,窗,轮胎,座椅等制成)。它们也可以用来描述其他符号(耳朵毛茸茸的猫,红地毯等)。
能够用符号进行交流是使我们变得聪明的主要因素之一。因此,符号在人工智能的创造中也起着至关重要的作用。
人工智能的早期开拓者认为:“原则上可以精确地描述学习的所有方面或智力的任何其他特征,以使得可以制造出可以模拟它的机器。”因此,象征性人工智能成为了研究的重点,并成为研究项目的重点。 。科学家开发了定义和操纵符号的工具。
您在计算机科学中发现的许多概念和工具就是这些努力的结果。符号AI程序基于创建显式结构和行为规则。
符号AI工具的一个示例是面向对象的编程。OOP语言允许您定义类,指定它们的属性并在层次结构中组织它们。您可以创建这些类的实例(称为对象)并操纵其属性。类实例还可以执行动作,也称为函数,方法或过程。每种方法都执行一系列基于规则的指令,这些指令可能读取和更改当前对象和其他对象的属性。
使用OOP,您可以创建执行各种任务的广泛而复杂的符号AI程序。
象征性AI的好处和局限性
符号人工智能在AI和计算的曙光中显示出早期的进步。您可以轻松地可视化基于规则的程序的逻辑,进行通信并进行故障排除。
对于规则非常清晰的设置,符号人工智能非常方便,您可以轻松获取输入并将其转换为符号。实际上,基于规则的系统仍占当今大多数计算机程序的成本,包括那些用于创建深度学习应用程序的程序。
但是,当您必须应对世界的混乱时,象征性AI就开始崩溃。例如,考虑一下计算机视觉,这是使计算机能够理解图像和视频内容的科学。假设您有一副猫的图片,并且想创建一个程序来检测包含猫的图像。您创建一个基于规则的程序,该程序将新图像作为输入,将像素与原始猫图像进行比较,并通过说出您的猫是否在这些图像中进行响应。
仅当您向程序提供原始图像的精确副本时,此方法才有效。猫的图片略有不同将产生否定的答案。例如,如果您从另一角度拍摄猫的图片,则该程序将失败。
一种解决方案是从不同角度拍摄猫的图片,并为您的应用程序创建新规则,以将每个输入与所有这些图像进行比较。即使您为猫拍了100万张照片,您也不会考虑所有可能的情况。光照条件或图像背景的变化将改变像素值,并导致程序失败。您将需要数百万其他图片和规则。
如果要创建一个可以检测到任何猫的程序该怎么办?您需要为此创建多少规则?
猫的例子听起来可能很愚蠢,但是这些都是象征性AI程序一直努力解决的问题。您无法为现实世界中存在的混乱数据定义规则。例如,如何定义自动驾驶汽车的规则以检测其可能遇到的所有不同行人?