我是一名计算机工程专业的学生,但我从未编程过(我只学过物理、运筹学、数学等),不过我在业余时间学习了一些逻辑(命题逻辑、一阶逻辑、模糊逻辑和时态逻辑)。我听说逻辑在人工智能中被使用,但具体是怎么用的呢?你是说用编程逻辑来编程机器人,还是其他什么方式?
回答:
是的,我们确实这样做。基本上,机器人如果不能做任何事情,只是一堆废金属而已,这可能包括移动、感知外部世界等。这意味着,就像人类一样,机器人也会从外部世界获取信息。
你通过视觉、听觉、触觉、嗅觉和味觉感知事物。这是外部信息进入你神经系统的方式。你的大脑需要处理这些信息,并将冲动转化为思想。
机器人身上发生的情况非常相似。让我们以一个机器狗为例,它需要在特定区域内移动并进行警卫工作。
现在,这只狗必须对要保护的区域有一个精确的逻辑定义,这定义了它的工作范围。此外,狗还需要实时感知运动(可能使用摄像头和声音传感器),热传感器和化学传感器也很有用。现在,无论使用什么传感器,这只机器狗都会将感知的运动视为事件,并需要实时区分以下类型的运动:
- 敌对
- 友好
- 无关
它需要应用逻辑来进行这种区分,如果是敌对运动,那么狗就需要保护领地,因此,如果敌对运动发生在领地之外,机器狗需要保持关注。如果给定的运动具有严重威胁,那么机器狗甚至需要在工作范围之外保护自己。如果敌对运动在要保护的领地内,即使运动只是轻微威胁,狗也必须采取行动。
所有这些行为都需要逻辑,而我们唯一能将逻辑应用于原本无生命的物体的方式就是通过编程。我们通常使用源代码来编程这种行为,尽管源代码可能非常抽象,但最终它会变成机器码,机器码以二进制形式操作数字,具体是因为二进制数字由位(可以是1或0的数字)组成,所以我们可以将逻辑应用于任何事物。
即使是电路也有逻辑门,这就是我们如何编程所需行为的方式。
当然,我们编程的方式并不是唯一的方式,我们人类也被DNA编程,考虑到我们的属性甚至是我们固有的行为。我们发展出个性只是我们能力有限集合之上的一个层面。
因此,我们想要实现的任何行为都需要一个定义。定义需要逻辑。逻辑可以通过电路和/或源代码进行编程。
目前,二进制逻辑无法被绕过(除非使用量子计算机,但我们现在先忽略这一点),至少在编程时是这样的。当然,模糊逻辑也可以应用。让我们考虑感知器,并以一个机器人试图从像素马赛克中读取文本为例。图像可能模糊,文本可能以任何角度、任何大小出现。我们的机器人仍然需要读取文本,因此,它需要区分A和H。如果它看到的是这样的:
. . . .. .. .. ..................... .. .. .. .. .
这是H还是A?它既不是完美的H,也不是完美的A。它介于两者之间。因此,我们的机器人需要看到这个字母与A或H有多远,并选择更接近的一个。现在,我们的狗可能会通过感知器感知图像,并需要区分一个强盗和一只鹦鹉,例如。模糊逻辑被应用以确保机器狗做出正确的判断。然后,无论如何,都需要逻辑处理来确保狗根据其感知做出适当的行为。我们可以通过编程将逻辑应用于原本无生命的物体。因此,如果你想定义机器人的行为,你可能需要学习编程。