根据上一节所说,学习AI时,首先就要弄清楚什么叫做“理性智能体”。这一节我们就来聊聊什么叫做“智能体”,然后说说什么是“理性”的“智能体”。下一节将给出理性智能体一些典型的构造。

聪明和智能

什么叫做聪明?耳聪目明可谓聪明最原始的定义,正如《易经·鼎》中有云:“巽而耳目聪明。”耳聪目明用现代的话来说就是说这个人从环境中接收信息效率很高,并能够产生一些快速的,能被他人察觉到的反应。当然,形容一个人“聪明”,并不一定是褒义词,有时甚至包含有贬义,需要辩证地来看。因为有很多看似很聪明的人,反应很快,但是缺乏做事的智慧,导致他经常做出错误的决断,与自己的人生目标渐行渐远。

智能体正是一个看起来“有些聪明”的玩意。它可以从外界感受到一些信息,并能够做出一些动作,反过来作用于环境。然而,有些智能体似乎拥有智慧,它总能做出在它所掌握的信息下最优的举动。我们可以简单地认为:“聪明”的事物就是智能体,而在此基础上拥有“智慧”的事物则是理性智能体。智能体正式一些的定义如下:任何通过传感器感知环境,并通过执行器作用于该环境的事物都可以被视为智能体。下面我们把这个定义所描述的智能体的结构图展示出来:

智能体的一般架构

我们依然以吸尘器举例:扫地机器人在地砖上按照设定好的程序探索着这个世界(即地砖所在的二维平面)。它通过旅行,了解到了这一大片地砖上,有些位置是脏的。那么它必须加以行动,清除掉这些杂碎。那么,这个扫地机器人将根据自己之前所探索的记录,做出一些行动。比如它知道自己的后方两格是有一些灰尘的,那么它就要一边向后移动,一边开动自己的扫除机器。我们将智能体通过传感器感知到的一切称为感知历史,而将从感知历史到行动之间的映射称为智能体函数,智能体函数由智能体程序来实现。对于扫地机器人来说,就是如下公式:

$f([A,clean]) \rightarrow Right$

良好的行为——理性

性能度量——如何评价智能体的行为?

前面提到,AI的最终目的就是研究并构建在特定应用场景下的理性智能体。理性,这里就是指做“正确的事情”,即达成了预先设定的目标。假设你现在有两个扫地机器人,那么我们自然要有一套度量方式,评价这两个机器人谁的性能更好。然而,如何设定这个度量却不容易!

如果说我们设定性能度量是扫地机器人在单位时间里清除灰尘的数量,这在某些鸡贼的扫地机器人眼中就有了可乘之机:它完全可以边扫边倒,让自己24个小时忙个不停。某种程度上讲,设计智能体的人就好像甲方,有自己的想法,希望设计的智能体去完成自己心中的指标。所以说设置合理的指标是成为合格的甲方爸爸的必修课。

我们现在从智能体函数“f(感知序列)–>动作”方面,进一步审视理性的概念。在这个视角下,性能度量就是函数f的一个属性。例如我们高中就学过的函数的最大值、极值、单调性等等都是重要的衡量手段。而讨论这些的先决条件是要了解函数的基本情况,包含其定义域,值域,以及计算方式。这对应到智能体上,就是以下四个方面:

  • 智能体到目前为止的感知序列(决定函数的定义域)
  • 智能体对环境的先验知识(决定函数的定义域等,我是谁,我在哪?)
  • 智能体可以执行的动作(决定函数的值域)
  • 定义成功标准的性能度量(这个函数好不好?)

这就引出了理性智能体的定义:

对于每个可能的感知序列,给定感知序列提供的证据和智能体所拥有的任何先验知识,理性智能体应该选择一个期望最大化其性能度量的动作。

全知、学习和自主

全知和低智

首先要说明的是,全知并不是理性智能体的设计理念。即使是最先进的AI,也不能穷尽小小围棋的所有可能,并预测未来。并且智能体的动作取决于它“看到了”什么,在现实生活中,我们并不能了解我们周围的所有环境。但是,这个智能体又不能“头脑空空”地,在感知序列为空的前提下上来就做事,这种莽撞的行为不符合智能的要求。就像古人曾经告诉我们的——三思而后行。

对应到函数“f(感知序列)–>动作”中,我们并不是要掌握每一个感知序列所要计算出的动作。而是在充分的观察后,智能体根据过去的经验,推断出在新的感知序列下,自己应该怎么做。这就引出了下面的机制——学习。

学习和自主

还是从函数的角度来思考这一性质。在通常情况下,我们确定了函数,输入自变量,就可以计算出因变量。但是(就目前我的理解来看)智能体函数似乎并不一定是这样的。在修炼期内,智能体函数似乎会自我更新换代。而在度过了短暂的修炼期后,智能体就可以独自出来打天下了,这时人类也无法理解现在的智能体函数进化成了什么样子。所以在AI领域,好多研究人员戏称自己的研究叫做“炼丹”,因为他自己也不知道自己训练出来的AI最终是什么样子的。

任务环境

不同的智能体有着各自的职责,天生就是当纯牛马的。当然牛马的使用也是要按照基本法,不能让牛去干马的活。任务环境就是智能体要解决的具体问题。这个问题可以包含环境(不是任务环境,而是智能体所处的外部环境)、传感器、执行器以及性能度量。
以自动出租车智能体的任务环境为例,它的四大要素是:

性能度量:安全、快速、合法、舒适、利润最大化
环境:道路、其他交通工具、行人、顾客
执行器:方向盘、油门、刹车、信号、喇叭
传感器:摄像机、声纳、测速仪、GPS、里程表、发动机传感器、键盘

任务环境的属性

1、完全可观察 vs 部分可观察
如果传感器能够检测所有与行动决策有关的信息,该任务环境就是完全有效可观察的。而现实生活中,大多数是部分可观察的。(如果Agent压根没有传感器,环境是无法观察的。)e.g. 国际象棋 vs 自动驾驶

2、单智能体 vs 多智能体
例如做题和玩桌游。多智能体还分为竞争性和合作性,对应的就是竞争型桌游与合作型桌游。

3、确定性 vs 非确定性
如果一个环境的下一个状态完全决定于当前的状态和智能体的动作。那么我们可以说该环境是确定性的。否则可以说非确定的。(如果这个非确定的概率可估算,那就称为随机的)e.g. 国际象棋 vs 自动驾驶

4、回合式 vs 序贯式
在序贯式环境中,当前动作会对未来产生深远影响,比如国际象棋和自动驾驶。回合式环境要比序贯式环境简单的多,因为它不需要提前考虑什么东西。

5、动态 vs 静态
如果环境在智能体思考时发生变化,那么我们称该环境是动态的,否则是该环境是静态的。如果该环境本身不随时间的流逝发生的变化而变化。但智能体的本身性能评价随时间的变化而变化,我们就称其为半动态的。

6、离散环境 vs 连续环境
国际象棋是离散的,因为它有有限个离散的状态。自动驾驶室连续的,它包括不间断的摄像头和语音输入。

因此,理性智能体的设计要根据任务环境的不同采取不同的设计策略。